用模型做事,最烦的不是它答不上来,而是它答得头头是道却不对。这时候你要先分清:是它在编,还是它压根没见过这段资料。两种情况的处理方式完全不同——编的要加约束和校验,没见过的要补上下文或换检索。这篇给一套能立刻上手的判断流程。
用模型干活,最烦的不是它答不上来,是它答得头头是道却不对。这时候别急着骂模型不行,先做一件事:判断它是在编,还是压根没见过你问的这段资料。这两种错的成因、修法、验证方式都不一样。编的要压生成、加校验;没见过的要补上下文、加检索。搞混了,你会花大量时间在一个根本改不动的地方使劲。
这篇给一套能立刻上手的判断流程:四个探针先定性,再按原因选动作,最后落到一条可以反复用的排查顺序。中间会说明什么情况下这套判断不适用——不是所有发散回答都叫幻觉,也不是所有过时答案都值得修。
先分清:两种错,不是一回事
幻觉指的是:模型在你给的信息之外,凭空补出了细节。语气笃定、结构完整、看着像真的,但事实层面没有依据。知识截止指的是:这段内容它确实没在训练里见过,只能靠猜或者含糊带过。两者的共同点是「答错了」,差别在于错的来源完全不同。
- 幻觉
- 信息不存在于给定上下文里,模型自己造了一个看起来合理的东西填进去
- 知识截止
- 信息存在于现实中,但不在模型的训练范围里,它没有可靠依据可调用
- 叠加情况
- 既没学过,又不肯承认没学过,于是用幻觉把知识缺口盖住——这是最常见也最难查的一种
| 现象 | 更像幻觉 | 更像知识截止 |
|---|---|---|
| 问出处 | 给不出可核对的位置,或编一个 | 常说自己不了解,或答得含糊 |
| 换措辞再问 | 两次答案互相矛盾 | 两次都指向同一个旧答案 |
| 贴上原文后 | 仍可能夹带原文没有的细节 | 通常就答对了 |
| 涉及时间 | 与时间新旧无关,随时可能错 | 集中在训练范围之后的时段 |
怎么判断是哪一种:四个可操作的探针
不用什么高级工具,四个动作就能把大多数情况分开。核心思路是:改变输入条件,看输出怎么变。如果换个问法它就跟着变,说明它在猜;如果给它资料它就对了,说明它只是缺资料。
- 问来源让它指出依据在哪、原文哪一句、出自哪个文档。幻觉的典型表现是给一个笼统位置或者干脆再编一个出处。验证方式:拿它给的出处去对,对不上就直接归到幻觉。
- 改问法同一问题换措辞、换语言、拆成两步问,隔一会儿再问一次。答案飘忽、每次细节都不一样的,多半是幻觉;稳定给出同一套旧内容、只是细节偏旧的,多半是截止。
- 给资料把原文片段直接贴进上下文,再问同一个问题。答对了,说明能力够,问题在知识覆盖;给了原文还答错或者往里加东西,问题在生成和约束。
- 对时间凡是涉及近一两年的事件、版本、政策、价格,先默认它可能没学过,不要因为它答得顺就当真。去 /models 看模型资料页的口径,比问模型自己更靠谱。
四个探针不用全跑,通常跑一两个就能定性。顺序建议是:先问来源,再看换问法的稳定性,最后用贴资料来确认。如果时间成本高、只想要个粗判,直接跳到贴资料那一步。
知识截止的自我检查清单
这里最容易踩的坑是:把模型自己说的截止时间当成权威。它对自己训练数据的说法本身就不一定可靠,可能是旧信息、可能是推测、也可能是被问法带出来的。要判断截止范围,得从外部资料反推,而不是从对话里问。
- 把模型自报的截止时间只当线索,不当结论,尤其是涉及高时效内容时
- 要准确口径,去 /models 和各家官方说明页核对,不要凭对话里的自称
- 法规、价格、榜单、版本这类高时效内容,任何模型输出都只能当线索,最终去 /official-api 与 /price-watch 核对当时的数字
- 自建或本地部署的模型,截止时间取决于你拿到的权重版本,跟线上同名服务可能不一致,别混用结论
- 同一家的不同接入方式(官方直连、中转、第三方封装)可能挂到不同模型,问之前先确认你实际在调哪个
什么情况下幻觉概率明显变高
幻觉不是均匀分布的,它有几类高发场景。知道这些场景,你能提前预判哪里该加校验,而不是等出错了才回头查。
| 触发条件 | 为什么容易出幻觉 | 应对方向 |
|---|---|---|
| 要求精确格式:数字、引用、法条编号、API 名 | 模型倾向于「补全」一个格式正确的东西,而不是承认不知道 | 关键字段走程序化校验或人工抽查 |
| 上下文长且信息分散 | 模型会把不相干片段拼接成看似合理的结论 | 精简上下文,把关键信息集中放置 |
| 要求具体归因:哪家公司、哪一天 | 这类信息往往需要精确记忆,缺了就编 | 改成开放式提问,或先给资料再问 |
| 多轮对话中间信息被挤压 | 早期关键约束被后来的内容覆盖 | 把关键约束在每轮重申,或写成固定系统提示 |
反过来说,任务本身开放、没有唯一答案的时候,比如起名、润色、头脑风暴,所谓的「幻觉」其实是正常发挥,不用去纠正。判断标准很简单:这句话如果被当成事实引用,会不会造成实际损失。会,才需要拦。
按原因选处理动作
定性之后,动作就清楚了。核心原则是:知识问题用补资料解决,生成问题用约束和校验解决。别指望用一个动作同时搞定两种错。
| 判定结果 | 优先动作 | 次选动作 |
|---|---|---|
| 知识截止 | 补上下文或用检索把原文喂进去 | 换一个知识覆盖更新的模型 |
| 生成幻觉 | 加「不确定就说不确定」约束、要求先依据后结论 | 关键字段加人工或程序校验 |
| 两者叠加 | 先用检索把事实框定,再让模型只做归纳和表达 | 拆成两个模型或两个环节分别负责 |
| 成本敏感 | 先把检索和校验补上 | 再考虑换更贵的模型 |
- 判定为截止:优先做检索增强,把原文片段作为上下文的一部分喂进去,这比换模型见效快
- 判定为幻觉:在提示里明确要求「没有依据就说没有依据」,并要求先给依据再给结论
- 两者都沾:让模型只负责归纳和表达,事实查找交给检索或人工,别让它既找又写
- 批量任务:对关键字段设规则校验,比如数字范围、格式、必填项,先卡住明显错的
有一点要提醒:加约束不是万能的。提示词里的「不要编」对明显幻觉有抑制作用,但对模型自认为有把握的错误往往无效。真正稳的做法还是把事实来源外部化,让模型少做记忆型任务。
一条可复用的排查顺序
下面这条顺序可以直接抄走用。重点是第一步固定问题,很多人跳过这步,导致后面每次复现的结果都不一样,根本没法比。
- 固定问题把提示词、参数、上下文长度、模型标识记下来,保证同一问题可以稳定复现。没这步,后面所有对比都是白做。
- 做给资料对照同一问题,一次不带资料、一次带原文资料。带资料答对→知识问题;带资料还答错→生成或理解问题。
- 做改写提问换措辞、换语言、拆两步各问一遍。答案发散→幻觉倾向;答案一致但明显过时→截止倾向。
- 抽样校验对关键字段做程序化核对或人工抽查,用 /tools/quality-check 这类工具建立基线,方便后面比较。
- 留回退把通过校验的答案和对应提示词存一份,换模型或改提示时拿来对比,避免改完更差还看不出来。
这条顺序也适用于评测场景。如果你要给不同模型打分,先确保每个模型面对的是同一个固定问题和同一份资料,否则分数高低反映的可能是提示词差异,而不是模型差异。挑选渠道时可以参考 /sites 上的可信度信息,别只看单一来源的结论。
这些场景不用纠结是不是幻觉
不是所有「和事实有出入」的输出都值得修。判断的锚点只有一个:这句话被当成事实使用后,会不会带来实际损失。不会的话,过度纠错反而增加成本、拖慢流程。
- 创意写作、命名、营销文案:本来就要求发散,只要不冒充事实就行
- 摘要里的连接词和过渡句:属于表达层加工,不算事实性错误
- 明确标注「以下为推测」的回答:只要标注保留、下游知道这是推测,风险可控
- 内部讨论草稿:还没定稿、不对外引用,先跑通流程比逐句较真更重要
反过来说,只要是会被直接引用、进入对外文档、或者驱动自动化决策的输出,就得按前面的流程走一遍。特别是数字、日期、引用来源这类字段,宁可慢一点,也别让它带着幻觉流向下一环。想系统了解各家模型在高时效内容上的表现,可以到 /rankings 对照当时的评测数据,而不是凭单次体验下判断。
下一步把这条排查顺序用在你手上最常出错的那个任务上,先固定问题、再跑给资料对照,基本就能定性。想核对模型覆盖和高时效内容口径,去模型库和价格页看当时的数字;想评估渠道稳定性,从站点导航页入手比对。→常见问题
模型说自己的知识截止到某个日期,这可信吗?
只能当参考。模型对自身训练截止时间的表述本身就可能不准,不同版本、不同部署方式的权重也可能不一样。要准确口径,去站内 /models 对照模型说明,高时效内容再用 /official-api 等页面核对实际数据。
同样是答错,为什么有的模型表现得特别自信?
自信程度和正确率没有必然关系。模型是在生成最像答案的文本,不是在评估自己知不知道。带精确格式要求的问题(编号、日期、API 名)最容易出现这种「合理但错误」的输出,看到这类字段一律加校验。
加了检索就一定不会幻觉吗?
不一定。检索解决的是「没资料」,但模型仍可能把检索回来的片段张冠李戴,或者在被问到的内容不在检索结果里时继续编。检索之外还要做引用可核对,让它标出依据来自哪一段。
怎么快速区分是该换模型还是该改提示词?
先做给资料测试:把正确原文贴进上下文再问一次。答对了,说明是知识缺口,考虑补检索或换知识更新的模型;答错了,说明是生成或理解环节的问题,先改提示词、加约束和校验,换模型未必有用。
本地部署的模型在这个问题上有什么不一样?
本地模型的「知识截止」取决于你手上的权重版本,和线上同名服务可能对不上;而且没有联网兜底,缺口更明显。好处是行为稳定可复现,方便你做固定的对照测试和回归验证。