本质:LLM 是一个“概率预测机”
核心启示: LLM 实际上并不“知道”事实,它只是在模仿训练数据中词语出现的统计规律。这就是“幻觉”(Hallucination)的根源——它可能自信地输出了一个概率很高但逻辑错误的词。
关键参数:控制“创造性” (Hyperparameters)
A. Temperature (温度)
在 LLM 中,Temperature 是用来控制“下一个 Token”概率分布平滑程度的参数。
底层原理:Softmax 的缩放 (Math)
模型输出的原始分数叫做Logits(x_i)。将 Logits 转化为概率 Pi 使用的是 Softmax 函数。Temperature (T) 是这个公式中的一个除数:
$P_i = \frac{\exp(x_i / T)}{\sum \exp(x_j / T)}$
范围: 0.0 ~ 1.0 (部分模型可更高)。
作用: 改变概率分布的平滑程度。
Temp = 0: 贪婪采样 (Greedy Sampling)。永远选概率最大的那个词。输出确定,适合写代码、JSON 提取。
Temp = 1: 依概率随机采样。增加了低概率词被选中的机会。适合创意写作。
形象演示
B. Top-P (核采样)
Top-P (核采样)进行“末位淘汰”。
核心直觉:VIP 俱乐部机制
想象 LLM 面前有一张包含几万个单词的“候选名单”。
Top-K (旧方法): 死板地规定“只准在前 5 名里选”。
缺陷: 有时候第 6 名也很合适,有时候前 5 名里有 4 个都是垃圾。
Top-P (新方法): 规定“累积概率达到 P (例如 0.9) 就停止”。
只要这一组词加起来够稳(占了 90% 的可能性),我就只在这一组里选,剩下的那 10% 概率的“长尾垃圾词”直接切掉。大模型基础概念
Top-P (新方法): 规定“累积概率达到 P (例如 0.9) 就停止”。
只要这一组词加起来够稳(占了 90% 的可能性),我就只在这一组里选,剩下的那 10% 概率的“长尾垃圾词”直接切掉。
建议: 通常只调 Temperature 或只调 Top-P,不要同时调。
动态调整的“候选池”
Top-P 最厉害的地方在于它能根据语境的确定性,动态调整候选词的数量。
我们对比两个场景,假设 Top-P 设置为0.9:
场景 A:确定性高 (如“我要去北京天安...”)
这时候模型非常确定下一个字是“门”。
门 (0.85) -> 累积 0.85 (未满 0.9)
也就是 (0.06) -> 累积 0.91 (停!)
结果: 候选池里只有2 个词。模型绝不会选到莫名其妙的词。
场景 B:确定性低 (如“今天中午我想吃...”)
这时候能接的词太多了。
米饭 (0.15)
面条 (0.14)
饺子 (0.13)
... (很多个 0.1 左右的词)
...
结果: 可能要加到第15 个词,累积概率才凑够 0.9。
Top-P 的智慧: 它自动扩大了选择范围,允许更多的多样性。
一句话总结: Top-P 在你“不知道说什么”时给你更多选择,在你“必须这么说”时强行收敛。