核心背景Next Token PredictionLLM 的强大能力相信已家喻户晓写代码、吟诗作对、做PPT、写报告无所不能。当剥开 LLM 的技术外壳你会发现核心逻辑很简单玩一场永无止境的「词语接龙」游戏。如上面的架构图所示LLM 的本质就是Next Token Prediction下一个词预测。它并不理解文字背后的深意而是通过海量数据的「喂养」掌握了人类语言的概率分布。当输入一句话LLM 会像一个超级输入法根据已经给出的词在后台疯狂计算成千上万个备选词出现的几率筛选那个最「顺理成章」的接下去。实现该过程的精确控制需要归功于图中顶部的那个数学魔法「Softmax 函数」。σ(z)iezi∑j1Kezjσ(z)i∑j1Kezjezi该公式把模型输出的一堆数字转换成「所有候选词的概率分布」我们来拆成下公式1的计算过程zizi 也叫 Logits即上图中 「Linear Layer」的输出分值「Linear Layer」通过矩阵运算得到每个词的原始得分zizi。zizi可以是任何实数数值越大代表模型认为这个词出现的可能性越高。eziezi : 这个式子会放大高分词与低分词的差距让模型更倾向于选 「更合理的词」。我们来举例说明比如两个词 zi10,zj1zi10,zj1经过exp后 ezie106374.31,ezje12.72ezie106374.31,ezje12.72两者从原来的10倍差距放大到2343.49。∑j1Kezj∑j1Kezj: 所有词的分数之和其作用是让所有词的概率加起来刚好等于 1就像我们说「这几个词里句号有 70% 的概率逗号有 20%其他词加起来只有 10%」。以上图中中输入「LLMs are cool」为例模型经过「Linear Layer、Softmax 函数」运算后映射为一组总和为 1 的概率分布接「.」的概率可能是 80%接「!」的概率是 15%其他符号的概率为5%。通过这种方式原本枯燥的数字转化成了模型对下一个词的「信心指数」。每预测出一个词LLM 就会把这个词加入到输入序列里再次循环上述过程。二、核心参数讲解2.1 temperature温度该参数值越小输出结果越确定值越高生成内容越随机、多样且富有创造性取值范围 02默认值为 1。这是最核心的参数直接作用于模型最后一层Softmax 函数。Linear Layer输出的是逻辑得分Logits通过Softmax 函数转化为概率分布。加入Temperature ( TT ) 后的候选词的概率分布σ(z)iezi/T∑j1Kezj/Tσ(z)i∑j1Kezj/Tezi/T假设Linear Layer输出三个词的原始 logits 即zizi为[10, 2, 1]当 T1T1 拉大高分和低分之间的差距。概率分布变得尖锐模型会非常保守地选择那个概率最高的词。以取T0.1T0.1为例 zi/Tzi/T 分别为 [100, 20, 10]差距被急剧放大经过公式2Softmax 函数后σ(z)≈[1,0,0]σ(z)≈[1,0,0]概率分布变得极度尖锐输出稳定、确定、忠于事实。当 T1T1 缩小差距。概率分布变得平滑原本概率较低的词也有了翻身的机会模型变得「有创意」或「胡言乱语」。以取T10T10为例 zi/Tzi/T 分别为 [1, 0.2, 0.1]经过公式2Softmax 函数后σ(z)≈[0.539,0.242,0.219]σ(z)≈[0.539,0.242,0.219]概率被拉平三个词都有明显机会被选中输出更随机、更多样。2.2 frequency_penalty频率惩罚frequency penalty 会按 token 在提示与回复中已出现的次数对下一个待生成 token 施加比例惩罚数值越高重复出现的 token 概率越低从而减少回复中的词汇重复。数值范围 -2.02.0默认 0在原始 Logit 值上减去一个偏移量LogitnewLogitold−(count×frequencypenalty)LogitnewLogitold−(count×frequencypenalty)其中countcount 为候选词已出现次数出现次数越多 → 扣得越多 → 概率越低 → 越不容易重复。假设现在要生成下一个词候选词是我已出现3 次今天已出现1 次开心已出现0 次假设Linear Layer输出三个词的原始 logits 即zizi为[5, 4, 3]我们分三类情况来讨论 frequency_penalty 的大小对候选词的概率分布的影响frequency_penalty0zizi 分别为 [5, 4, 3]经过公式2Softmax 函数后σ(z)≈[0.665,0.245,0.024]σ(z)≈[0.665,0.245,0.024]模型很容易选择之前重复的词「我」frequency_penalty0.5zizi 分别为 [5−0.5×3, 4−0.5×1, 3−0][3.5, 3.5, 3]经过公式2Softmax 函数后σ(z)≈[0.38,0.38,0.24]σ(z)≈[0.38,0.38,0.24]候选词「我」被明显打压不再一家独大。frequency_penalty1.0zizi 分别为[5−1×3, 4−1×1, 3][2, 3, 3]经过公式2Softmax 函数后σ(z)≈[0.15,0.42,0.43]σ(z)≈[0.15,0.42,0.43]候选词「我」概率变得很低几乎不会再重复。需要注意temperature缩放所有 logit抹平 / 放大差距frequency_penalty只针对出现过的词做减法专门防重复2.3 presence_penalty存在惩罚presence penalty 同样对重复词施加惩罚但与 frequency penalty 不同其惩罚力度固定同一 词无论出现 2 次还是 10 次惩罚均相同可避免模型过度重复用词。高值利于生成多样创意文本低值则让内容更聚焦。数值范围 -2.02.0默认 0。与 frequency_penalty 类似也是在原始 Logit 值上减去一个偏移量LogitnewLogitold−(mask×presence_penalty)LogitnewLogitold−(mask×presence_penalty)其中maskmask 是一个布尔开关。如果候选词在之前出现过至少一次则 mask1mask1 否则mask0mask0 。假设现在要生成下一个词候选词是我已出现3 次开心已出现0 次假设两个词的原始 logits 即zizi为[5, 5]我们分三类情况来讨论 presence_penalty 的大小对候选词的概率分布的影响presence_penalty 0无惩罚zizi 分别为 [5, 5]经过公式2Softmax 函数后σ(z)≈[0.5,0.5]σ(z)≈[0.5,0.5]对候选词的选择没有影响presence_penalty 0.8调高zizi 分别为 [5−0.8,5][4.2,5]经过公式2Softmax 函数后σ(z)≈[0.31,0.69]σ(z)≈[0.31,0.69]新词明显更可能被选。presence_penalty -0.5调低 / 奖励zizi 分别为 [50.5,5][5.5,5]经过公式2Softmax 函数后σ(z)≈[0.62,0.38]σ(z)≈[0.62,0.38]就候选词「我」被鼓励重复。与 frequency_penalty 类似presence_penalty 只针对出现过的词做减法专门防重复。2.4 top_p概率截断top_p与 temperature 同属核采样可控制模型输出的确定性需准确、事实性答案时调低参数追求多样化响应则调高参数。取值 01默认值为 1。top_p 是动态的。它将词项按概率降序排列只在累加概率达到 pp 的最小集合中采样。假设候选词排序后概率为0.5, 0.25, 0.15, 0.06, 0.04总和 1讨论不同取值的影响top_p0.5调低累加为0.5 →刚好达标只保留[0.5]→ 输出完全确定。top_p0.8中等累加为 0.50.250.150.9 ≥0.8 保留前 3 个词→ 输出自然、多样适中。top_p0.95调高累加几乎到全部保留几乎所有词→ 输出更随机、创意更强。2.5 max_tokens最大生成长度通过调整 max length 控制 LLM 生成的 token 数量设置该值能避免冗长无关回复同时控制成本。max_tokensmax length是控制大语言模型生成长度的核心参数其数学本质设定模型生成 token 的最大步数 N当生成过程达到第 N 个 token 时强制终止不改变每一步的概率分布与采样逻辑。调低 max_tokens 会缩小最大步数 N使输出更简短克制但易出现内容截断不完整调高 max_tokens 则扩大 N允许输出更完整、详细、篇幅更长的内容同时会增加 token 消耗与调用成本。max_lengthmax_tokens在大语言模型底层以自回归生成循环的步数上限实现。模型每生成一个 token 即完成一次前向推理与采样同时计数器加 1当计数器达到 max_length 时生成循环被强制终止不再进行后续推理。该机制属于生成过程的控制逻辑不改变模型的概率分布、logit 计算或采样策略仅通过限制生成步数控制输出长度调低会提前截断输出调高则允许生成更长内容并消耗更多资源。2.6 stop停止标志stop 可为字符串或字符串列表模型遇到指定标志时会立即停止生成。例如设置 stop\[\n\nHuman:\]可在对话模型准备生成下一轮用户提示时强制停止。合理设置能避免跑题与多余输出默认无强制停止符模型会按内置停止符或 max_tokens 耗尽结束生成。Stop停止标志在 LLM 自回归生成过程中以实时文本后缀匹配的方式实现。模型每生成一个 token 并解码为文本后会检查当前输出文本末尾是否包含预设的停止字符串若命中任一停止序列生成循环立即强制终止。该机制属于生成过程的控制逻辑不改变模型推理、概率分布与采样策略仅通过字符串匹配触发提前停止设置更多停止序列会让输出更易提前结束、更克制减少冗余与跑题。模型依然是一步生成 1 个 token流程如下
LLM核心参数配置指南:原理篇
发布时间:2026/6/25 22:22:19
核心背景Next Token PredictionLLM 的强大能力相信已家喻户晓写代码、吟诗作对、做PPT、写报告无所不能。当剥开 LLM 的技术外壳你会发现核心逻辑很简单玩一场永无止境的「词语接龙」游戏。如上面的架构图所示LLM 的本质就是Next Token Prediction下一个词预测。它并不理解文字背后的深意而是通过海量数据的「喂养」掌握了人类语言的概率分布。当输入一句话LLM 会像一个超级输入法根据已经给出的词在后台疯狂计算成千上万个备选词出现的几率筛选那个最「顺理成章」的接下去。实现该过程的精确控制需要归功于图中顶部的那个数学魔法「Softmax 函数」。σ(z)iezi∑j1Kezjσ(z)i∑j1Kezjezi该公式把模型输出的一堆数字转换成「所有候选词的概率分布」我们来拆成下公式1的计算过程zizi 也叫 Logits即上图中 「Linear Layer」的输出分值「Linear Layer」通过矩阵运算得到每个词的原始得分zizi。zizi可以是任何实数数值越大代表模型认为这个词出现的可能性越高。eziezi : 这个式子会放大高分词与低分词的差距让模型更倾向于选 「更合理的词」。我们来举例说明比如两个词 zi10,zj1zi10,zj1经过exp后 ezie106374.31,ezje12.72ezie106374.31,ezje12.72两者从原来的10倍差距放大到2343.49。∑j1Kezj∑j1Kezj: 所有词的分数之和其作用是让所有词的概率加起来刚好等于 1就像我们说「这几个词里句号有 70% 的概率逗号有 20%其他词加起来只有 10%」。以上图中中输入「LLMs are cool」为例模型经过「Linear Layer、Softmax 函数」运算后映射为一组总和为 1 的概率分布接「.」的概率可能是 80%接「!」的概率是 15%其他符号的概率为5%。通过这种方式原本枯燥的数字转化成了模型对下一个词的「信心指数」。每预测出一个词LLM 就会把这个词加入到输入序列里再次循环上述过程。二、核心参数讲解2.1 temperature温度该参数值越小输出结果越确定值越高生成内容越随机、多样且富有创造性取值范围 02默认值为 1。这是最核心的参数直接作用于模型最后一层Softmax 函数。Linear Layer输出的是逻辑得分Logits通过Softmax 函数转化为概率分布。加入Temperature ( TT ) 后的候选词的概率分布σ(z)iezi/T∑j1Kezj/Tσ(z)i∑j1Kezj/Tezi/T假设Linear Layer输出三个词的原始 logits 即zizi为[10, 2, 1]当 T1T1 拉大高分和低分之间的差距。概率分布变得尖锐模型会非常保守地选择那个概率最高的词。以取T0.1T0.1为例 zi/Tzi/T 分别为 [100, 20, 10]差距被急剧放大经过公式2Softmax 函数后σ(z)≈[1,0,0]σ(z)≈[1,0,0]概率分布变得极度尖锐输出稳定、确定、忠于事实。当 T1T1 缩小差距。概率分布变得平滑原本概率较低的词也有了翻身的机会模型变得「有创意」或「胡言乱语」。以取T10T10为例 zi/Tzi/T 分别为 [1, 0.2, 0.1]经过公式2Softmax 函数后σ(z)≈[0.539,0.242,0.219]σ(z)≈[0.539,0.242,0.219]概率被拉平三个词都有明显机会被选中输出更随机、更多样。2.2 frequency_penalty频率惩罚frequency penalty 会按 token 在提示与回复中已出现的次数对下一个待生成 token 施加比例惩罚数值越高重复出现的 token 概率越低从而减少回复中的词汇重复。数值范围 -2.02.0默认 0在原始 Logit 值上减去一个偏移量LogitnewLogitold−(count×frequencypenalty)LogitnewLogitold−(count×frequencypenalty)其中countcount 为候选词已出现次数出现次数越多 → 扣得越多 → 概率越低 → 越不容易重复。假设现在要生成下一个词候选词是我已出现3 次今天已出现1 次开心已出现0 次假设Linear Layer输出三个词的原始 logits 即zizi为[5, 4, 3]我们分三类情况来讨论 frequency_penalty 的大小对候选词的概率分布的影响frequency_penalty0zizi 分别为 [5, 4, 3]经过公式2Softmax 函数后σ(z)≈[0.665,0.245,0.024]σ(z)≈[0.665,0.245,0.024]模型很容易选择之前重复的词「我」frequency_penalty0.5zizi 分别为 [5−0.5×3, 4−0.5×1, 3−0][3.5, 3.5, 3]经过公式2Softmax 函数后σ(z)≈[0.38,0.38,0.24]σ(z)≈[0.38,0.38,0.24]候选词「我」被明显打压不再一家独大。frequency_penalty1.0zizi 分别为[5−1×3, 4−1×1, 3][2, 3, 3]经过公式2Softmax 函数后σ(z)≈[0.15,0.42,0.43]σ(z)≈[0.15,0.42,0.43]候选词「我」概率变得很低几乎不会再重复。需要注意temperature缩放所有 logit抹平 / 放大差距frequency_penalty只针对出现过的词做减法专门防重复2.3 presence_penalty存在惩罚presence penalty 同样对重复词施加惩罚但与 frequency penalty 不同其惩罚力度固定同一 词无论出现 2 次还是 10 次惩罚均相同可避免模型过度重复用词。高值利于生成多样创意文本低值则让内容更聚焦。数值范围 -2.02.0默认 0。与 frequency_penalty 类似也是在原始 Logit 值上减去一个偏移量LogitnewLogitold−(mask×presence_penalty)LogitnewLogitold−(mask×presence_penalty)其中maskmask 是一个布尔开关。如果候选词在之前出现过至少一次则 mask1mask1 否则mask0mask0 。假设现在要生成下一个词候选词是我已出现3 次开心已出现0 次假设两个词的原始 logits 即zizi为[5, 5]我们分三类情况来讨论 presence_penalty 的大小对候选词的概率分布的影响presence_penalty 0无惩罚zizi 分别为 [5, 5]经过公式2Softmax 函数后σ(z)≈[0.5,0.5]σ(z)≈[0.5,0.5]对候选词的选择没有影响presence_penalty 0.8调高zizi 分别为 [5−0.8,5][4.2,5]经过公式2Softmax 函数后σ(z)≈[0.31,0.69]σ(z)≈[0.31,0.69]新词明显更可能被选。presence_penalty -0.5调低 / 奖励zizi 分别为 [50.5,5][5.5,5]经过公式2Softmax 函数后σ(z)≈[0.62,0.38]σ(z)≈[0.62,0.38]就候选词「我」被鼓励重复。与 frequency_penalty 类似presence_penalty 只针对出现过的词做减法专门防重复。2.4 top_p概率截断top_p与 temperature 同属核采样可控制模型输出的确定性需准确、事实性答案时调低参数追求多样化响应则调高参数。取值 01默认值为 1。top_p 是动态的。它将词项按概率降序排列只在累加概率达到 pp 的最小集合中采样。假设候选词排序后概率为0.5, 0.25, 0.15, 0.06, 0.04总和 1讨论不同取值的影响top_p0.5调低累加为0.5 →刚好达标只保留[0.5]→ 输出完全确定。top_p0.8中等累加为 0.50.250.150.9 ≥0.8 保留前 3 个词→ 输出自然、多样适中。top_p0.95调高累加几乎到全部保留几乎所有词→ 输出更随机、创意更强。2.5 max_tokens最大生成长度通过调整 max length 控制 LLM 生成的 token 数量设置该值能避免冗长无关回复同时控制成本。max_tokensmax length是控制大语言模型生成长度的核心参数其数学本质设定模型生成 token 的最大步数 N当生成过程达到第 N 个 token 时强制终止不改变每一步的概率分布与采样逻辑。调低 max_tokens 会缩小最大步数 N使输出更简短克制但易出现内容截断不完整调高 max_tokens 则扩大 N允许输出更完整、详细、篇幅更长的内容同时会增加 token 消耗与调用成本。max_lengthmax_tokens在大语言模型底层以自回归生成循环的步数上限实现。模型每生成一个 token 即完成一次前向推理与采样同时计数器加 1当计数器达到 max_length 时生成循环被强制终止不再进行后续推理。该机制属于生成过程的控制逻辑不改变模型的概率分布、logit 计算或采样策略仅通过限制生成步数控制输出长度调低会提前截断输出调高则允许生成更长内容并消耗更多资源。2.6 stop停止标志stop 可为字符串或字符串列表模型遇到指定标志时会立即停止生成。例如设置 stop\[\n\nHuman:\]可在对话模型准备生成下一轮用户提示时强制停止。合理设置能避免跑题与多余输出默认无强制停止符模型会按内置停止符或 max_tokens 耗尽结束生成。Stop停止标志在 LLM 自回归生成过程中以实时文本后缀匹配的方式实现。模型每生成一个 token 并解码为文本后会检查当前输出文本末尾是否包含预设的停止字符串若命中任一停止序列生成循环立即强制终止。该机制属于生成过程的控制逻辑不改变模型推理、概率分布与采样策略仅通过字符串匹配触发提前停止设置更多停止序列会让输出更易提前结束、更克制减少冗余与跑题。模型依然是一步生成 1 个 token流程如下