W37-LLM 的幻觉和不确定性
上周有两篇重要的文章,分别来自 OpenAI 和 Thinking Machines 的研究成果。前者解释了大模型为什么有幻觉,后者验证了大模型不确定性的根因。有很多反共识的观点,绝对的增量知识。
第一篇是来自 OpenAI 的Why language models hallucinate。TLDR,可以直接看最后的Conclusions部分。
反常识的结论:提升模型准确率不能完全消除幻觉,因为现实世界很多问题是没有确定答案的。但幻觉是完全可以避免的,允许大模型弃答,回答“不知道”。现在的大模型幻觉高就是因为评估和度量的选择性错误,训练不能只看准确率,要同时看错误率、弃答率与置信校准度。
结合看到的一篇产品架构设计的文章,A PM's Guide to AI Agent Architecture: Why Capability Doesn't Equal Adoption,从用户信任角度给出了架构层面的幻觉控制。一个反直觉的结论是,在不确定处示弱比自信犯错更能提升采用。当模型不确定时,承认不确定弃权与透明解释,比自信地胡猜更能建立长期信任。作者强调“信任层”:置信度提示、推理透明、确认/许可模式、优雅边界与人工升级。
我自己有一个可能不太准确的理解,当前大模型的倾向是“低精确率,高召回率”,要避免幻觉、增加用户信任,应该让其向“高精确率,低召回率”的奖励模型训练。换句话讲,先把“说对”的比例做稳,再扩张“敢说”的范围。
第二篇是来自Thinking Machines 的Defeating Nondeterminism in LLM Inference。这是这家公司年初成立后公开的第一项工作成果,据说Q4会有重大技术成果的发布,也是硅谷最后一家有广泛期待的模型公司。
对 LLM 推理的不确定性,主流观点认为来自 GPU 的多内核的并发(concurrent) 和原子加法(atomic adds),这篇文章说在典型的 LLM 前向传播中,根本不存在任何原子加法。不确定性的根本原因是内核对批次(batch)的大小/切分方式不敏感,缺乏批次不变性(kernel batch-invariant)。一旦把关键算子(RMSNorm、MatMul、Attention)改造成批次不变,就能让同一输入在任意并发负载下得到完全一致的输出。
Thinking Machines 用 Qwen3 做了实验验证。prompt 为 “Tell me about Richard Feynman”,temperature 设置为 0,每次生成 1000 token,共采样 1000 次。最终 1000 次生成内容完成一致,有一些性能劣化。
对于大模型应用的实际意义,AI 给了我以下答案。
对于微调和多轮对话策略改进来讲,这是把“策略改进是否有效”从玄学变成工程的关键一步;
零温(temperature=0)下的答案一致,能极大降低用户“同问不同答”的不信任感,特别是在问答、搜索重写、生成推荐语、客服自动回复、风控解释等需要“确定表述”的链路;
能够“给出同一输入即得到同一输出”的承诺,这在需要“稳定—可解释—可审计”的金融、医疗、政企等强合规场景,是可追溯与责任界定的基础。
最后更新于