F
Member
调大模型生成时,温度(temperature)、top-p、top-k 是最常被拧的旋钮。它们都作用在“下一个 token 怎么从概率分布里抽样”,但切入点不同;一起乱拧,效果会互相打架。
一、温度:拉平或锐化分布
模型先对词表给出 logits,经 Softmax 变概率。温度大于 1 会让分布更平,低概率词更容易被采到,输出更多样也更易跑偏;温度趋近更小会让分布更尖,更偏向最高概率词,表现更稳、更重复。温度为 0 的实现通常近乎贪心取最大(具体以实现为准)。温度不直接等于“创造力开关”,它是抽样锐度;同一温度在不同模型上的体感也可能不同。
二、top-k:只保留前 k 个
top-k 在抽样前截断,只保留概率最高的 k 个 token 再归一化抽样。k 小则更保守,k 大则更开放。它提供一个硬性候选上限,对抑制极端长尾词有用,但在“最高概率很集中”或“很分散”的位置,同一 k 的含义不同。因此只调 k、不看具体分布形状,解释力有限。
三、top-p:按累计概率截断
top-p(nucleus sampling)按概率从高到低累加,直到达到阈值 p,再在这个动态集合里抽样。分布尖时候选少,分布平时候选自动变多,比固定 k 更自适应。实务上,温度与 top-p 常被组合使用;同时再加一个很小的 top-k,有时是为了实现便利或额外保险。对于要强确定性的任务(抽取、格式化),更低温度、更小的核、甚至贪心/约束解码往往更合适;对于头脑风暴,才提高多样性。先改一个旋钮做对比,比三个一起拧更容易归因。
若框架同时提供 seed 固定能力,做回归对比时应记录完整采样配置,否则结果难以复现。
站方整理这类主题,是为了给入门读者一张“先建立正确问题意识”的地图,具体参数与实现仍以标准、手册与实测为准。
讨论问题:
1. 你们生产默认采样参数是什么?按任务分档吗?
2. 多样性提升后,幻觉与格式错误率如何一起监控?
3. 结构化输出场景,还需要温度大于 0 吗?
一、温度:拉平或锐化分布
模型先对词表给出 logits,经 Softmax 变概率。温度大于 1 会让分布更平,低概率词更容易被采到,输出更多样也更易跑偏;温度趋近更小会让分布更尖,更偏向最高概率词,表现更稳、更重复。温度为 0 的实现通常近乎贪心取最大(具体以实现为准)。温度不直接等于“创造力开关”,它是抽样锐度;同一温度在不同模型上的体感也可能不同。
二、top-k:只保留前 k 个
top-k 在抽样前截断,只保留概率最高的 k 个 token 再归一化抽样。k 小则更保守,k 大则更开放。它提供一个硬性候选上限,对抑制极端长尾词有用,但在“最高概率很集中”或“很分散”的位置,同一 k 的含义不同。因此只调 k、不看具体分布形状,解释力有限。
三、top-p:按累计概率截断
top-p(nucleus sampling)按概率从高到低累加,直到达到阈值 p,再在这个动态集合里抽样。分布尖时候选少,分布平时候选自动变多,比固定 k 更自适应。实务上,温度与 top-p 常被组合使用;同时再加一个很小的 top-k,有时是为了实现便利或额外保险。对于要强确定性的任务(抽取、格式化),更低温度、更小的核、甚至贪心/约束解码往往更合适;对于头脑风暴,才提高多样性。先改一个旋钮做对比,比三个一起拧更容易归因。
若框架同时提供 seed 固定能力,做回归对比时应记录完整采样配置,否则结果难以复现。
站方整理这类主题,是为了给入门读者一张“先建立正确问题意识”的地图,具体参数与实现仍以标准、手册与实测为准。
讨论问题:
1. 你们生产默认采样参数是什么?按任务分档吗?
2. 多样性提升后,幻觉与格式错误率如何一起监控?
3. 结构化输出场景,还需要温度大于 0 吗?