P5-15.2 生成模型的候选分布¶
Section ID:
P5-15.2Version:v2026.07.23
副标题: 为什么生成模型保留候选分布,而不是一个正确答案?
在 P5-15.1 中,我们已经看到:从深度学习视角看生成式 AI 时,首先改变的是输出体验。分类模型常常返回标签或分数,而生成式 AI 会生成句子、图像、代码等输出物。
那么,生成模型(generative model)到底怎样准备这些输出?
本节的核心是:生成模型不是背下一个正确答案再取出来,而是同时保留可能输出候选的相对可信度。这个感觉必须先建立,下一节 P5-15.3 才能把 sampling 读成“从候选分布中取出实际输出的步骤”,而不是随便乱选。
候选分布是当前输入之后的可能性¶
分类模型(classification model)通常问:这个输入属于什么类别? 生成模型则更接近于问:这个输入后面,哪些输出可以自然地继续?
| 视角 | 分类模型 | 生成模型 |
|---|---|---|
| 核心问题 | 它属于什么类别? | 什么输出是自然的? |
| 代表性输出 | 标签、分数 | 下一句、新图像、代码草稿 |
| 首先读取的标准 | 最高标签 | 候选之间的相对可信度 |
这里的候选分布(candidate distribution)是指:当前输入后面可能继续的候选,各自有多自然,被并排保留下来。例如 批次检查结果 后面有三个句子都可能成立时,生成模型不是只把其中一个存成正确答案,而是准备一种可以比较这些候选相对自然程度的形式。
数据分布和候选分布怎样连接¶
分布(distribution) 这个词一开始可能会很难。这里先把它读成:经常一起出现的模式和自然组合所形成的统计感觉。
文本中,模型会看到哪些词和句子结构常常继续出现。图像中,模型会看到哪些颜色、轮廓、布局常常一起出现。运维回应中,模型会看到某个警报后面常常接什么动作短语。
这不是说模型保存了所有正确句子。更准确地说,它从训练数据中反复出现的模式里学到了一种能力:给定当前输入时,计算哪些候选可以自然地继续。
这里要分清两个层次。数据分布(data distribution)是训练数据整体里什么模式和组合经常出现的总图景。候选分布则是在这个总图景基础上,针对当前这个输入之后,什么内容有多自然展开出来的当前候选列表。
| 数据类型 | 模型经常看到的模式 | 结果中先检查什么 |
|---|---|---|
| 运维句子 | 动作短语和警告句式怎样反复出现 | 下一句和提示语气是否符合当前警报 |
| 设备图像 | 颜色、轮廓、布局怎样一起出现 | 构图和形态是否自然 |
| 现场支援回答 | 不同问题类型常用什么回答长度和结构 | 顺序和警告位置是否符合情境 |
most_likely 和 probabilities 不一样¶
生成问题中,只找一个最可能候选并不能结束解释。同一个前缀后面,多个句子都可能自然。
例如 批次检查结果 后面可以留下这些候选。
需要重新确认负责人确认后再重启10 分钟后重新测量
最高的候选可以单独读成 most_likely。但模型留下的不是只有它。必须一起读整个 probabilities,才能看到模型学到了怎样的输出空间。
如果只看 most_likely,生成模型很容易看起来像分类模型:一个输入,对应一个最高答案。一起看 probabilities 时,最高候选后面的第二、第三候选也会留下来。它们此刻未必会被第一个选中,但在下一句或另一个语境中仍可能成为自然的延续。
flowchart TD
A["训练数据中的<br/>重复模式"]
B["当前输入<br/>批次检查结果"]
C["候选分布<br/>重新确认 0.46<br/>负责人确认 0.34<br/>重新测量 0.20"]
D["只看 most_likely<br/>只留下重新确认"]
E["一起看 probabilities<br/>候选空间仍然保留"]
A --> B
B --> C
C --> D
C --> E
这个图里重要的是:看到候选分布之后,解读会在哪里分开。只看 most_likely 时,会留下一个最高候选;一起看 probabilities 时,当前输入背后的候选空间仍然可见。下一节的 sampling 会从这个候选空间继续走向实际输出。
案例与示例¶
假设运维记录里有两种警报和对应的后续动作短语。本节重要的不是计算步骤本身,而是读懂分布的感觉,所以先把记录数和分布解读并排放在一起。
| 警报语境 | 后续动作候选 | 记录数 | 在全部记录中的比重 | 从生成模型视角应读出的点 |
|---|---|---|---|---|
| 温度警报 | 先检查冷却水流量 | 14 | 0.50 | 它是最常出现的候选,但不是唯一答案 |
| 温度警报 | 确认热交换器风扇状态 | 9 | 0.32 | 它作为同一语境中的辅助候选保留下来 |
| 温度警报 | 重新查看传感器校准 | 5 | 0.18 | 即使比重较低,也不会从候选空间中完全消失 |
| 封边警报 | 重新调整封边压力 | 13 | 0.52 | 语境改变时,最高候选本身也会改变 |
| 封边警报 | 重新校准薄膜张力 | 8 | 0.32 | 不同的检查轴会留在候选分布中 |
| 封边警报 | 确认刀刃磨损状态 | 4 | 0.16 | 较低候选仍可能接到后续说明或追加检查 |
首先要看的不只是最大数字。温度警报中,冷却水流量、风扇状态、传感器校准组成一个候选空间;封边警报中,封边压力、薄膜张力、刀刃磨损组成另一个候选空间。
| 示例语境 | 只抓住 most_likely 时留下的判断 | 同时读 probabilities 后改变的判断 |
|---|---|---|
temperature_alert | 容易把 检查冷却水流量 放在第一句,然后就结束 | 风扇状态和传感器复核会一起保留成后续句子候选 |
seal_edge_alert | 容易只把 重新调整封边压力 固定成默认动作 | 薄膜张力和刀刃磨损会留在同一候选空间里,以便连接其他设备原因 |
生成模型不会把接下来是什么背成一句固定句子。它会把在这个语境里,什么内容出现过多少次整理成一个分布。这个差异让我们把生成读成学习候选分布,而不是选择一个正确标签。
练习与例子¶
看下面的候选比重,直接区分一下。先标出 most_likely,再说明另外两个候选为什么并没有完全消失。
| 当前输入 | 候选 | 比重 |
|---|---|---|
批次检查结果 | 需要重新确认 | 0.46 |
批次检查结果 | 负责人确认后再重启 | 0.34 |
批次检查结果 | 10 分钟后重新测量 | 0.20 |
这张表里,most_likely 是 需要重新确认。但如果看整个候选分布,负责人确认后再重启 仍然有不低的比重,10 分钟后重新测量 也没有消失。
因此,如果只看最高候选并说这个输入的答案就是重新确认,就会把生成模型读得像分类模型。用候选分布来读,则可以说:重新确认是最自然的延续,但负责人确认和重新测量也作为同一语境里的后续短语候选保留下来。
目标不是说候选越多越好。目标是把最高候选和它背后仍然存在的候选空间分开。
检查清单¶
- 能解释生成模型处理的是不同于分类模型的问题吗?
- 能把
学习数据分布解释成学习经常一起出现的模式和自然组合吗? - 能解释为什么
most_likely和probabilities不一样吗? - 能把生成模型说成学习自然输出候选分布的模型,而不只是“会产出东西的模型”吗?
- 阅读下一节 sampling 时,是否已经准备好区分
学到了什么和实际会取出什么?
出处与参考资料¶
- Ian Goodfellow, Yoshua Bengio, Aaron Courville,
Deep Learning, MIT Press, 2016,Chapter 20Deep Generative Models,确认日期:2026-07-21。https://www.deeplearningbook.org/