用大模型做文档问答、写报告、查资料的时候,最怕它一本正经地给出一个不存在的东西——编个法规条款、造个函数名、把两个公司的事混在一起说。很多人只知道「它会胡说」,但不知道胡说其实分好几种,每种的可信度、复现方式和兜底手段都不一样。这篇把常见类型拆开讲,给一套能对着用的识别顺序和核对清单。
用大模型做文档问答、写报告、查资料的时候,最怕它一本正经地给出一个不存在的东西:编个法规条款、造个函数名、把两家公司的事混在一起说。很多人只知道「它会胡说」,但不知道胡说其实分好几种,每种的可信度、复现方式和兜底手段都不一样。有人一遇到胡说就换模型,结果换了还是错,因为错的类型根本没对上。
这篇把常见类型拆开讲,重点不是定义,而是给你一套能对着用的识别顺序和核对清单,帮你判断哪些能靠流程兜住、哪些必须换数据源或换工具。全文没有具体数字和版本,需要看当时的实际表现就到站内对应页面核对。
先分清:哪些算幻觉,哪些只是答得不好
幻觉的核心是「说得像真的,但和事实或给定材料对不上」。跑题、啰嗦、语气不对、格式不漂亮,这些是质量问题,不是幻觉。分不清这两类,你会把大量精力花在调提示词语气上,而真正编造的地方一直没被查出来。
| 现象 | 算不算幻觉 | 怎么处理 |
|---|---|---|
| 编了一个不存在的公司名 | 算 | 核对来源,改流程 |
| 回答太啰嗦、重点不突出 | 不算 | 调提示词结构 |
| 把材料里的限定条件删了 | 算 | 要求粘原文对照 |
| 没答上,说不知道 | 不算 | 补上下文或换资料 |
| 把两个真实事实硬连成因果 | 算 | 最难发现,需逐条验 |
还要和「知识截止」「上下文长度不够」区分开:那两类是「它没看到」,不是「它编出来」。没看到可以通过补资料解决,编出来只能靠核对和约束解决。想看清这几组概念的区别,可以到 /guides 翻相关拆解。
事实类:编实体、编数字、编出处
这类最直观,也最容易被当成「它偶尔出错」。实际上它有明显的规律:编出来的东西通常格式正确、风格贴合,只有内容是空的。凡是回答里出现可查验的专有名词、编号、数字,一律单独拎出来核对,不要连着上下文一起看,否则很容易被流畅的表达带过去。
- 编实体
- 不存在的公司、产品、人名、地名、论文标题,名字往往长得非常像真的
- 编数字与出处
- 统计口径、法条编号、文献引用凑得格式正确,内容却查不到
- 编因果
- 把两个确实存在的东西硬连成因果关系,每段单看都合理,最难被发现
- 把回答里所有专有名词单独列一份,逐个去原始资料或站内模型库核对
- 编号类(法条、标准号、接口号)不靠记忆判断,必须找到原文
- 数字类问清口径:是哪个时间段、哪个范围、谁统计的
- 因果类追问「依据是哪一句」,追不到就当作没说过
- 核对结果随手记下来,反复出现的同类错误说明是流程缺口,不是运气问题
需要对照各家的实际表现和资料覆盖范围,可以到 /rankings 看当时的情况,不要凭印象认定某一家一定更准。
忠实类:材料在手边,它却没说材料里的话
这类常出现在知识库问答和长文档总结里。材料明明给了,它却加进去原文没有的结论,或者把限定条件删掉导致意思变了。还有一种更隐蔽:它引用了一段话,你翻回原文发现根本找不到,或者找到的那段说的不是这个意思。
多轮对话也容易出这类问题,它会把自己前面说的、或者你没提过的需求记串,然后顺着这个错误前提往下答。判断的关键不是看它答得顺不顺,而是看它能不能把依据原文原样粘出来。
- 要求粘依据让它把支撑结论的那一段原文原样贴出来,不要它概括
- 回原文比对把粘出来的段落和你手上的材料对照,看限定条件、范围、时间有没有被删改
- 追问边界问「材料里没提什么」,能答出来说明它确实读进去了,答不出就要警惕
- 多轮里查前提每隔几轮确认一次当前前提,看它有没有把前面的内容记串
这类问题靠换模型不一定解决,很多时候是检索环节没把正确的段落捞出来。想排查检索这一层,可以到 /tools 找合适的检查工具配合人工抽查。
格式与工具类:代码、命令、参数、接口最容易翻车
写代码、写配置、写命令的时候,幻觉的表现特别集中:编不存在的函数、库、参数名,或者把两个库的写法缝在一起,看起来非常像那个框架的风格,但跑起来直接报错。命令行和正则这类东西更麻烦,编出来的错法常常只差一两个字符,肉眼很难抓。
| 类型 | 典型表现 | 核对动作 |
|---|---|---|
| 函数与库 | 不存在的 API、混用两个库的写法 | 小样例跑一遍 |
| 配置与环境变量 | 编出像真的一样的配置项 | 查官方文档对应项 |
| 接口字段 | 字段名对、含义错或不存在 | 拿真实响应比对 |
| 正则与命令 | 差一两个字符导致行为完全不同 | 小数据试跑,看输出 |
处理顺序上有个小技巧:所有代码和命令先在小样例上真跑一遍,别直接贴进项目;跑不过再让模型解释报错,比让它整段重写一遍更快定位问题,也更省反复试错的功夫。
# 思路示意:先在最小样例上验证,再放进正式环境
# 1. 把模型给的片段单独存成临时文件
# 2. 用最小输入跑一次,只看能不能执行、报什么错
# 3. 报错信息连同片段一起贴回去,要求它只解释不重写一张排查顺序表:按后果和可验证性分三档
把所有幻觉一视同仁地人工复核,成本会压不住;完全不管,又会在关键地方出事故。实用做法是按「错了会怎样」和「好不好验证」分三档,不同档给不同的兜底强度。
| 档位 | 典型场景 | 兜底做法 |
|---|---|---|
| 第一档 | 对外发布、法规、医疗、财务 | 全部人工复核,必须找到权威来源,不给自主空间 |
| 第二档 | 代码、配置、数据换算 | 硬约束:必须跑一遍、必须查规范 |
| 第三档 | 头脑风暴、初稿思路 | 可以不查,但不拿它的输出当结论用 |
- 先判断这条输出属于哪一档,再决定花多少时间核对
- 第一档不接受「看起来合理」,只接受可追溯来源
- 第二档把「跑通」当成通过条件,而不是把「像对的」当通过条件
- 第三档别反过来浪费人力,方向对了就先用
- 同一类错误反复出现,说明是流程缺口,优先补流程而不是换模型
这套分档不适用于你本来就只想让它给个方向的场景,那时候一味追求准确反而拖慢节奏。反过来,凡是会进入正式交付物的内容,都按第一档或第二档处理,别用第三档的标准放行。
如果你在挑中转站或工具,想先看它们在不同任务上的稳定性,可以到 /sites 和 /price-watch 核对当时的数据,别只看宣传口径。
下一步拿你手上一次真实出错的回答,按上面四类对一遍编号,确定它属于哪一类、该走哪一档兜底,再去站点对应页面核对当时的模型与工具情况。→常见问题
幻觉和「模型知识不够新」是一回事吗?
不是。知识截止是它压根没学过某段时间之后的事,回答通常会含糊、说不知道,或者停在旧版本上;幻觉是它没材料也照样给出确定答案。两者处理方式也不同:前者靠联网或补资料,后者靠核对和流程约束。站内有专门讲这两者差别的页面,判断不清时先去看那篇。
换个更强的模型是不是就没有幻觉了?
会少,但不会没有。参数更大的模型在常识和长文连贯上更稳,可一旦涉及冷门事实、内部资料、具体编号,照样会编。而且它对「自己不确定」的表达往往更自信,反而更难一眼看出来。所以别把希望放在换模型上,要放在「可查验的输出必须查」这条流程上。
如果我的任务就是让它自由发挥,还需要防幻觉吗?
看你输出拿去哪。写标题、想创意、做初稿,编一点问题不大,甚至有用。但一旦这些内容要带编号、带数据、带引用、带代码去交付,就必须回到核对流程。可以先按后果分档,只对第一、二档设卡,别把整套检查加在所有场景上,那样成本比收益高。