大模型生成时 logits、概率和 token 之间是什么关系?
简化版
大模型每一步不是直接输出文字,而是先对词表中每个 token 给出一个 logit,再经温度、约束或采样处理形成选择分布,最后选出下一个 token 并追加到序列。Logit 是相对分数,不是概率;Softmax 概率也不是答案正确率。理解这条链路,才能正确解释随机性、受限解码和 Logprob 的能力边界。
详细版
- token 是模型读写文本的最小离散单元,可能是一个字、一个词片段或标点。
- logit 是归一化前的分数,大小表示当前上下文下模型偏向某个 token 的程度。
- softmax 把 logits 转成概率,temperature 会改变分布尖锐程度。
- 采样策略从概率分布中选 token,因此生成质量不仅取决于模型,也取决于解码参数。
- 面试中要能把“模型算分、概率化、抽样、拼回文本”这四步讲清楚。
完整版教学
核心边界:Softmax 把相对分数归一化为“下一个 token 的模型分布”,不是把答案校准成事实正确概率。
一、生成闭环从哪里开始
文本先由 Tokenizer 变成 token id,模型为词表中每个候选输出 logit,再经 softmax 得到条件概率。采样策略只在这组概率上选下一个 token,选中后追加到上下文并重复计算。
这个过程一直运行到生成 EOS、命中停止条件、达到长度上限或被外部取消。前一步选中的 token 会改变下一步上下文,因此微小差异可能在后续不断放大。
二、核心机制怎么工作
前向计算会得到一个长度等于词表大小的向量,向量中每个位置对应一个候选 token 的 logit。softmax 会让这些分数变成和为 1 的概率分布,解码器再根据业务目标选择保守或开放的生成方式。
logit 是未归一化分数,加同一常数不会改变 softmax;temperature 用除法缩放 logit 差距,T<1 让分布更尖,T>1 更平。top-k 固定保留 k 个候选,top-p 保留累计概率达到 p 的最小集合。
三、带数字的拆解
假设词表只有 5 个候选 token,logits 分别是 [6.0, 4.0, 2.0, 1.0, 0.0]。temperature=1 时第一个 token 已经明显占优;temperature=0.5 会进一步放大差距,输出更稳定;temperature=1.5 会拉平分布,输出更发散。
p_i = exp(logit_i / T) / sum_j exp(logit_j / T)
T 越小,分布越尖锐;T 越大,分布越平。
greedy decoding = argmax(p_i)
四、流程图和工程落点
可以把它拆成下面这条链路来讲:
上下文 token ids
|
Transformer 前向计算
|
词表 logits
|
softmax + temperature/top-p/top-k
|
选择下一个 token 并追加到上下文
五、和相近方案怎么区分
| 概念 | 作用 | 常见面试点 |
|---|---|---|
| token | 离散输入输出单元 | 为什么中文、英文长度估算不同 |
| logit | 模型未归一化偏好 | 为什么不能直接当概率 |
| probability | 可采样分布 | temperature 如何影响稳定性 |
| decoder | 选择 token 的规则 | 业务场景如何调参数 |
六、上线或训练时最容易踩的坑
-
把 logit 当成概率会导致解释错误,因为 logit 可以为负,也不要求求和为 1。
-
只调 temperature 不能解决所有幻觉问题,检索、约束解码和答案校验同样重要。
-
不同 Tokenizer 会改变 token 数、截断位置和成本,即使可见文本完全相同也不能直接比较 logits。
-
服务端可能同时应用 temperature、top-p、重复惩罚和 logit bias,复现实验必须记录完整解码配置。
七、把 logits 真正算成概率
对 logits [6,4,2,1,0],为数值稳定可先减去最大值 6,再做 Softmax。T=1 时概率约为 [0.860, 0.116, 0.016, 0.006, 0.002];T=0.5 时第一项约为 0.982;T=1.5 时第一项约为 0.721,分布明显变平。
所有 logits 同时加 100,Softmax 结果不变,因为只看相对差值。实际实现也通常先减最大值避免 exp 溢出;这说明 logit 的绝对零点没有独立概率含义。
八、常见误区与追问
- 误区:token 就等于中文的一个字。 常见字可能独立成 token,生僻字、空格、英文和代码可能被拆成多个子词或字节片段。
- 误区:概率最高的 token 一定组成最好的答案。 局部贪心不保证整段联合概率或任务质量最高,早期选择还会改变后续条件分布。
- 误区:temperature 越高模型越聪明。 高温只让低概率候选更容易被采到,增加多样性同时也提高跑题和错误风险。
- 追问:为什么 top-p 比 top-k 更适合开放式生成? top-p 的候选数会随分布置信度变化:分布尖时集合小,分布平时自动保留更多可能。
- 追问:如何用 logits 做结构化输出约束? 根据 JSON 语法状态屏蔽非法 token,把其 logit 设为负无穷,再在剩余合法集合中归一化采样。
- 追问:为什么同样 prompt 在不同服务端参数下结果不同? Tokenizer、模型版本、浮点实现、随机种子和采样过滤顺序任一不同,都可能改变生成路径。
九、加强记忆
记住“分词进来,logits 出来,softmax 成概率,解码定风格”。面试时按这条链路讲,既能落到数学,也能落到工程调参。
生成链路按“文本分词—模型给 logits—softmax 成概率—过滤与采样—追加 token”记。temperature 改尖锐度,top-k 固定个数,top-p 固定累计概率。