大模型生成时 logits、概率和 token 之间是什么关系?
简化版
大模型每一步不是直接吐出简要说,而是先对词表里每个 token 打一个 logit 分数,再用 softmax 变成概率分布,最后由 greedy、temperature、top-p 等解码策略选出下一个 token。理解这条链路,才能解释为什么同一个问题会有不同答案,也能定位重复、胡说、格式跑偏等生成问题。
详细版
- token 是模型读写文本的最小离散单元,可能是一个字、一个词片段或标点。
- logit 是归一化前的分数,大小表示当前上下文下模型偏向某个 token 的程度。
- softmax 把 logits 转成概率,temperature 会改变分布尖锐程度。
- 采样策略从概率分布中选 token,因此生成质量不仅取决于模型,也取决于解码参数。
- 面试中要能把“模型算分、概率化、抽样、拼回文本”这四步讲清楚。
完整版教学
这道题考察候选人是否理解 LLM 生成的最小闭环,而不是只会说“模型预测下一个词”。
一、这题真正考什么
这道题考察候选人是否理解 LLM 生成的最小闭环,而不是只会说“模型预测下一个词”。
文本先由 Tokenizer 变成 token id,模型为词表中每个候选输出 logit,再经 softmax 得到条件概率。采样策略只在这组概率上选下一个 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,复现实验必须记录完整解码配置。
七、常见误区与追问
- 误区: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 固定累计概率。