哪种情况可能导致所谓的“ai幻觉”问题

安全与风控

把「AI 为什么会胡说」拆成数据、提示、解码三段来看,给出可逐项排查的清单,帮使用者判断自己这次到底踩了哪一环。

同一句问题,换个问法结论就变了;让它写代码顺手编出个不存在的函数;问一份文件,它把没写过的条款说得像真的。这些都不一定是「模型不行」,多半是某一环的条件被凑齐了。这篇不讲幻觉的定义——站内已有专门一篇——只讲在你手上这件事里,哪几种情况最容易把它诱发出来,以及按什么顺序去核对。

同一句问题,换个问法结论就变了;让它写代码,顺手编出个根本不存在的函数;问一份文件,它把没写过的条款说得像真的。这些都不一定是「模型不行」,多半是某一环的条件被凑齐了。这篇不讲幻觉的定义,站内已有专门一篇讲透,我们只讲在你手上这件事里,哪几种情况最容易把它诱发出来。

把这件事拆成数据、提示、解码三段来看,排查就有顺序了。你会发现,大多数「胡说」不是随机发生的,而是你在某个环节刚好给了它一个必须靠猜才能把话说完的场景。下面按层拆,每层都给判断标准和可执行动作。

先把「幻觉」拆成三层,别一上来就怪模型

很多人一遇到胡编就下结论说模型不行,其实同一件事放在不同层上看,结论完全不同。训练侧的问题是你给的知识它本来就没学过或学拧了;提示侧的问题是你在这一次对话里没让它有依据可依;解码侧的问题是它在没有依据的情况下被允许大胆猜。这三层的处理方式不一样,混在一起谈就永远只能得出「模型不靠谱」这种没用的结论。

  • 训练侧:语料里本来就没有、或者有大量互相矛盾的说法,模型只能按学到的分布去补一个最像的答案
  • 提示侧:问题本身没给足判断依据,或者上下文里混进了会误导方向的内容
  • 解码侧:从概率分布里挑字的方式被调得更敢猜,同一份知识也会说出不同答案
  • 三层叠加时才最容易出问题,单独一层通常只是偏差,不一定是明显胡编

判断你这次踩的是哪一层,有个很简单的动作:把原始材料原文贴进上下文,明确要求只依据下文回答,再问一遍。如果答案立刻变稳,说明主要矛盾在提示侧;如果贴了原文它还是编,那要往数据侧看,问的可能是它完全没材料的细分领域。

训练数据这一层:缺、旧、冲突,三种情况表现不一样

训练侧的问题不会以同一种形式表现出来。缺材料时它会用相近概念拼一个听起来对的答案;记的是旧印象时它会很自信地给出已经过期的口径;语料里说法打架时它会按出现频次作答,而不是按正确性排序。分清是哪一种,才知道该不该继续用它。

表现典型场景正确应对
缺问极细分领域、内部术语、自造名词换成让它基于你提供的材料做归纳,或换更强的检索方式
旧涉及变动频繁的口径,如价格、政策、名次、版本不要问记忆里的数字,直接去站内数据页现查
冲突同一件事语料里有多种说法且没有权威排序要求它列出不同说法并标明来源,而不是直接给结论

时效性强的数字是一类特别典型的坑。模型记的是某个时间点的印象,它不会自己知道已经变了。这类问题不要问模型,去 /models 和 /official-api 看当时的数字,站内有官方价格与模型资料库,比问它靠谱得多。

提示这一层:四种最容易把模型带偏的写法

提示侧是最容易被忽视、也最容易自己动手修的一层。同样一个问题,你换一种问法,输出质量可能天差地别。下面这四种写法,几乎每一次胡编都能在里头找到影子。

  • 问题预设了答案,比如问「为什么 X 会导致 Y」,而 X 本身不成立,模型倾向于顺着前提往下编
  • 开放式范围太宽又没有边界,模型会为了把话说完而填空
  • 上下文里塞了相互矛盾的材料,模型不会主动指出冲突,而是挑一部分用来作答
  • 把模型当检索库而不是推理器,要求它给出精确出处、精确编号、精确引文,这类内容它只能近似生成,是最常见的诱因
  1. 改问法把同样的问题改成「先说明你不确定的部分,再给能确定的部分」,看输出是否明显收敛。收敛说明原来那次是被提示带偏的。
  2. 标必须核实项把问题里所有时效性、精确性要求单独摘出来,写清楚这些项必须回原始来源,不要让它用记忆答。
  3. 贴原文能贴材料就别让它凭记忆答,明确写「只依据上文,不足就说不确定」,再对比前后两次输出的差异。

这里有个反直觉的点:措辞越强硬,比如追问「你确定吗,再想想」,它越可能顺着你的压力改口,而不是更接近事实。逼出来的答案往往比第一次更不可靠。

解码这一层:同一个模型,参数不同,胡说的概率也不同

解码这一层是很多人完全没意识到的变量。同一个模型,换个参数设置,同一份知识也能说出不同答案。参数调得更敢猜,输出更发散,在事实性任务上就更容易出现没有依据的内容。这不是模型变了,是挑字的方式变了。

温度类参数
调高会让输出更发散,创作类任务合适,事实性任务上更容易出现无据内容
采样范围
限制得越窄,模型越倾向于选高概率项,答案更保守但也更稳
随机种子
固定种子只保证可复现,不保证正确,别把稳定复现同一个错当成可靠

