RWKV 提示词指南
RWKV 的解码参数

你可能注意到了,很多 RWKV 部署/体验工具都支持调整 TemperatureTop_PPresence Penalty Frequency Penalty等参数,这些参数是 RWKV 模型的“解码参数”(也可称之为“采样参数”)。

通过调整解码参数,可以改变模型的生成效果。

即使是使用同一个 Prompt、同一个 RWKV 模型,不同的参数配置可能获得截然不同的回答。

RWKV 模型解码参数(预备知识)

RWKV 主要解码参数对应的效果如下:

参数效果
Temperature采样温度,就像给模型喝酒,数值越大随机性越强,更具创造力,数值越小则越保守稳定。
Top_P就像给模型喂镇静剂,优先考虑前 n% 概率质量的结果。如设置成 0.1 则考虑前 10% , 生成内容质量更高但更保守。如设置成 1 ,则考虑所有质量结果,内容质量降低但更多样
Presence penalty存在惩罚,正值根据“新 token 在至今的文本中是否出现过”来对其进行惩罚,从而增加了模型涉及新话题的可能性。
Frequency Penalty频率惩罚,根据新内容在目前的文本中出现的频率/次数来对其进行惩罚,从而减少模型原封不动地重复相同短语/句子的可能性。

在解码参数中, Temperature 和 Top_P 两个参数对生成效果的影响最大。

关于 Top_P

降低 Top_P 就是给模型喂“镇静剂”,越低就越冷静、机械、准确、单调、无趣、重复。我们建议采用以下 Top_P 数值:

  • 创意回答和写作,建议 Top_P 0.5 ~ 0.7。
  • 机械的问答和摘要和翻译等等,建议 Top_P 0 ~ 0.5,甚至 0 ~ 0.3。
  • 很机械的回答,例如回答“是/否”、ABCD、1234 之类,建议 Top_P 0。

关于 Temperature

增加 Temperature 就像给模型“喝酒”,它可以在 Top_P 低时增加文采和趣味,并减少重复内容。我们建议采用以下 Temperature 数值:

  • 若 Top_P >= 0.7,建议 Temperature 1。
  • 若 Top_P < 0.7,而且追求趣味,可以增加 Temperature 给模型喝酒(喝太多会胡言乱语)。如果追求准确,就保持 Temperature 1。
  • 如果 Top_P 0.5,建议 Temperature 1 ~ 1.5。
  • 如果 Top_P 0.3,建议 Temperature 1 ~ 1.7。
  • 如果 Top_P <= 0.2,建议 Temperature 1 ~ 2。

关于 Presence penalty

增加 Presence penalty 可以让模型额外避免生成已经生成过的文字,建议先设为 0.2 ~ 0.4 。如果你认为生成的内容有重复,而且调 Top_P 和 Temperature 仍然不满意,可以调整 Presence penalty。

  • 如果 Top_P 0.7,建议 Presence penalty 0 ~ 0.3。
  • 如果 Top_P 0.5,建议 penalty 0 ~ 0.5。
  • 如果 Top_P 0.3,建议 Presence penalty 0 ~ 0.7。
  • 如果 Top_P <= 0.2,建议 Presence penalty 0 ~ 1。

注意,如果 Presence penalty 数值过高,会让模型无法正常使用文字,例如无法使用正常的标点符号,或者直接乱码。

推荐参数配置

我们为不同的任务提供了一些推荐的参数:

续写小说和对话这一类需要创造性的任务,需要高 Temperature + 低 Top_P 的参数组合,可以尝试以下四种参数搭配:

  • Temperature 1.2 ,Top_P 0.5
  • Temperature 1.4 ,Top_P 0.4
  • Temperature 1.4 ,Top_P 0.3
  • Temperature 2 ,Top_P 0.2

举个例子,续写小说可以尝试将 Temperature 设为 2 ( Temperature 增加会提高文采,但逻辑会下降),然后将 Top_P 设为 0.1 ~ 0.2 (Top_P 越低,逻辑能力越强),这样生成的小说内容逻辑和文采都很好。

完成相对机械的任务,例如材料问答、文章摘要等,则可将参数设为:

  • Temperature 1 ,Top_P 0.2
  • Temperature 1 ,Top_P 0.1
  • Temperature 1 ,Top_P 0

举个例子,如果你正在执行像关键词提取之类的机械任务,不需要模型进行任何开放性思考,则可以将 Temperature 设为 1 ,Top_P、Presence Penalty、Frequency Penalty 都设为 0 。