大模型请求参数中,不同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.”)
  • 对话生成、写诗、生成新闻等自然语言生成任务中,抑制模型复读倾向

参考链接

penalty docs
apply penalty

posted @ 2025-06-05 22:05  片刻的自由  阅读(132)  评论(0)    收藏  举报