判断标准很简单:同一提示跑多次,如果答案在事实点上左右摇摆,说明它本来就没有确定依据。这时候调参只能让输出更好看,不能让它变对。术语对照去 /ai-dict/category/tips 和 /ai-dict/category/basics 查。

调参能让胡说变得好看,但不会让没有依据的答案变得有依据。

按任务类型分:哪些活本来就不该交给它做

除了看三层,还有个更实用的角度:看任务类型。不同任务对「准确」的要求完全不一样,有些活它天生适合,有些活你交给它就是在赌。判断口诀是:答案的对错能不能被外部材料验证。不能验证的,就别让它单独作结论。

任务类型适合程度注意点
有原文可依据的改写、归纳、结构化适合出错通常一眼看得出,回原文扫一遍即可
需要精确数值、编号、引文需谨慎必须回原始来源核对,站内相关口径可在 /safety 与 /ai-dict/category/safety 对照
凭记忆回答时效性数字与状态不适合这类一律去对应的数据页面现查,不要问模型
取名、写标语、编故事适合发散是功能不是缺陷,别拿事实性标准衡量

很多投诉说模型乱编,拆开看其实是任务本身就放错了位置,比如让它凭记忆报一个每周都在变的价格。这不是幻觉问题,是用法问题。把任务放对位置,一大半的胡编会自己消失。

实操:五步定位你这次到底踩了哪一环

上面讲的是判断标准,这一节给一个能直接照着走的排查顺序。五步走完,你基本能确定这次到底是哪一环出的问题,也能知道下次怎么绕开。

  1. 摘必须核实项把问题里所有时效性、精确性要求摘出来,标成必须核实项,明确这些不能靠模型记忆。
  2. 重问一次并贴原文把原始材料原文贴进上下文,明确写只依据上文,不足就说不确定,再问一遍,对比前后差异。
  3. 换中立问法同一个问题换成不含预设立场的问法再问一遍,对比两次答案的分歧点在哪里。
  4. 拆分来源让模型把哪些是材料里写的、哪些是它自己补的分开列,补的部分就是幻觉高发区。
  5. 摇晃测试如果答案在多次之间摇摆,或去掉上下文后就答不上来,说明结论不可用,回原始来源核对。

这些判断什么时候不成立

上面这套方法不是万能的,有几种情况用它会得出错误结论。写清楚边界,比给一个绝对化的结论更有用。

  • 你已经提供完整且唯一的原文,并限定只依据原文作答:此时输出错误更多是提示理解或截断问题,不是知识缺失
  • 模型明确声明信息不足并拒答:这是正常行为,不算幻觉,不要用更强的措辞逼它给答案
  • 任务本身允许创作,比如取名、写标语、编故事:发散输出是功能不是缺陷,别拿事实性标准去衡量

另外一个不适用的情况是:你问的问题本身就有歧义,模型只是选了一个你没预期的解读。这时候换更明确的问法就行,不必往幻觉上靠。

降低触发概率的动作顺序

如果你想把这事变成一套固定习惯,按下面的顺序来。顺序很重要,先定边界再给材料,比反过来有效得多,因为边界不清时贴再多材料它也可能挑着用。

  • 先定边界:说清哪些能推断、哪些必须查原文,不能确定的要标出来
  • 再给材料:能贴原文就别让模型凭记忆答,长文本场景注意截断,截断后模型同样会补
  • 再调参数:事实性任务压低发散程度,创作类任务再放开
  • 最后做抽检:对必须核实项逐条回源,把核对过的口径与踩坑记录留档,同类问题下次直接套用

抽检这一步最容易被省掉,但它才是把一次排查变成长期习惯的关键。把每次踩到的坑记下来,同类问题下次直接套用已有的问法,比每次都重新试要省事得多。

下一步想看各家官方口径的当前数字,以及中转站的实时价格与可信度信息,去站内数据页对照当时的数字,比凭记忆问模型靠谱得多。

常见问题

同一个问题别人问就正常,我问就胡说,是我的问法有问题吗?

很可能。差别通常出在两处:一是有没有给可依据的材料,二是问法里有没有预设立场。把你提问时的上下文和别人的对比一下,先补材料、去掉前提,再问一遍看是否收敛。

调低温度是不是就不会幻觉了?

不是。温度只能降低输出发散程度,让措辞更稳定,但改不了「模型本来就没有这个知识」这件事。缺依据的地方,低温同样会编,只是编得更一致、更不容易被发现。

给模型开联网或挂知识库能彻底解决吗?

能显著降低知识缺失类幻觉,但前提是检索到的内容确实相关且足够新,否则会变成「有依据的错」。这类方案还会引入新问题:来源本身错了、片段被截断、多条来源互相矛盾。

怎么快速判断一个答案里哪部分最可能是编的?

盯住三类内容:精确数值与编号、具体人名机构名、看起来像引文或条款的原句。这三类最容易生成得像真的。让模型把「材料里有的」和「自己补的」分开列,补的那部分逐条回源核对。

如果我需要它给准确数字,正确做法是什么?

不要凭记忆问。把数据源原文贴进上下文,或让它只做格式整理不做判断,然后到站内对应的数据页面核对当时的数值——价格类看 /official-api,套餐额度看 /coding-plans,模型规格看 /models。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。