做落地应用时,最怕的不是模型答得慢,而是它一本正经地编:编条款、编接口名、编数字,还说得特别像真的。这篇不聊概念定义,直接按「成因—高危场景—缓解动作」走一遍,告诉你什么时候该加校验、什么时候靠提示词就够,以及哪些做法其实没用。
做落地应用时,最怕的不是模型答得慢,而是它一本正经地编:编条款、编接口名、编数字,还说得特别像真的。幻觉不是模型「坏了」,而是它按概率补全的下一个词恰好看起来很合理。你要做的不是消灭它,而是分清哪些回答可以放过去、哪些必须拦下来。
这篇按「成因—高危场景—缓解动作—上线闭环」走一遍,告诉团队什么时候靠提示词就够,什么时候必须加程序校验,以及哪些看起来管用其实没用的做法。下面所有关于模型与价格的对比,都可以到站内页面看当时的数字,别照抄别人截图。
幻觉是怎么冒出来的:先分清四类成因
同一个「编」,背后原因可能完全不同。搞清楚你的场景落在哪一类,才能选对缓解手段。用错方向的话,参数调到天亮也没用。
- 知识缺口型
- 训练语料里本来就没有、或者已经过时,模型只能靠模式补全一段看似合理的答案;这类靠提示词基本治不好,得补资料。
- 任务错配型
- 让它做精确计算、逐字引用、长链路推理,它擅长的是「像」而不是「对」;把计算交给代码,把引用交给原文检索。
- 提示诱导型
- 问题里带预设、要求必须给答案、上下文塞了错误前提,模型会顺着往下编;先检查你自己的提问方式。
- 解码与采样型
- 温度、top-p 偏高,或强制输出复杂结构,都会放大自由发挥的概率;到 /ai-dict/category/tips 对照参数术语,确认你调的是哪个旋钮。
判断方法很直接:把你失败的回答翻出来,看是「资料里根本没有」「任务本身不适合模型」还是「你的提示词在逼它必须答」。绝大多数团队的问题集中在后两类,因为这两类不用换模型就能改。
哪些场景先别信:按后果分三档
幻觉的风险不取决于发生频率,而取决于错了之后能不能被人拦住。同一条错误回答,放进聊天窗口和自动写进订单系统,后果差着量级。先给场景分档,再决定投入多少校验成本。
| 档位 | 典型场景 | 该配什么 |
|---|---|---|
| 高危 | 对外法律、医疗、金融、报价与政策解读,或任何自动进入下游系统的输出 | 程序级校验 + 人工抽检 + 兜底话术,缺一不可 |
| 中危 | 内部知识问答、客服话术、代码补全 | 后置校验规则 + 定期抽检,错了要能被下游发现 |
| 低危 | 头脑风暴、文案改写、初稿生成 | 人工过一遍即可,别为它上整套流水线 |
分档标准就一条:看这条输出有没有「自动进入下游系统或被外部看到」的通道。有,就归高危。注意这个判断会随业务变化失效——今天只是内部问答,明天接进客服机器人,档位立刻上升,得重新评一次。
- 对外报价、合同条款、合规解释:默认高危,不能让模型直接出终稿。
- 自动填表、自动调接口、自动发消息:只要没人复核就是高危。
- 内部检索问答:中危,但要能在答案里标出出处,方便人工核。
- 草稿类创作:低危,别过度工程化。
- 边界情况:用户能直接截图外传的场景,一律按高危处理。
缓解手段排序:从便宜到贵挨个上
很多团队一上来就想微调,其实提示词和上下文这两层最便宜、见效也最快。按下面的顺序做,前面的挡住大部分问题,最后才轮到烧钱的方案。
- 收紧提示限定「不知道就说不知道」,要求给出依据出处,把开放问答改成带约束的选项。验证方式:把历史上编造的问题喂回去,看是否会主动说不知道。
- 补上下文用检索把相关资料塞进窗口,比指望模型记住更靠谱。选嵌入模型可以到 /embeddings 对照,注意有些服务商的模型列表和价格会调整,以站内当时显示为准。
- 加结构约束要求输出 JSON 或固定字段,把自由文本变成可程序校验的字段,缺失就报错而不是让它猜。验证方式:故意去掉一个必填字段,看管线会不会拒绝。
- 才考虑微调有稳定领域语料和明确格式要求时再考虑,可参考 /stacks/fine-tuning 的服务商与 /training 的流程口径;没有评估集就别动手。
如果前三步做完还是经常编,先别急着换更贵的模型,去 /rankings 看看同类任务的上手反馈,再对比 /price-watch 的价格变动,确认是能力问题还是你的用法问题。
上线后的校验闭环:把幻觉变成可发现的错误
上线前做的那点测试,永远盖不住真实流量的花样。关键是让错误能被发现、能被定位、能被回退,而不是指望不出错。
| 校验动作 | 怎么做 | 不适用的情况 |
|---|---|---|
| 关键字段回查 | 数字、日期、编号、专有名词从原始来源二次核对,不靠模型自证 | 纯主观创作类输出,没有客观来源可对 |
| 抽样人工复核 | 按业务量定抽样比例,记录错误类型,别只统计一个糊成一片的总体满意度 | 流量极低、每条都人工看的阶段,抽样意义不大 |
| 回归集 | 把踩过的坑固化成固定问题集,换模型或改提示词都跑一遍 | 问题集长期不更新,反而会掩盖新类型错误 |
| 灰度与回退 | 新模型先小流量跑,出错能一键切回旧版本,迁移检查项参考 /models/deploy | 没有版本管理、只能整体替换的简单部署 |
抽样比例和回归集规模没有通用答案,取决于你的业务量和对错误的容忍度。可以去 /tools/speed-test 这类工具页确认自己当前的调用与响应情况,再定灰度节奏。
- 把「模型说不知道」当成正常结果,不要惩罚它,否则它会开始编。
- 错误日志里记清是资料缺失、任务错配还是提示诱导,方便归因。
- 每次换模型或改提示词,回归集必须重跑,别只看新功能表现。
- 给高危输出准备兜底话术,出错时至少不会让用户拿到假结论。
幻觉没法清零,但可以做到「编了能被发现、发现了能回退」——这才是上线标准。下一步把你现在的提示词和校验规则过一遍,再到站内对照各家的服务能力与当时的报价,决定要不要升级方案。→
常见问题
把温度调到最低,幻觉就没了吗?
会少但不会没。低温度只压缩随机发挥的空间,知识缺口和错误前提照样会产出错答案。它适合做减噪的第一步,但不能替代检索和字段校验。
加了 RAG 是不是就不用担心幻觉了?
不是。检索错了、召回不全、或者模型不按资料答,都会继续编。RAG 降低的是知识缺口型幻觉,对指令误解和过度自信基本无效,所以引用来源和字段核对仍要做。
怎么判断一个模型在幻觉上更靠谱?
别只看宣传,去 /benchmarks 与 /rankings 看评测口径是否包含事实性与拒答,再到 /crowd-radar 看交叉验证结果;同时用自己业务的回归集实测,站内数字只作参考。