【核心理解-3】生成能力与采样控制:话要怎么说出来

· 分类:核心理解

这一节点回答:模型是怎么"说出话来"的

【小目标】

这一节点回答:模型是怎么"说出话来"的?为什么同样的问题每次答案可能不一样? 也就是生成的底层机制——自回归——以及控制它"稳或活"的第一个旋钮:采样。

这里最关键的一句判断:机器不是"查表回答",而是逐 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 / 文心 / 通义 / 本地模型都行),用同一个提示词,分别用以下三组参数各生成一次回答:

提示词(就用这个):

"用三句话介绍一下什么是大语言模型。"

三组参数:

  1. 低温组:temperature = 0.1,top_p = 0.9
  2. 中温组:temperature = 0.7,top_p = 0.9
  3. 高温组:temperature = 1.2(或模型支持的最大值),top_p = 0.95

观察记录:

  • 哪一组的回答最"像标准答案"、最稳重?
  • 哪一组的回答最"放飞"、用词和句式变化最大?
  • 高温组有没有出现事实错误或说车轱辘话的情况?
  • 每组各生成 3 次,看输出的差异幅度——哪组最一致、哪组每次都不一样?

思考题:如果你在做一个"法律问答"的产品(答错后果严重),你会选哪组参数?为什么?如果你在做一个"写营销文案"的产品呢?

相关文章