大模型在生成文本时其实是在不停地做“根据前文猜下一个词”的选择题。模型为每个可能的下一个词token打一个原始分数logits然后通过转换成概率分布。而 Temperature、Top_p、Top_k 这些模型参数就是用来控制“怎么从这个概率分布里挑选词”的它们直接影响输出的随机性、创造性和可靠性。1. Temperature温度—— 控制分布的“陡峭”程度原理在 Softmax 之前把原始分数 除以温度T — 0z / T 会变得极大高概率词的得分被急剧放大低概率词被极度压制分布几乎变成一个“独热向量”。模型每次都选概率最高的那个词变成贪婪解码输出完全确定。T 1不做任何缩放使用模型原汁原味的概率分布。T 1所有得分被压缩高、低概率之间的差距缩小分布变得更均匀平坦原来低概率的词被“提”上来了输出随机性增大。直观作用低温0 ~ 0.3模型很“保守”非常拘谨只敢选最安全、最符合语法的词。适合需要事实准确、逻辑严密的场景如代码生成、数学解题、翻译、资料总结。中温0.5 ~ 0.8在创造性和连贯性之间平衡适合日常对话、通用写作。高温0.9 ~ 1.5模型变得“脑洞大开”会频繁使用冷门词汇、意想不到的联想但也更容易胡言乱语、跑题、逻辑断裂。适合诗歌、故事创意、头脑风暴。示例假设下一句是“我走在路上突然看到一只...”T0.1大概率输出“猫”、“狗”、“小鸟”这种统计上最常见的词。T1.0可能输出“穿着西装的企鹅”、“从天空掉落的时钟”开始有创意。T1.5可能输出“会说话的西兰花”、“昨天死去的记忆”甚至语无伦次的片段。2. Top_p核采样—— 只从“核心”候选里挑原理将候选词按概率从高到低排序然后依次累加概率只保留累积概率刚好达到p的那一批词把剩下那些无穷无尽但概率极低的“长尾”词全部砍掉。然后在保留下来的这个小集合里按它们原本的概率或经过温度调整后的概率重新归一化并采样。比如p0.9模型先拿出概率最高的词如果它占了 50%继续拿下一个30%下一个12%累积 92% ≥ 90% 就停止。这时候候选集可能只有 3~10 个词那些可能性极低的几十万个词直接被屏蔽。直观作用它解决了一个关键问题避免模型在“垃圾”选项上浪费概率并导致跑偏。哪怕单个垃圾词概率只有万分之一但几万个加起来也会经常被抽中使输出莫名其妙。Top_p 动态调整候选集大小当模型对下一个词很确定时分布尖锐候选集很小当模型很犹豫时分布平坦候选集会更大保留更多可能性。p 很小0.1 ~ 0.3只保留极少数最可能的词输出非常集中、乏味。p 适中0.8 ~ 0.95最常用的范围既能排除垃圾输出又能保持合理的多样性。p 1.0不使用核采样所有词都有可能被抽中当然概率还是很低的长尾词仍然可能被抽到。3. Top_k —— 粗暴地限定“前 k 名”原理直接只取概率最高的k 个词其余的丢弃然后在这k 个词中重新分配概率并采样。 k是个固定整数比如 40、50。与 Top_p 的区别Top_k 是固定名额不管分布是尖锐还是平坦永远只留 k 个词。如果模型很确定比如只有前 2 个词有意义后面全是噪音Top_k50 仍然会塞进 48 个垃圾词导致输出质量下降。如果模型很犹豫需要表达很多种可能Top_k5 又会粗暴地砍掉大部分合理选项导致输出枯燥重复。Top_p 是动态百分比能自动适应分布的“胖瘦”因此通常更合理。很多 API 同时支持 Top_k 和 Top_p通常会先 Top_k 粗筛再 Top_p 细筛比如k40, p0.9这样既保证效率又适应分布。但单独使用 Top_p 往往已经足够。4. 其他重要解码参数Repetition Penalty重复惩罚降低已经出现过的词的概率参数常取 1.0~1.2。大于 1 时会惩罚重复小于 1 反而鼓励重复极少用。能有效缓解“复读机”现象。Frequency Penalty频率惩罚根据词在当前生成内容中出现的次数等比惩罚出现次数越多惩罚越重。取值范围常见 -2.0 到 2.0正数减少重复。Presence Penalty存在惩罚只要某个词已经出现过就给予一次性惩罚不累加。用来鼓励模型转向新话题。5. 场景实战建议场景TemperatureTop_p其他代码生成、SQL、JSON 输出0 ~ 0.20.1~0.2 或 1.0不要 Top_p最好直接用贪婪解码事实问答、知识检索、翻译0.1 ~ 0.30.3~0.5Repetition penalty 1.0不惩罚通用聊天助手0.6 ~ 0.90.8 ~ 0.95Frequency penalty 0~0.3创意写作、故事0.9 ~ 1.20.9 ~ 1.0可加一点 presence penalty诗歌、极端头脑风暴1.2 ~ 1.50.95~1.0可能需要反复筛选结果
模型参数设置
发布时间:2026/7/7 4:21:25
大模型在生成文本时其实是在不停地做“根据前文猜下一个词”的选择题。模型为每个可能的下一个词token打一个原始分数logits然后通过转换成概率分布。而 Temperature、Top_p、Top_k 这些模型参数就是用来控制“怎么从这个概率分布里挑选词”的它们直接影响输出的随机性、创造性和可靠性。1. Temperature温度—— 控制分布的“陡峭”程度原理在 Softmax 之前把原始分数 除以温度T — 0z / T 会变得极大高概率词的得分被急剧放大低概率词被极度压制分布几乎变成一个“独热向量”。模型每次都选概率最高的那个词变成贪婪解码输出完全确定。T 1不做任何缩放使用模型原汁原味的概率分布。T 1所有得分被压缩高、低概率之间的差距缩小分布变得更均匀平坦原来低概率的词被“提”上来了输出随机性增大。直观作用低温0 ~ 0.3模型很“保守”非常拘谨只敢选最安全、最符合语法的词。适合需要事实准确、逻辑严密的场景如代码生成、数学解题、翻译、资料总结。中温0.5 ~ 0.8在创造性和连贯性之间平衡适合日常对话、通用写作。高温0.9 ~ 1.5模型变得“脑洞大开”会频繁使用冷门词汇、意想不到的联想但也更容易胡言乱语、跑题、逻辑断裂。适合诗歌、故事创意、头脑风暴。示例假设下一句是“我走在路上突然看到一只...”T0.1大概率输出“猫”、“狗”、“小鸟”这种统计上最常见的词。T1.0可能输出“穿着西装的企鹅”、“从天空掉落的时钟”开始有创意。T1.5可能输出“会说话的西兰花”、“昨天死去的记忆”甚至语无伦次的片段。2. Top_p核采样—— 只从“核心”候选里挑原理将候选词按概率从高到低排序然后依次累加概率只保留累积概率刚好达到p的那一批词把剩下那些无穷无尽但概率极低的“长尾”词全部砍掉。然后在保留下来的这个小集合里按它们原本的概率或经过温度调整后的概率重新归一化并采样。比如p0.9模型先拿出概率最高的词如果它占了 50%继续拿下一个30%下一个12%累积 92% ≥ 90% 就停止。这时候候选集可能只有 3~10 个词那些可能性极低的几十万个词直接被屏蔽。直观作用它解决了一个关键问题避免模型在“垃圾”选项上浪费概率并导致跑偏。哪怕单个垃圾词概率只有万分之一但几万个加起来也会经常被抽中使输出莫名其妙。Top_p 动态调整候选集大小当模型对下一个词很确定时分布尖锐候选集很小当模型很犹豫时分布平坦候选集会更大保留更多可能性。p 很小0.1 ~ 0.3只保留极少数最可能的词输出非常集中、乏味。p 适中0.8 ~ 0.95最常用的范围既能排除垃圾输出又能保持合理的多样性。p 1.0不使用核采样所有词都有可能被抽中当然概率还是很低的长尾词仍然可能被抽到。3. Top_k —— 粗暴地限定“前 k 名”原理直接只取概率最高的k 个词其余的丢弃然后在这k 个词中重新分配概率并采样。 k是个固定整数比如 40、50。与 Top_p 的区别Top_k 是固定名额不管分布是尖锐还是平坦永远只留 k 个词。如果模型很确定比如只有前 2 个词有意义后面全是噪音Top_k50 仍然会塞进 48 个垃圾词导致输出质量下降。如果模型很犹豫需要表达很多种可能Top_k5 又会粗暴地砍掉大部分合理选项导致输出枯燥重复。Top_p 是动态百分比能自动适应分布的“胖瘦”因此通常更合理。很多 API 同时支持 Top_k 和 Top_p通常会先 Top_k 粗筛再 Top_p 细筛比如k40, p0.9这样既保证效率又适应分布。但单独使用 Top_p 往往已经足够。4. 其他重要解码参数Repetition Penalty重复惩罚降低已经出现过的词的概率参数常取 1.0~1.2。大于 1 时会惩罚重复小于 1 反而鼓励重复极少用。能有效缓解“复读机”现象。Frequency Penalty频率惩罚根据词在当前生成内容中出现的次数等比惩罚出现次数越多惩罚越重。取值范围常见 -2.0 到 2.0正数减少重复。Presence Penalty存在惩罚只要某个词已经出现过就给予一次性惩罚不累加。用来鼓励模型转向新话题。5. 场景实战建议场景TemperatureTop_p其他代码生成、SQL、JSON 输出0 ~ 0.20.1~0.2 或 1.0不要 Top_p最好直接用贪婪解码事实问答、知识检索、翻译0.1 ~ 0.30.3~0.5Repetition penalty 1.0不惩罚通用聊天助手0.6 ~ 0.90.8 ~ 0.95Frequency penalty 0~0.3创意写作、故事0.9 ~ 1.20.9 ~ 1.0可加一点 presence penalty诗歌、极端头脑风暴1.2 ~ 1.50.95~1.0可能需要反复筛选结果