一句话定义:概率分布(Probability Distribution)是一张“所有可能结果各自占多少概率”的清单——所有概率都非负,加起来等于 1。大模型每生成一个 token,内部产生的正是这样一张覆盖整个词表的概率分布。
模型不是在“想出一个词”,而是在打分
语言模型的词表(vocabulary)通常有几万到十几万个 token。给定前文,模型前向计算一次,输出的不是一个词,而是词表上每一个 token 的原始分数,叫 logits——可正可负、大小任意,不是概率。接着 softmax 把这些分数压成 0 到 1 之间、总和为 1 的数,这才是概率分布。
生活化的比方:像给整本菜单的每道菜打分。logits 是“我对宫保鸡丁的打分是 8.7,对麻婆豆腐是 6.2”,softmax 是把打分换算成“这顿饭点宫保鸡丁的可能性占 45%,麻婆豆腐占 12%”。模型每次只能上一道菜,但它心里有整本菜单的排序。
温度、Top-p 只是在这张分布上做取舍
分布算出来之后,怎么从中挑一个 token,是解码策略(decoding strategy)的事:
| 策略 | 对分布做了什么 | 效果 |
|---|---|---|
| 贪心(greedy) | 直接取概率最高的那个 | 最确定,但容易重复、呆板 |
| 温度(temperature) | 不改排序,只改陡峭程度:T<1 让高分更高、分布更尖;T>1 让分布更平 | 调“保守”还是“发散” |
| Top-k | 只留概率最高的 k 个,其余清零后重新归一化 | 砍掉长尾,k 是固定数量 |
| AI 词典:Top-p">Top-p(nucleus sampling) | 只留累积概率刚好达到 p 的最小集合 | 按“把握程度”动态截断,比 Top-k 更自适应 |
关键点:这些参数都不改变模型本身,只是在同一张分布上换一种取舍方式。温度调到很低也不等于“唯一答案”,只是把采样压得极窄。具体默认值各家 API 不同,以官方文档为准。
和几个相邻概念的区别
- 概率 vs 概率分布:概率是单个结果的数(“下雨 60%”),分布是整张表(“下雨 60%、阴 30%、晴 10%”)。
- logits vs 概率分布:前者是没归一化的原始分数,后者是 softmax 之后的归一化结果。
- 分布 vs 采样策略:分布是牌面,采样策略是怎么抽牌。混淆这两者,就会误以为调温度能“让模型变聪明”——它只改变抽取方式,不改变模型判断。
对实际工作的意义
理解这一点,能解释很多日常困惑:同一句 prompt 问两次答案不同,是因为默认在采样;temperature 设为 0 仍可能有细微差异,源于浮点运算与批处理顺序;幻觉之所以发生,是因为低概率 token 依然在分布里,长尾被抽到就出错。
对做产品的人更实在的推论是:调试 prompt 时不要被单次输出误导。一次回答只是从分布里抽的一个样本,改完 prompt 至少跑几遍看稳定性。如果一个改动能同时抬高多个合理答案的概率,那才是真的改进。
