大模型请求参数中,不同penalty的作用和使用场景
presence_penalty:
对于1个token,如果它出现在生成的文本中,则施加惩罚
\[\hat{\rm logits}_i={\rm logits}_i - {\rm presence\_penalty} * \mathbb{I}({\rm frequency}_i>0)
\]
- 鼓励模型探索未生成过的新 token,提高整体生成内容的新颖性。
- 用于故事创作、角色扮演、摘要多样化等任务中,避免复用旧内容。
frequency_penalty
对于1个token,惩罚的力度由生成的文本中,相同的token出现的频率
\[\hat{\rm logits}_i={\rm logits}_i - {\rm frequency}_i * {\rm frequenct\_penalty}
\]
其中,frequency表示第i个token的出现次数
- 生成类任务中保持用词多样性(lexical diversity)。
- 用于避免某些 token(如常用词 or 实体名)在输出中反复多次出现。
repetition_penalty
对于1个token,如果它出现在prompt和生成的文本中,则施加惩罚
\[\hat{\rm logits}_i=\begin{cases}\frac{{\rm logits}_i}{\rm repetion\_penalty},\ {\rm logits}_i>0 \\
{\rm logits}_i * \mathrm{repetion\_penalty},\ {\rm logits}_i\le 0 \end{cases}\]
- 避免完全重复句子或段落的生成(e.g., “The cat is on the mat. The cat is on the mat.”)
- 对话生成、写诗、生成新闻等自然语言生成任务中,抑制模型复读倾向

浙公网安备 33010602011771号