【小目标】
这一节点回答:模型是怎么"说出话来"的?为什么同样的问题每次答案可能不一样? 也就是生成的底层机制——自回归——以及控制它"稳或活"的第一个旋钮:采样。
这里最关键的一句判断:机器不是"查表回答",而是逐 token 预测——每次按概率挑下一个词。 这让它天然不确定,也可能胡说(幻觉)。理解了这一点,你就不会再问"为什么它这次和上次说的不一样",而是会主动去调采样参数、加格式约束。
对做产品的人来说,采样控制是第一个能上手的旋钮——不需要改模型、不需要写代码,只要调几个参数,就能让回答从"天马行空"变成"稳稳当当"。这是所有 LLM 产品的基础功课。
【方法论】
一句话结论:生成的本质 = 自回归概率输出;你能控制的 = 从概率分布里怎么选词(采样)。 调采样参数就是在"稳"和"活"之间找平衡点。
先把生成的底层逻辑放进来:
能生成(自回归本质)
↓ 模型给每个词算一个概率(概率分布)
↓ 采样策略决定"从哪些词里选、怎么选"
↓ 温度调"整体锐利度"(概率分布尖不尖)
↓ Top-p / Top-k 调"砍掉哪些长尾候选"
可预期的输出
三个核心采样参数,各管一个维度:
① 温度(Temperature)—— 调"整体锐利度"
- 温度越低,概率分布越"尖"——模型只敢选概率最高的那几个词,回答越稳、越可预测、越接近"标准答案"
- 温度越高,概率分布越"平"——模型愿意尝试更多冷门词,回答越多样、越发散、越有创意
- 经验值:
- 结构化任务(抽取、路由、JSON 输出):0.1–0.3(低温求稳)
- 客服/问答:0.5–0.7(适中,既不太死板也不太飘)
- 创意写作/闲聊/头脑风暴:0.8–1.0+(高温求活)
- 关键提醒:太低温度会重读/偏保守(反复说同一句话),太高会胡说(幻觉增加)。按任务风险调。
② Top-p(Nucleus Sampling / 核采样)—— 调"砍掉哪些长尾"
- 从概率最高的词开始往下累加,直到累计概率达到 p(如 0.9),只从这部分候选里采样
- 相当于"只从靠谱的候选里挑",把概率极低的长尾词砍掉
- 好处:既保留多样性(从多个候选里选),又避免胡说(砍掉太偏门的词)
- 常用值:0.8–0.95
③ Top-k —— 调"从前几个里选"
- 固定取概率最高的前 k 个候选再采样
- 比 Top-p 更简单粗暴,但在某些场景(如短文本生成)也够用
- 常用值:10–50
参数搭配指南:
| 场景 | 温度 | Top-p | 说明 |
|---|---|---|---|
| 抽取 / 路由 / JSON | 0.1–0.3 | 0.9 | 求稳为主,格式第一 |
| 知识问答 / 客服 | 0.5–0.7 | 0.9 | 稳中带活 |
| 创意写作 / 头脑风暴 | 0.8–1.0 | 0.95 | 放飞一点 |
| 完全确定性输出 | 0 + top_k=1 | — | 贪心解码,每次只取概率最高的词(最稳但最死板) |
【知识点】
- 自回归生成:模型逐 token 预测、一个词一个词往外蹦。因为是概率选择,所以同样输入可能不同输出——这就是"AI 不稳定"的根源。
- 温度调"锐利度":越低越稳、越高越活。结构化任务低温求稳,创意任务高温求活。
- Top-p 调"候选范围":砍掉长尾候选,既保留多样性又避免胡说,是最常用的采样控制手段。
- 温度和 Top-p 常搭配用:温度调整体形状,Top-p 砍掉尾巴,二者配合找到"稳又不僵"的平衡点。
- 温度=0 就是贪心解码:每次只取概率最高的词,输出最确定但也最死板,且可能有重复。
- 生成的不确定性是天然的:不要指望"让模型每次说一模一样的话"——那不是它的工作方式。要确定性,用结构化输出 + 低温 + 种子,而不是追求"完全一致"。(注:即使温度=0 的贪心解码,由于浮点计算精度、采样实现等因素,也不一定能做到逐字完全一致,不能用来做"确定性保障"。)
【名词卡】
| 名词 | 一句话解释 |
|---|---|
| Autoregressive Generation / 自回归生成 | 模型逐 token 预测、把下一个词接上去生成文本的机制,是 GPT 系范式的根基 |
| Sampling / 采样 | 从概率分布里挑词的方式,通过温度/top-p/top-k 等旋钮决定"稳或活" |
| Temperature / 温度 | 控制生成随机性的参数:越低越稳可预测,越高越多样发散 |
| Top-p / Nucleus Sampling / 核采样 | 按累计概率截断候选词集合再采样的策略,砍掉长尾保留多样性 |
| Top-k | 固定取概率最高前 k 个候选再采样的限制,"从前几个里选" |
| Decoding / 解码 | 把模型的概率输出一步步转成最终文本的生成过程,约束解码/采样参数都作用于这一阶段 |
| Greedy Decoding / 贪心解码 | 每次只取概率最高的词(温度=0 + top_k=1),最稳但最死板 |
| Hallucination / 幻觉 | 模型生成与事实不符的内容;高温 + 无约束时更容易出现 |
易混对比:
- 温度 vs Top-p:温度调"整体锐利度"(概率分布的形状),Top-p 调"砍掉哪些长尾候选",常搭配用
- 确定性 vs 稳定性:完全确定只有贪心解码能做到(且不一定完全一致);一般产品追求"稳定在可接受范围内"而不是"逐字相同"
【练一练】
目标:亲手感受温度和 Top-p 对输出的影响——用同一个问题、不同参数,看输出差异。
实验:找一个可用的大模型(任何 ChatGPT / 文心 / 通义 / 本地模型都行),用同一个提示词,分别用以下三组参数各生成一次回答:
提示词(就用这个):
"用三句话介绍一下什么是大语言模型。"
三组参数:
- 低温组:temperature = 0.1,top_p = 0.9
- 中温组:temperature = 0.7,top_p = 0.9
- 高温组:temperature = 1.2(或模型支持的最大值),top_p = 0.95
观察记录:
- 哪一组的回答最"像标准答案"、最稳重?
- 哪一组的回答最"放飞"、用词和句式变化最大?
- 高温组有没有出现事实错误或说车轱辘话的情况?
- 每组各生成 3 次,看输出的差异幅度——哪组最一致、哪组每次都不一样?
思考题:如果你在做一个"法律问答"的产品(答错后果严重),你会选哪组参数?为什么?如果你在做一个"写营销文案"的产品呢?