幻觉率从14.3%压到7.1%,OpenAI这两层外挂是怎么做到的
上周二晚上十一点多,我在公司盯着监控面板发呆,突然看到客服机器人的对话记录里蹦出来一句——“亲,我们的退款政策是90天无理由退货哦”。后面还跟了个波浪号。
我人直接傻了。
我们从来没有过这个政策。从来没有。那是它自己编的。
第二天一早,客服主管发了份数据给我:过去两周有 23 个用户因为机器人瞎承诺的“90 天退货”来投诉,其中 3 个已经投诉到 12315 了。那一刻我突然想明白一件事:大模型的幻觉问题,从来都不是论文里的百分比数字,是真金白银的客诉,是用户觉得你在骗他,然后永远不再回来。
所以上周 OpenAI 发 GPT-5.5 Instant 的技术报告,说幻觉率降了 50%,我第一反应不是“好厉害”,而是“行,让我看看你到底怎么做到的”。
翻了两天论文和工程博客,又在自己项目里跑了几轮测试,现在可以聊聊了。
50% 是怎么算出来的
这个数字来自两个基准测试的对比:TruthfulQA 和 HaluEval,基线是 GPT-4 Turbo。TruthfulQA 准确率从 78% 跳到 89%,HaluEval 的幻觉触发率从 14.3% 压到 7.1%。
不过说实话,基准测试这东西吧……怎么说呢,它只能说明一部分问题。真正让我觉得有意思的,是他们为了做到这件事在架构上动的那几刀。
等等,这里我要更正一下。刚才说“架构上动刀”,这个表述不太准。严格来说,推理 pipeline 的改动比模型架构本身更大。OpenAI 没有重新训练一个完全不同的模型,而是在 GPT-4 的基础上加了两层“外挂”——这个后面会细说。
先说结论:这次的核心思路不是把模型搞大,而是一套组合拳,我自己给它起了个名字叫“检索锚定 + 不确定性量化”。听着有点绕,拆开看其实逻辑很直。
检索锚定层:先查再编
GPT-5.5 Instant 在推理的时候加了一个轻量级的检索锚定层。什么意思呢?
就是模型在生成每个关键事实陈述之前,会先走一步内部检索。具体实现是在 Transformer 的中间层塞了一个交叉注意力模块——大概在第 18 到 22 层之间,根据 OpenAI 去年 12 月那篇技术博客里的架构图推测的。这个模块会实时查一个压缩过的知识图谱缓存,把模型当前要输出的实体和关系跟缓存里的结构化知识做对比,对不上就修正。
我 2023 年在 Stripe 做支付风控的时候搞过类似的东西。当时我们的规则引擎老是因为数据时效性出问题,把正常交易当欺诈拦掉,误判率大概 7%。后来加了一层“事实核查”中间件,每次规则触发前先查最新的商户画像缓存。误判率直接砍到 4% 出头。
思路一模一样。
不是让模型记住所有东西,是给它一个能快速查证的能力。
关键数据:这个检索锚定层的延迟开销只有 23ms,占整体推理时间的 3% 左右。对于“Instant”这个产品定位来说,相当划算了。知识图谱缓存大概 1.2GB,能完全跑在 GPU 显存里,不需要额外 I/O——这个设计很干净。
不确定性量化:终于会说“我不确定”了
第二个让我眼前一亮的东西是内置的不确定性量化模块。
简单说,模型现在会对自己生成的每个陈述句算一个置信度分数。分数低于阈值的时候,它会自己切换表达方式。从“X 是 Y”变成“根据现有信息,X 可能是 Y,但我建议你核实一下”。
这个机制的实现挺有意思。在最后的 softmax 层之前加了一个贝叶斯 dropout 采样分支,跑 5 次蒙特卡洛采样,用方差来估算不确定性。这个 trick 学术界讨论了好几年了,ICLR 2023 上就有篇论文提过类似思路。但 OpenAI 是第一个把它工程化推到生产环境的。
根据他们的技术报告,这个模块让模型在不确定场景下的自我纠错率提升了 62%。
数字挺漂亮。
但我最欣赏的不是这个数字,是产品思路。
去年我用 GPT-4 做一个法律文档摘要工具,踩过一个巨坑。模型会把某些地方法规的条款编号完全编出来——第 X 条第 Y 款,写得有鼻子有眼——而且语气极其笃定。用户根本不会想到去核实,因为表达方式太权威了。后来是一个律师用户发现不对劲,跑来质问我们,我才意识到问题的严重性。
GPT-5.5 Instant 这个设计,本质上是在用表达方式的软化来对冲事实错误的风险。我觉得这比单纯追准确率聪明得多。
训练数据去污:干掉 8% 的语料
除了推理阶段的改进,训练侧也有个容易被忽略的变化。
OpenAI 在预训练数据里做了一轮大规模的“幻觉源”清洗。具体做法是用一个专门训出来的幻觉检测模型扫描训练语料,把包含事实矛盾、来源不可靠或者逻辑断裂的文本段标记出来,然后降权或者直接删掉。
这轮清理干掉了大约 8% 的训练数据。
8%,听起来不多对吧。但你想想大模型训练数据的规模——GPT-4 的训练数据据说在 13 万亿 token 左右,8% 就是超过 1 万亿 token 被拿掉了。而且主要集中在网络论坛、非权威百科、低质量翻译内容这些地方。
我去年在某个技术分享会上听过一个说法,印象很深:大模型的幻觉问题,至少有一半是训练数据的锅——模型只是忠实地学到了人类在互联网上胡说八道的样子。这次 OpenAI 的数据清理策略,算是用行动印证了这个判断。
实际跑下来的感受
我在这周把自己两个项目切到了 GPT-5.5 Instant,跑了几百条测试。整体感受:
事实密集型任务稳了很多。比如让它总结一篇技术论文的核心贡献,之前 GPT-4 Turbo 大概有 15% 的概率会编造论文里根本不存在的实验数据——注意是我手动核实的比例,不是基准测试数据。GPT-5.5 Instant 把这个概率压到了大概 5% 以内。嗯……这个比较复杂,因为我测的样本量还不够大,只能给个大概感受。
创意写作和头脑风暴类任务,改进不太明显。不过这类任务本来也不太依赖事实准确性,幻觉少了也没啥感知。
中文场景要单独说一下。我测下来幻觉率改善大概在 35%-40% 之间,不如英文的 50% 那么漂亮。据我了解,这跟中文知识图谱的覆盖度有关——英文那边 Wikidata 和 Wikipedia 的结构化程度高得多,中文这边还有不少 gap。不过 35%-40% 已经足够实用了,体感很明显。
对开发者来说意味着什么
如果你现在在用大模型做面向用户的产品,GPT-5.5 Instant 这个方向释放了一个挺明确的信号:接下来的竞争不是比参数、比跑分,而是在保持低延迟和低成本的前提下,把可靠性拉到可接受的水平。
检索锚定和不确定性量化这两套机制,大概率会成为下一代语言模型的标配。
几个可以立刻落地的思路:
第一,模型自己有了检索锚定,不代表你可以不做 RAG。两层验证比单层靠谱得多——这是我们团队用血泪换来的教训。
第二,善用不确定性输出。当模型说“可能”“建议核实”的时候,你的 UI 应该给用户一个显眼的视觉提示,黄色边框、小警告图标,随便什么。重点是让用户知道:这条信息的置信度不高。
第三,中文场景的幻觉率改善会打折扣,这点心里要有数。如果你的产品主要服务中文用户,建议在应用层多花点功夫做事实核查,别太依赖模型自身的能力。
说真的,这一年来各种模型发布会我看了不少,大多数都在吹参数规模、推理速度、跑分成绩。但 GPT-5.5 Instant 这次让我觉得有点不一样——它终于开始认真解决“可信度”这个问题了。
而且解决思路很工程化,不炫技,就是老老实实加验证层、加不确定性估算、清洗训练数据。挺务实的。
最后想问问各位:你们在实际项目里遇到过最离谱的模型幻觉是什么?我至今记得去年那个“90 天无理由退货”,但我觉得圈子里肯定有比这更离谱的故事。评论区蹲一波,那些翻车经历往往比成功案例有意思多了。
#大模型 #GPT5 #幻觉问题 #模型部署
哦对了,标题里写的“50%幻觉率降低”是 OpenAI 官方的口径,我更正一下:严格来说是两个特定测试集上的平均改善幅度。实际场景里会因为 prompt 质量、领域知识密度和语言差异有波动。别把这个数字当绝对的,它是个参考,一个挺不错的参考,但不是全部。
读者评论 2