同一个问题问三遍,AI 为什么会给出三个答案?

TL;DR

大模型每次回答都在从候选词中继续选择,而不是从数据库里取出一段固定文字。温度、Top-p 和随机采样共同决定回答更稳定还是更有变化。本文用抽签与岔路的比喻,解释 AI 的随机性从哪里来,以及什么时候应该追求一致。

大模型每次回答都在从候选词中继续选择,而不是从数据库里取出一段固定文字。温度、Top-p 和随机采样共同决定回答更稳定还是更有变化。本文用抽签与岔路的比喻,解释 AI 的随机性从哪里来,以及什么时候应该追求一致。

同一个问题问三遍,AI 为什么会给出三个答案?

你连续三次问 AI:“给我的咖啡店起一个名字。”第一次得到“晨雾”,第二次是“慢醒”,第三次又变成“豆子电台”。问题没变,模型也没换,为什么答案不像计算器那样固定?

原因在于,大语言模型生成回答时,并不是从数据库取出一段预先写好的文字。它每走一步,都会为许多候选 Token 计算概率,然后决定下一个输出什么。回答是一条边走边选择的路径。

每一个词都是一个岔路口

假设句子从“这家咖啡店可以叫”开始,模型预测下一个词时,候选项可能是“晨光”“转角”“一杯”或其他表达。每个候选都有一个分数,经过归一化后形成概率分布。

如果永远选择概率最高的候选,这种方法常被称为贪心解码。它比较稳定,却可能反复走进最普通的表达。另一种做法是按概率抽样:高概率词更容易被抽中,低概率词仍保留少量机会。一次早期选择不同,后续上下文就会改变,整段文字于是越走越远。

这像在一棵巨大的岔路树上旅行。第一步只偏了一点,十步后可能已经到了另一座城市。

温度不是让模型“更有情绪”

生成设置里的 Temperature(温度)会改变概率分布的形状。低温度让头部候选更突出,模型更倾向于走最熟悉的路线;高温度让其他候选获得更多机会,结果通常更多样,也更容易冒险。

温度并不会增加模型掌握的知识,也不会真正赋予它创造力。它只是调整选择的集中程度。把温度调高,既可能得到意外好点子,也可能得到不合逻辑的词;调低则能减少变化,却不能保证事实正确。

另一个常见参数是 Top-p,也叫核采样。它不是固定保留前几个词,而是从高到低累加候选概率,直到总和达到某个阈值,再只在这个动态集合里抽样。有关温度与 Top-p 如何影响文本多样性的研究,可参考 ACL Anthology 收录的生成多样性论文:

加载链接预览…

为什么“温度设为零”仍未必完全一致

即使产品使用近似确定性的设置,结果也可能受其他因素影响:服务端更新了模型版本,系统提示发生变化,上下文里多了一条消息,工具返回内容不同,或者底层并行计算出现细微数值差异。某些平台还会为了安全、负载或体验动态调整流程。

因此,“同一个提示得到同一个答案”需要整条链路都可重复,仅仅锁住一个参数并不够。开发者如果要做自动测试,还应固定模型版本、输入、工具结果和随机种子,并允许对自然语言结果做语义比较,而不是逐字比较。

哪些任务需要稳定,哪些任务需要变化

提取发票字段、生成数据库查询、按规范分类时,稳定性通常更重要。此时应降低随机性,使用结构化输出,并用规则验证结果。

写标题、构思活动或寻找比喻时,多样性更有价值。可以一次生成多组候选,再由人或评测程序筛选。AI 的随机性在这里不是缺陷,而是扩大搜索范围的方法。

事实问答则不能靠“多问几次,票数最多的就是正确答案”。多个回答可能共享同一个错误来源。需要可靠性时,应要求引用可核查资料、调用搜索或数据库,并把关键结论交给确定性工具验证。

AI 每次说法不同,不代表它在故意反复无常。更像是它面前始终摆着一袋带权重的词语骰子:概率规定哪些结果常见,采样决定这一次实际落在哪一面。理解这一点,就能知道什么时候该收紧骰子,什么时候可以让它多滚几次。

KEEP READING