🧠 图解记忆:模型给概率,解码做选择,工程负责校验;点击图片可查看原图。
核心:LLM 本质是一个"概率分布"——对每个 Token 计算概率,再按策略采样,所以输出天然带随机性。
为什么 LLM 是概率模型?(面试必答)
- 训练目标就是概率:预训练学的是
P(下一个Token | 上文),模型输出的是词表上的概率分布(经 Softmax) - 生成靠采样:解码时从概率分布中选 Token(贪心选最大,或按分布随机采)
- 知识是"统计规律":模型学到的不是确定性规则,而是"什么词在什么语境下更可能"——所以同一问题可能给出不同但都合理的答案
为什么同样的输入输出会不一样?(高频追问)
| 原因 | 说明 | 可控性 |
|---|---|---|
| 采样随机性 | Top-P/Top-K/温度>0 时按概率随机选 | ✅ 可调(T=0 降低) |
| 浮点非确定性 | GPU 并行累加顺序差异,极端情况影响 argmax | ⚠️ 固定 seed 缓解 |
| 多轮上下文 | 同样问题在不同对话历史下,模型"想法"不同 | ❌ 天然存在 |
| 模型服务负载 | 部分框架在不同批处理下有小差异 | ⚠️ 少见 |
概率模型的工程影响(加分点)
- 需要确定性输出的场景:T=0 + 固定 seed + 结构化输出校验
- 需要稳定的场景:加输出格式校验 + 重试策略(解析失败重生成)
- 利用随机性:多次采样取最佳(Self-Consistency),创意场景故意调高温度
面试话术
"LLM 是概率生成模型,输出层是一个词表上的概率分布,解码时通过采样策略选 Token。所以同样输入可能输出不同——这是采样随机性导致的,不是 bug。工程上我会分场景处理:需要确定性时用 T=0 + 固定 seed + 输出校验;需要多样性时提高温度;需要更可靠时用多次采样投票。"
