模型为什么会「编」:三类幻觉成因与可落地的抑制手段

人工智能 · 2026-10-07

把幻觉当成单一故障会修错方向。本文按「知识缺失 / 上下文冲突 / 任务越界」三类成因拆开,各给可落地的抑制手段,并说明哪些手段只是把错误变成「不确定」。


先分类,否则一定修错方向

「幻觉」是个笼统说法。实际排查时,按下面三类分开看,处理方式完全不同:

**一、知识缺失**:问题超出训练数据覆盖范围,或事实在训练截止之后才发生。

特征:答案结构完整、语气笃定,但具体数字、人名、版本号是拼出来的。

**二、上下文冲突**:检索或用户输入里给了矛盾信息,模型被迫在多个版本里选一个。

特征:答案能引用到来源,但把两处互相矛盾的说法混在一句里。

**三、任务越界**:被要求做它结构上做不到的事,例如「复述原文」却改写了、「只输出 JSON」却带了解释。

特征:格式或边界不满足,内容本身未必错。

针对「知识缺失」的手段

1. **让检索兜住**:把问题先落到检索上,答案必须来自召回的段落;召回为空时**允许回答「查不到」**——这一步最关键,很多系统失败在「不允许说不知道」。

2. **要求给出处**:让模型逐句标注来自哪一段;标不出来的句子就是可疑句。

3. **提高召回质量**:混合检索(关键词 + 向量)通常比单纯调提示词更有效。

针对「上下文冲突」的手段

1. **去重与合并**:同一事实多版本时,先在检索侧合并(保留时间最新的),不要丢给模型去猜;

2. **显式声明优先级**:在提示里写清「若资料冲突,以标注日期较新的为准,并说明存在冲突」;

3. **让冲突可见**:要求模型输出冲突点,而不是悄悄选一个。

针对「任务越界」的手段

1. **缩小任务**:把「写一段分析」换成「从以下三个选项中选一个并给出理由」,可验证性立刻提高;

2. **结构化输出 + 校验**:要求 JSON 并对字段做程序校验,不合格就重试,而不是让格式错误流到下游;

3. **分清「生成」与「抄录」**:需要逐字准确的场景(条款、代码、公式)应走检索/复制,不要让模型改写。

哪些手段只是「把错误变成不确定」

降低采样温度、加「不要编造」的提示、让模型自我检查——这些会**减少自信的错误**,但不会补上缺失的知识。它们的正确用法是配合检索与出处校验;单独使用,往往只是把「错得很确定」变成「含糊其辞」,对准确性没有实质帮助。

一个可执行的检查顺序

1. 拿 20 条真实问题,逐条看错在**哪一类**;

2. 若集中在一类,先修那一类的机制(检索 / 冲突合并 / 任务收敛);

3. 每次只改一处,用同一批问题回归,避免「感觉变好了」。

想要你的品牌在AI回答里被推荐?

免费诊断 →