AI 模型参数设置

| 选择喜欢的代码风格  

在大模型训练好之后,对训练好的模型进行解码 decode 是一个火热的研究话题:

{
 "top_k": 10,
 "temperature": 0.95,
 "num_beams": 1,
 "top_p": 0.8,
 "repetition_penalty": 1.5,
 "max_tokens": 30000,
 "message": [
        {
		"content": "你好!",
		"role": "user"
        }
    ]
}
 

Temperature


简单来说,temperature参数值越小,模型就会返回越确定的一个结果。如果调高该参数值,大语言模型可能会返回更随机的结果,也就是说这可能会带来更多样化或更具创造性的产出。(调小 temperature)实质上,你是在增加其他可能的 token 的权重。在实际应用方面,对于质量保障(QA)等任务,我们可以设置更低的 temperature 值,以促使模型基于事实返回更真实和简洁的结果。 对于诗歌生成或其他创造性任务,适度地调高 temperature 参数值可能会更好。

 

Top_p


同样,使用 top_p与 temperature 一起称为核采样 nucleus sampling 的技术),可以用来控制模型返回结果的确定性。如果你需要准确和事实的答案,就把参数值调低。如果你在寻找更多样化的响应,可以将其值调高点。

使用 Top P 意味着只有词元集合 tokens 中包含 top_p 概率质量的才会被考虑用于响应,因此较低的 top_p 值会选择最有信心的响应。这意味着较高的 top_p 值将使模型考虑更多可能的词语,包括不太可能的词语,从而导致更多样化的输出。

一般建议是改变 Temperature 和 Top P 其中一个参数就行,不用两个都调整

 

Top_k


在 AI 大模型中,top_k 是一个用于控制模型生成文本时的候选词范围的参数。它通过限制模型在每一步生成时只能从概率最高的前 k 个词中进行选择,从而影响生成文本的多样性和连贯性:当模型生成文本时,它会为每个可能的下一个词计算一个概率值。top_k 策略会将这些词按概率从高到低排序,然后只保留前 k 个词作为候选词。在这些候选词中,模型会根据一定的概率分布(通常经过温度参数调整)随机选择一个词作为下一个输出词。

如果没有 top_k,用贪心解码会有一些缺点。如,输出可能会陷入重复循环。想想智能手机自动建议中的建议。当你不断地选择建议最高的单词时,它可能会变成重复的句子(Top-k 采样是对前面“贪心策略”的优化,它从排名前 k 的 token 中进行抽样,允许其他分数或概率较高的 token 也有机会被选中。在很多情况下,这种抽样带来的随机性有助于提高生成质量)。

top_k 与其他参数的关系


  • temperature:控制生成的随机性。较高的温度会增加文本的多样性,但可能会降低连贯性;较低的温度则相反。
  • top_p:又称为核采样,它不是固定选取前k个词,而是选取累积概率达到某个阈值p的最小词集。这样可以动态调整候选词的数量,避免固定k值可能带来的局限。

 

Max Length


您可以通过调整 max length 来控制大模型生成的 token 数。指定 Max Length 有助于防止大模型生成冗长或不相关的响应并控制成本。

Frequency Penalty


frequency penalty 是对下一个生成的 token 进行惩罚,这个惩罚和 token 在响应和提示中已出现的次数成比例,frequency penalty 越高,某个词再次出现的可能性就越小,这个设置通过给 重复数量多的 Token 设置更高的惩罚来减少响应中单词的重复。

 

Presence Penalty


presence penalty 也是对重复的 token 施加惩罚,但与 frequency penalty 不同的是,惩罚对于所有重复 token 都是相同的。出现两次的 token 和出现 10 次的 token 会受到相同的惩罚。 此设置可防止模型在响应中过于频繁地生成重复的词。 如果您希望模型生成多样化或创造性的文本,您可以设置更高的 presence penalty,如果您希望模型生成更专注的内容,您可以设置更低的 presence penalty

temperaturetop_p 一样,一般建议是改变 frequency penaltypresence penalty 其中一个参数就行,不要同时调整两个。

 

AI 扩展阅读:




发表评论