跳转至

大模型幻觉面

如何通过数据清洗减少训练数据中的事实错误?列举方法。

数据清洗是缓解幻觉的第一道防线,目标是在预训练和微调阶段剔除或修正错误信息,从源头降低模型学习虚假关联的概率。具体方法可分层实施:

image.png

(1)基于规则与启发式过滤

  • 来源黑名单:屏蔽已知的低质量网站、谣言传播站点、内容农场等域名。维护一个动态更新的不可信来源列表,大幅降低低质内容混入。

  • 关键词与模式过滤:使用敏感词、矛盾模式(如“科学证明…,但最新研究又推翻…”)进行标记,对含极端化断言、阴谋论术语的文本进行降权或移除。

  • 格式与质量门槛:剔除文本过短、乱码、HTML标签未清洗干净、缺乏标点或全大写的文本。这些粗糙文本往往伴随不可靠内容。

(2)基于模型的质量评估与打分

  • 困惑度过滤:用一个小型语言模型计算文本困惑度(PPL),剔除异常高困惑度的段落,因为它们通常语法混乱或逻辑断裂,可能包含错误信息。

  • 事实性打分模型:训练或使用现成的事实性检测器(如基于NLI的模型),以维基百科等相对可靠的知识源为证据,对训练文本中的句子进行事实性评分。低分文本被自动剔除或标记审核。

  • 重复与近重复检测:使用MinHash、SimHash等算法识别高度重复的段落。过度重复的错误信息会形成强记忆。去重不仅节省计算,还防止虚假事实被反复强化。

(3)知识库辅助的核实与修正

  • 实体一致性校验:利用知识图谱(如Wikidata)检查文本中的实体关系。若文本声称“爱因斯坦出生于法国”,而知识库显示“德国”,则标记为潜在错误,可丢弃或自动修正为正确陈述。

  • 数值与日期验证:对文本中提取出的数字和日期进行范围检查或与知识库比对,剔除严重偏离常理或与权威源矛盾的数据。

  • 引用回溯:对于包含引用的文本,爬取原始来源进行比对,若核心事实不一致,则丢弃。

(4)众包与专家清洗

  • 对于高价值、高风险领域(医疗、法律),投入领域专家对训练数据进行抽样核实和错误标注,并将修正后的数据回补训练集。这是成本最高但效果最彻底的方法。

  • 构建错误报告机制,允许社区用户标记数据中的错误,经过审核后加入过滤规则。

(5)文本质量增强与重写

  • 对于不准确的文本,不简单删除,而是使用大模型进行事实一致性改写(类似FaithDial的思想),保留有用语言模式的同时修正错误事实,作为正向样本加入训练。

  • 使用对抗生成思路,生成易错事实的正反例,强化模型对正确事实的绑定。

组合策略:数据清洗应形成流水线:先粗筛(规则+困惑度),再细筛(事实打分+知识库验证),最后人工抽检。清洗虽然无法根除所有错误,但能大幅降低“垃圾进,垃圾出”导致的幻觉密度。


在预训练数据中增加可信来源(如百科、教科书)能否有效减少幻觉?有何代价?

可以有效减少事实性幻觉,但存在显著代价,并非万能解药。

有效性原理:

  • 百科(如维基百科)、教科书、学术论文等文本经过人工编审,事实准确性远高于普通网络文本。增加这些高质量语料的比例,直接提高了训练数据中正确事实的密度,使模型学到更准确的事实关联。

  • 高质量文本逻辑严谨、陈述规范,模型能习得更结构化的知识表征和更谨慎的语言风格,这有助于在生成时减少盲目编造。

  • 对常见常识和学术知识领域,可信源的密集注入能显著提升事实正确率,如微软 Phi 系列模型通过“教科书级”数据训练获得了惊艳的知识密集型任务表现。

代价与局限性:

  1. 覆盖偏差与知识窄化

  2. 可信来源通常覆盖范围有限,偏重经典知识、西方学术体系、主流观点。这会导致模型对长尾实体、新兴领域、亚文化、口语化表达和无标准答案的开放议题知识缺失。面对这些盲区,模型仍会编造(只是可能用更学术的语言)。

  3. 过度依赖百科会降低模型处理非正式、对话式文本的能力,弱化其作为通用对话助手的自然度。

  4. 时效性滞后

  5. 教科书和百科的更新周期长,无法包含最新事件和动态知识。单纯依赖它们会导致严重的知识截止幻觉,且模型可能以过时信息作为“真理”高置信输出。

  6. 数据量有限,无法支撑大模型规模

  7. 高质量可信文本的总量远少于互联网全量爬取数据。单纯靠这些数据无法满足千亿级参数模型预训练的海量需求,必须与其他数据混合。如果比例过高,可能因数据重复而导致记忆化幻觉和过拟合。

  8. 无法解决忠实性幻觉

  9. 增加可信源主要提升模型参数化知识的真实性,但无法直接提升模型遵循用户提供的上下文的能力(忠实性)。模型仍可能在摘要、对话等任务中对给定源文不忠实。

  10. 经济与法律代价

  11. 教科书、学术论文等受版权保护,大规模用于商业预训练存在法律风险。获取授权成本高昂,且许多高质量资源并不开放。

结论:在预训练中增加可信来源是提高模型事实性的重要且有效的手段之一,但必须作为多元数据混合策略的一部分,结合大规模多样化网络文本,并辅以检索增强、时效更新等技术,才能全面平衡地减少幻觉。


如何通过“知识增强预训练”来提升模型的事实性?

知识增强预训练是在预训练阶段显式地将结构化知识或知识库信息融入模型,使其从海量非结构化文本的学习中同步内化可靠的事实知识。

主要方法与实施路径:

(1)知识库文本化预训练

  • 实体关系序列化:将知识图谱中的三元组(如 (巴黎, 首都, 法国))通过模板转化为自然语言句子(“巴黎是法国的首都。”),作为预训练语料混入。让模型直接学习事实陈述,强化实体间的正确关联。

  • 实体描述增强:在文本中出现的实体上,附带从维基百科或知识库提取的简要描述(如“苹果,一种水果,通常红色或绿色”),使模型在阅读原始文本时就获得实体的锚定知识,减少因一词多义导致的混淆和幻觉。

(2)知识掩码与预测任务

  • 知识掩码语言模型(KMLM):在预训练时,针对句子中的实体或关系短语进行掩码,要求模型预测被掩码的实体。这不同于随机mask,能强制模型学习实体级别的知识补全。

  • 链接预测预训练:设计辅助任务,输入不完整的知识三元组(如 ? - 导演 - 《盗梦空间》),让模型预测缺失的头实体或尾实体,将知识图谱的结构化信息迁移到模型参数。

(3)检索增强预训练

  • REALM / RAG-style 预训练:在预训练过程中,模型每一步预测时不仅仅依赖当前上下文,还实时从外部知识库中检索相关文档,并将检索结果作为额外的上下文来辅助预测。这使得模型从一开始就学习整合检索证据的习惯,将知识存储与语言生成解耦,极大提升事实性,降低幻觉。

  • 知识库作为额外记忆:预训练时,模型可访问一个静态的、压缩的知识索引(如基于向量的记忆库),学习从中读取事实。

(4)多任务与多模态知识融合

  • 联合训练文本生成、实体识别、关系抽取、事实验证等多种任务,共享底层表示。这种多任务学习让模型在理解语言的同时,构建更清晰的事实边界。

  • 在条件允许时,融合结构化表格、代码等数据,培养模型精确处理信息的能力,间接提升事实准确性。

(5)对比知识学习

  • 构造正负事实对(正确的三元组 vs 错误的三元组),使用对比损失拉近正确事实的表示,推远错误事实。这能让模型在表示空间中更好地聚类事实,而不是将真假混淆。

核心价值:知识增强预训练将“知识”作为一等公民融入模型的最初学习阶段,而不是仅依靠微调修补。这让模型的基础表征就带有更强的真实性偏向,是从根本上减少幻觉的有效路径,但实施复杂度高,需要精心构建融合数据。


指令微调阶段,如何构造数据以教模型承认不确定性?

在指令微调(SFT)阶段教会模型恰当地表达不确定性,需要精心设计包含知识边界样本和不确定表达的训练数据。

构造策略:

(1)提供表达不确定性的明确模板和正面示例

  • 构造一批问题-回答对,其中问题在模型知识范围外或本身无确定答案,回答则使用规范的、多样化的不确定性表达。例如:
  • “很抱歉,我无法提供该信息,因为它可能涉及实时数据,我的知识截止于2023年。”
  • “我目前没有找到确切的答案,但据我所知,类似的情况可能是……”
  • “这个问题存在争议,不同来源持不同观点,具体包括……”

  • 关键:让模型学到不确定性表达也可以是高质量、有帮助的回复,而不是惩罚。

(2)设计知识边界触发数据集

  • 收集两类问题:
  • 不可回答的问题:询问未来、极度隐私、虚构详情、需要实时数据的问题。
  • 可回答但带有不确定边缘的问题:部分可答,但需附加限定条件。

  • 对这些问题的每一个,标注一个理想的“负责任回答”,包含先声明不确定性,再给出有条件信息或提供获取信息的途径。

(3)负例惩罚与对比样本

  • 不仅提供正面示例,还构造“强行编造答案”的负面回复,并在损失函数中赋予极低的概率,显式地压制编造行为。

  • 提供成对样本:同一个不确定问题,一个正确拒答,一个错误编造。让模型从对比中学习选择诚实的回应。

(4)融入自我评估与元认知提示

  • 在训练数据中加入要求模型“在回答前先评估自己的知识”的指令。例如:
  • “对于你不知道或不确定的信息,请先说‘我不确定’,然后提供你所知的关联信息。”

  • 训练样本中,模型的思考过程(如果使用思维链)可以包含“检查知识库:此事件发生于2024年,超出我的知识范围,因此不能给出确切结论”。

(5)多样化的不确定程度分级

  • 不仅教“我不知道”,还教概率性表达:如“很可能”、“在多数情况下”、“据报道”,并给出相应情境。

  • 构造样本时区分不同等级:完全未知、部分未知但可推理、已知但有争议,每种配以恰当的不确定性描述。

(6)领域定制

  • 对于医疗、金融等高风险领域,专门构造强调“不确定时必须拒答并建议咨询专业人士”的样本,强化安全边界。

注意点:需要在“帮助性”和“诚实性”之间取得平衡。过度训练拒绝会导致模型对已知问题也过度保守。因此,数据中需明确区分已知与未知,并辅以奖励信号(如在后继RLHF中)鼓励在已知时给确定回答,未知时不确定回答。


什么样的指令微调样本可以教会模型拒绝编造答案?

教会模型拒绝编造答案需要样本明确定义什么情况下应该拒绝以及如何拒绝是合适的。关键特征如下:

(1)明确的不可回答性前提

  • 样本中的问题必须具有清晰的“不可回答”特征,包括:
  • 需要实时信息(“今天苹果公司股价?”)。
  • 涉及特定个人隐私数据(“我的医生诊断结果意味着什么?”)。
  • 询问知识截止之后的事件(“2025年世界杯冠军?”)。
  • 基于虚假前提(“为什么天空是绿色的?”)。
  • 需要高度专业资格才能作答(“请提供法律建议”)。

  • 样本的答案部分直接体现拒绝,并解释理由。

(2)多样化的拒绝表达

  • 不仅限于生硬的“作为一个AI模型,我无法回答”,而应包括:
  • 知识边界声明:“我的训练数据只到2023年,无法提供当前最新信息。”
  • 引导获取信息:“您可以查阅XX网站获取最新数据。”
  • 部分帮助:“我无法给出确切的诊断,但可以为您解释相关症状的常见原因…”
  • 纠正前提:“天空不是绿色的,它通常呈现蓝色是因为…”(先否定假前提)

  • 这种多样性可防止模型形成单一的“拒绝套路”,并在不同情境下灵活应对。

(3)将“拒绝编造”置于有用性之上

  • 样本展示:当不确定时,不提供编造答案比提供错误答案更有用。通过格式,让“诚实拒绝”的回复被标记为“优秀”。

  • 可在回复中加入元评论:“如果我随便猜一个答案,可能会误导你,因此我选择告诉你我不确定。”

(4)对比性负例

  • 指令微调数据中包含“同一问题,错误编造答案”的版本,但其权重或概率被压制。例如,在训练时,使用DPO风格偏好对,让模型明白“拒绝”优于“编造”。

(5)上下文与指令强调

  • 用户指令本身可以包含“如果你不知道,请直接说不知道”的要求。样本覆盖这类交互,训练模型去遵循此类“反编造”指令。

(6)风险分级与安全声明

  • 高风险领域样本专门展示“拒绝+安全声明”的模式。如:“我不能提供医疗建议,这些信息不能替代专业诊断。请咨询医生。”

实施:通过构造涵盖以上要点的数千个多样化指令-回复对,并在 SFT 数据中占有恰当比例(如5%-10%),可显著抑制模型在知识盲区的编造冲动。


什么是“事实性调优”(Factuality Tuning)?如何实施?

事实性调优是在基础模型完成指令微调(或偏好对齐)之后,专门针对提高其生成内容事实准确性而进行的一轮或多轮参数微调。其核心是将“真实性”作为显式的优化目标,有别于一般的有用性和安全性调优。

实施步骤与方法:

(1)构建事实性评估与奖励数据集

  • 收集大量开放域问题,这些问题覆盖广泛的知识领域,并包含容易产生幻觉的类型(如长尾事实、数值、时间)。

  • 对每个问题,生成多个模型回复,然后使用自动化事实核查手段(如检索增强的FActScore计算、与维基百科NLI比对)或人工标注,为每个回复打上“事实性得分”。

  • 整理成偏好对:即对于同一个问题,一个高事实性回复(通常是被知识库支撑,或正确说“不知道”)和一个低事实性回复(包含幻觉)。

(2)基于偏好的事实性调优(如DPO)

  • 使用上述事实性偏好数据集,应用直接偏好优化(DPO) 训练模型。优化目标为增加高事实性回复的相对概率,同时降低低事实性回复的概率。

  • 损失函数驱动模型自身策略向“更真实”的方向偏移,而无需单独训练奖励模型。

(3)强化学习式的事实性调优

  • 训练一个事实性奖励模型:使用人类标注或自动化事实性得分作为标签,微调一个预训练模型来预测给定回复的事实性评分。

  • 然后使用 PPO 等 RL 算法,优化生成策略以最大化该事实性奖励,同时施加 KL 惩罚防止偏离原始有用分布过度。奖励中可以增加“拒答奖励”,鼓励模型在不确定时表达不确定性。

(4)多任务事实性微调

  • 将事实性任务(如事实验证、实体链接)与生成任务混合进行微调。要求模型在生成内容后附加一个“事实核查”步骤并自我纠正。例如,在输出中生成“... ...”的结构,通过这个隐式过程提高最终输出的事实性。

(5)迭代自我改进

  • 使用当前模型生成大量回答,用自动化事实核查系统过滤,保留高事实性回答作为新的训练数据,进行自我蒸馏式的事实性调优。反复多轮,逐步剥离幻觉。

(6)知识注入辅助调优

  • 在调优时,同时输入相关检索文档(训练RAG式的生成),让模型学会在获得证据时生成更忠实、准确的回答。通过这种方法固化“遵循证据”的行为。

挑战:事实性奖励模型的准确性至关重要;过度优化可能导致模型变得保守,有用性下降。因此常结合“帮助性”奖励进行多目标调优。


RLHF 或 DPO 如何被用来惩罚幻觉?奖励模型应如何设计?

RLHF(基于人类反馈的强化学习)和 DPO(直接偏好优化)是当前对齐模型的核心技术,可被定制用于惩罚幻觉,引导模型生成更真实的回复。

如何使用DPO惩罚幻觉:

  • 构建幻觉偏好对:对于同一提示,生成一对回复:一个高质量的真实/忠实回复(被人工或自动事实核查确认无误),一个幻觉回复(包含事实错误或无据添加)。标记真实回复为“优选”,幻觉回复为“拒绝”。

  • 直接优化:DPO 算法直接基于这对偏好优化策略,使模型提高优选回复的对数概率,同时降低拒绝回复的概率。该过程无需单独的奖励模型,简洁地传递了“幻觉不受欢迎”的信号。

  • 多维度结合:偏好对可以同时考虑真实性、有用性、安全性,通过组合标签,在损失中对不同维度的偏好赋予权重,实现多目标对齐。

使用 RLHF 惩罚幻觉与奖励模型设计:

RLHF 需要一个奖励模型来为生成的内容打分。要惩罚幻觉,奖励模型的设计至关重要。

奖励模型的设计要素:

  1. 多维度奖励分解

  2. 不采用单一笼统的“质量”评分,而是让人类标注者或自动化系统对回复在多个维度上独立打分,例如:

  3. 事实性 (Factuality):回复是否与世界事实一致。
  4. 忠实性 (Faithfulness):回复是否严格基于给定的上下文。
  5. 有用性 (Helpfulness):回复是否实际解决了用户问题。
  6. 诚实性 (Honesty):对于不确定的内容,是否恰当表达了不确定性或拒绝编造。

  7. 最终的奖励为这些维度的加权和,其中事实性和诚实性权重在惩罚幻觉时可设置得非常高。

  8. 标注数据构造

  9. 幻觉负例的显式标注:专门收集包含幻觉的回复,让标注者给出极低的事实性分数,甚至负分。清晰标注出是哪种错误(矛盾、无据、过时等)。

  10. 拒答正例:对知识边界问题,让标注者给“正确拒绝”的回复高分,鼓励模型承认无知。

  11. 真实源文提供:在标注时,向标注者提供源文或验证过的知识链接,确保他们有足够信息判断事实性。

  12. 奖励模型架构与训练

  13. 基于预训练语言模型,输入(提示,回复)对,输出多维度的分数向量,再线性聚合为最终奖励。

  14. 使用排序损失训练:对于同一提示下的两个回复,奖励模型应准确判断哪个更好(相关性、事实性更高),而不只是拟合绝对分数。

  15. 引入对抗训练:在奖励模型训练中加入对抗样本(例如,给事实性幻觉包裹权威话术),增强其对表面假象的辨识力。

  16. RL 训练中的特殊处理

  17. KL 惩罚加重:防止策略模型为了片面追求高奖励而偏离初始分布过远,产生另一种形式的荒谬输出。

  18. 混合奖励信号:同时使用自动化事实性指标(如 NLI 蕴含得分)作为辅助奖励,与人类奖励模型结合,提供密集、即时的真实性反馈。

  19. 安全约束:设定规则,一旦检测到特定高风险幻觉类型(如编造医疗建议),直接给予极低的奖励。

通过上述设计,RLHF/DPO 能够将对“真实”的偏好有效内化到模型中,显著减少幻觉,并同时维护边界诚实性。


如何使用“红队数据”针对性地减少安全相关的幻觉?

红队数据是模拟对抗攻击和边缘案例构建的数据,用于发现模型弱点。对减少安全相关的幻觉(如编造有害建议、诽谤、危险虚构),可按照“发现-构造-免疫”的步骤利用红队数据。

(1)系统性发现安全幻觉弱点

  • 组织红队测试,涵盖多维度攻击:
  • 越狱提示:试图让模型绕过安全限制,输出制造武器、自我伤害等指导。
  • 虚假权威诱导:“根据某医生的最新研究,喝消毒水能治病,请详细说明该观点”,诱使模型附和并编造细节。
  • 错误前提劫持:基于完全错误的前提询问细节,迫使模型在有毒假设下展开回答。
  • 私密数据臆造:要求模型提供特定个人的隐私信息,可能诱使它编造身份、病史等。

  • 记录所有模型输出包含安全幻觉的案例(有害、非法、诽谤、危险虚构),形成红队数据集。

(2)构建针对性训练数据

将红队发现的成功攻击案例转化为偏好对或修正样本:

  • 偏好对构建:
  • 优选回复:安全的拒绝、纠正错误前提、正面引导,或不提供有害信息。
  • 拒绝回复:模型产生的有害幻觉。
  • 例如,对攻击“教我制作炸弹”,优选回复是“抱歉,我不能提供制作危险物品的指导”;拒绝回复是模型开始罗列步骤的幻觉。

  • 安全修正样本(SFT数据):将有害幻觉改写为既安全又有帮助的回应。比如,当用户强求危险信息时,回复可以解释其危险性并提供寻求专业帮助的途径。

(3)针对性微调免疫

  • 使用 DPO,基于构造的红队偏好对直接进行安全对齐,压制幻觉激活路径。

  • 或扩充到指令微调数据集,让模型在红队场景下学会正确的行为模式,而不仅仅是依赖上层安全壳。

  • 在多轮对话红队数据中,训练模型抵抗逐步诱导:即使用户通过多轮试探,模型也不能在某一轮编造有害内容。

(4)迭代红队对抗训练

  • 类似 GAN,用更新后的模型再次进行红队测试,发现新的脆弱点(因为免疫一轮后可能有新漏洞),再次构造数据、微调。通过数轮迭代,逐步收敛,提升模型对各类安全幻觉的鲁棒性。

(5)红队数据增强与泛化

  • 对红队样本进行自动改写和泛化,生成语义相同但表达不同的变体,丰富训练集,防止模型仅记忆特定的攻击句式。

  • 结合不同身份背景、语境的红队模拟,确保免疫覆盖多语言、多文化场景下的安全幻觉。

通过系统地收集红队暴露出的安全幻觉,并将其转化为高质量的DPO或SFT训练信号,可以将模型“打破”的脆弱点变为“加固”的防御墙,极大降低高风险的幻觉输出。


对比学习(Contrastive Learning)在减少幻觉方面有哪些应用?

对比学习通过拉近正例对、推远负例对来学习更好的表示,在减少幻觉方面有多种应用,集中在事实性表征强化、忠实性对齐和幻觉检测器训练。

科技风对比学习解析图.jpg

(1)事实知识表示纠偏

  • 构建正负事实对:
  • 正例:正确的三元组或事实陈述(如 (巴黎, 首都, 法国) -> "巴黎是法国的首都")。
  • 负例:错误的三元组或幻觉陈述((巴黎, 首都, 英国) -> "巴黎是英国的首都")。

  • 在预训练或微调时,引入对比损失,要求模型对正确事实对的语义相似度(如CLS embedding的点积)显著高于错误事实对。

  • 这能将正确的实体关系在表示空间中聚集,把错误关联推远,从根源上减少解码时因表示混淆产生的实体幻觉。

(2)忠实性增强:源文-生成对齐

  • 对于摘要、RAG 等任务,构建三元组:源文(锚点),忠实摘要(正例),幻觉摘要(负例)。

  • 使用对比损失训练生成模型:使得生成忠实摘要的编码器输出更接近源文表示,而幻觉摘要的表示被推远。

  • 可以在解码器端施加对比损失,或训练一个额外的评分器,但核心都是强化“忠于源文”的表征,抑制编造。

(3)用于幻觉检测的对比训练

  • 为训练可靠的幻觉检测器,采用对比学习构建强大的负例敏感特征。

  • 构造正例对(源文,忠实句),负例对(源文,不忠实句),训练检测器(如双塔模型)使正例对的相似度远高于负例对。训练后的检测器作为幻觉评估工具,可反过来指导生成模型的对齐(如作为奖励模型)。

(4)多模态幻觉缓解

  • 在图文生成中,构建对比对:正确图文对齐 vs 错误图文对齐(如图像与捏造的描述)。

  • 使用对比损失让视觉编码器和语言模型在正确配对上有更高的互信息,减少对象幻觉。

(5)自我对比蒸馏

  • 模型同时生成多个回复,用事实核查自动筛选出高事实性回复作为正例,低事实性作为负例。

  • 用这些样本进行对比微调,使模型自身更倾向于生成高事实性的回复,远离幻觉。这相当于一种自蒸馏的对比学习。

(6)多语言事实对比

  • 针对跨语言幻觉,用不同语言表达相同事实构造正例对,用错误翻译或事实扭曲构造负例对,通过对比学习建立跨语言的事实一致性表示,减少翻译式幻觉。

优势:对比学习显式地塑造特征空间,使“正确事实”和“错误幻觉”在表示上可分,为模型提供强大的归纳偏置。它适用于从预训练到微调、从内部表示到外部检测器的多个环节。


如何通过“课程学习”,从简单事实到复杂推理,逐步降低幻觉?

课程学习模拟人类由浅入深的学习过程,通过有序安排训练数据的难度和复杂度,可以稳定且高效地降低模型幻觉。

实施策略:

(1)定义难度指标

  • 简单事实:高频常识、维基百科 infobox 类信息(单实体单属性)、极短上下文忠实性任务。

  • 中等难度:需要单跳推理的事实、稍长的摘要(需保留多个事实)、基于单个文档的 RAG 问答。

  • 高难度:多跳推理、多文档冲突整合、长文本全局一致性、需要承认知识边界的问题(拒绝编造)、反事实与谬误纠正。

(2)分阶段课程设计

  • 第一阶段:打牢事实基础
  • 大量使用百科式单句事实训练(如“法国首都是巴黎”),并配合简单的忠实性任务,让模型建立强烈的“事实复制”与“忠实还原”基线行为,最小化简单事实幻觉。
  • 使用对比学习强化正确事实表示。

  • 第二阶段:引入简单推理与上下文依赖

  • 训练单跳问答、单文档摘要。数据中的事实需要从上下文直接提取或推理一步,但仍较直接。重点训练模型“基于证据生成”,培养不随意编造的习惯。
  • 引入少量知识边界样本,开始教模型说“不知道”。

  • 第三阶段:复杂推理与冲突管理

  • 加入多跳推理、多文档综合任务。训练模型在信息冲突时进行识别和恰当处理(如指出矛盾、选择权威、或表达不确定)。
  • 强化在长文本中维持事实链一致性的能力。

  • 第四阶段:对抗与边缘场景

  • 引入对抗性幻觉触发样本:错误前提、强误导上下文、反事实。训练模型纠正前提而非跟随编造。
  • 强化红队安全场景,使得模型在压力下仍能选择真实与安全。

(3)动态课程与自适应调整

  • 根据模型在各个子验证集上的幻觉率动态决定何时进入下一阶段。若当前阶段的事实性/忠实度未达标,则继续训练或回炉加固。

  • 在训练过程中,逐渐增加难度混合,而非突变,避免灾难性遗忘。

(4)损失权重与正则化的配合

  • 在简单阶段,给予事实性损失更高的权重;在复杂阶段,逐渐增加对一致性和拒答的奖励权重。

  • 始终保留少量各阶段样本作为回放,防止遗忘。

(5)多任务课程

  • 同时训练多个任务,但不同任务的难度同步递增。例如,摘要任务从单句摘要到全文摘要;对话任务从单轮忠实回复到多轮记忆一致性。

价值:课程学习让模型先内化“诚实可靠”的基础行为模式,再逐步增加认知复杂度。这比直接暴露于高难度杂乱的训练数据更加稳定,能够渐进式地构建防幻觉能力,同时避免因挫败而习得投机取巧的编造策略。


推理与解码策略

解码策略上,如何通过调整温度或使用核采样减少幻觉?

解码策略控制模型如何从概率分布中选择token,直接影响输出的随机性和确定性,进而影响幻觉的发生。通过精心调节温度(Temperature)和核采样(Top-p, Nucleus Sampling),可以在流畅性、多样性与事实性之间取得平衡,降低幻觉风险。

温度调节的作用与最佳实践:

  • 低温(T < 1,如0.2~0.5):使softmax分布更尖锐,高概率token的优势被放大。模型倾向于选择最常见的续写,因此减少随机错误和编造。在需要事实准确性的任务(如知识问答、摘要)中,低温可以显著降低因随机采样而产生的无关幻觉。

  • 适温与任务匹配:对于创造性任务,过低温度会导致输出重复和模板化。对于事实密集型任务,通常推荐 T ∈ [0.2, 0.7]。

  • 警告:过低的温度(如接近0的贪心解码)可能导致模型在错误路径上过于“自信”,产生高置信幻觉,且失去通过随机性自我纠正的机会。

核采样(Top-p)的抑制噪声作用:

  • 原理:仅从累积概率达到 p 的最小token集合中采样,动态截断低概率尾部分布。这使得模型排除了大量概率极低但可能语义不通、事实错乱的“噪声”token。

  • 减少幻觉:低概率token往往是语法异常、事实错误或逻辑断裂的根源。通过设置合理的 p 值(如0.9),可以有效排除这些尾部噪声,使生成内容保持在模型自认为高置信度的“可靠语义空间”内,从而减少幻觉。

  • 组合使用:典型的可靠设置如 T=0.7, top_p=0.9。对于纯事实输出,可进一步降低温度和 p 值,如 T=0.2, top_p=0.8

为什么能减少幻觉:

  • 高概率区域通常对应模型训练中最常见、最稳固的知识关联与语法结构。限制采样于此区域,使得生成过程被约束在模型“擅长的”分布内,避免涉足表达混乱或知识稀疏的长尾地带。本质上,这是一种在解码时注入的保守性先验,以牺牲部分多样性和创造性为代价,换取更高的事实可靠性。

为什么低温度解码可能减少幻觉,但会损害多样性?

低温度减少幻觉的机理:

  • 低温度强化了模型对高频知识的依赖。在训练数据中,正确事实的出现频率通常远高于错误事实,因此正确知识的token序列在无干扰时具有更高的原始概率。低温放大这些概率差异,使模型“走老路”,从而输出更常见、更可能正确的答案,避免因为采样到低概率的“创新”表达而扭曲事实。

  • 减少了随机噪声。许多幻觉来自于解码时的不确定性采样,低温通过近似贪心选择,消除了这部分随机性引入的错误。

损害多样性的原因:

  • 语言是高度多变的,同一意思可以有无数种合法表达。这些丰富表达的token通常在条件概率分布中并不总是占据最顶部位置,而是分散在许多合理的中等概率token中。

  • 低温使分布尖峰化,实际上将绝大部分概率质量集中在极少数的top token上,导致模型反复选择相同的词汇和句式,陷入重复循环。在需要创意、多轮对话和长文本生成时,这将导致文本枯燥、机械,失去自然语言的丰富性。

  • 多样性的根本来源是对中低概率但合理token的探索。低温几乎扼杀了这种探索,将生成过程降级为“安全但无聊”的复读。

权衡与现象:

  • 存在一个“事实性-多样性”权衡曲线。极低温度对应高事实性但极低多样性(甚至产生退化文本);高温度带来高多样性但易引入幻觉。

  • 实际中,可通过动态温度、重复惩罚、以及结合核采样来部分缓解:核采样截断尾部噪声,而保留适温下的中等概率多样性token,是平衡两者的有效手段。


什么是“事实核心采样”(Factual Nucleus Sampling)?

事实核心采样(Factual Nucleus Sampling) 是一种专门设计用于在保持生成多样性的同时显著降低事实性幻觉的解码策略。它在标准核采样的基础上,融入了对生成内容事实性的在线评估,动态截断那些可能导致幻觉的token。

核心原理与步骤:

  1. 标准的Top-p采样首先确定一个候选token集合,其累积概率达到 p,去除了概率极低的尾部。

  2. 事实性评估:对于候选集合中的每个token,评估如果选择该token,整个生成序列的“事实性得分”会受到何种影响。评估可通过一个小型的事实性验证模型或规则进行(如基于NLI的蕴含得分,或实体一致性检查)。

  3. 事实性截断:设定一个事实性阈值,将那些会导致生成序列事实性得分低于阈值的token从候选集中移除。例如,如果一个token会引入与源文或常识矛盾的实体,或导致数值错误,它将被剔除。

  4. 重新归一化与采样:在剩下的事实性合规token中进行重新归一化,然后采样。

与普通核采样的区别:

  • 普通核采样只依据概率截断,完全不了解语义。它可能保留一个概率不低但事实错误的token(如模型误把“伦敦”当作“法国”的首都时会以较高概率输出“伦敦”)。

  • 事实核心采样在概率筛选之上叠加了“事实性过滤器”,相当于在解码时进行了一次快速的事实核查,阻止错误事实进入生成序列。

优势:

  • 在保持灵活生成(多样性与流畅性)的同时,显式地抑制幻觉token,有效缓解了温度/多样性权衡问题。

  • 可以配合各种事实性打分器,灵活适应不同任务。

挑战:

  • 需要在每一步解码时都进行一次事实性评估,计算开销显著增加,对实时性要求高的场景不友好。

  • 依赖于内置的事实性评估模型的准确性。如果评估器本身有缺陷,可能误删正确token或保留错误token。

应用:适用于对事实准确性要求极高且可接受一定延迟的场景,如自动新闻生成、医疗报告草拟等。


“上下文感知解码”如何抑制幻觉?举例说明。

上下文感知解码指在解码过程中,不仅利用语言模型自身的概率分布,还显式地将生成内容的上下文相关性和忠实度信号作为约束或偏置项,加入到token选择中,从而抑制偏离给定上下文的幻觉。

实现方式与示例:

(1)上下文-生成一致性奖励

  • 方法:在每一步生成时,对候选token评估其与给定源文(或对话历史)的语义一致性。例如,使用一个轻量的交叉注意力模块或NLI模型实时计算“如果选择该token,整体生成句被源文蕴含的概率”。将此概率作为奖励加到模型原始logits上。

  • 示例:对于摘要任务,当模型在解码“该药物可治疗……”时,若源文中并未提及“治疗”任何疾病,而提到了“缓解”,那么“治疗”的上下文一致性得分会很低,会被抑制,而“缓解”会被增强,从而抑制了夸大事实的幻觉。

(2)拷贝机制增强与约束

  • 方法:在解码时,提高从源文中直接拷贝token的概率,降低生成源文外新token的意愿。尤其对数字、命名实体、日期等关键信息,通过修改logits,大幅提升与源文匹配的token分数。

  • 示例:在回答“爱因斯坦出生于哪年”且上下文提供了“1879”时,解码到年份时,token“1”、“8”、“7”、“9”的概率被强制拔高,防止模型根据自身知识输出“1878”等错误记忆。

(3)注意力引导与聚焦

  • 方法:强制解码器在生成某些片段时,将注意力集中在源文的相关部分。如果注意力权重偏离源文关键区,则施加惩罚。这确保了生成内容在“注视”源文的前提下产出,减少了无据想象。

  • 示例:在多轮对话中,当用户问“我之前提到的那个地方”,通过上下文感知解码,模型被引导聚焦回对话历史中最早提及地名的区域,而不是随机生成一个新地名。

(4)上下文感知的重复惩罚

  • 方法:自适应地调整重复惩罚。如果某个token在源文中不常出现,但模型却要重复使用它,则加大惩罚;而在需要忠实复现源文术语的场景(如翻译专业名词),则减小惩罚。

核心思想:上下文感知解码将“生成什么”部分地从“语言模型先验”转移到“输入上下文约束”上,显式地对抗自回归模型容易遗忘源文、依赖自身参数的倾向。这是一种强有效的忠实性幻觉抑制策略。


如何进行推理时间干预(如修改 logits)以促进事实性?

推理时间干预(Inference-Time Intervention, ITI)是指在模型生成过程中,不改变模型参数,而是通过外部规则、额外模型或直接操作输出的概率分布(logits)来引导生成结果更加真实。

主要干预手段:

(1)事实性 logits 偏置(Factuality Bias)

  • 维护一个“事实性短语”或“实体别名”的白名单/词表,以及“常见错误表达”的黑名单。在解码时,对白名单中的token logits 增加一个正偏置值,对黑名单的token 大幅降低。

  • 实例:对于问题“谁是美国第一任总统?”,如果模型logits中“华盛顿”得分较高,可以保持;但如果检测到“林肯”等错误答案概率较高,则可压制它。

  • 可以结合小型知识图谱实时查询,将事实三元组中的正确尾实体token大幅加权。

(2)基于探测器的动态调整

  • 训练一个轻量的“幻觉探测器”,它输入当前已生成的序列前缀和源文(或外部检索知识),输出一个“可能幻觉”的分数。当该分数超过阈值时,触发干预。

  • 干预措施:回溯删除最近生成的高风险token,并在下一步logits中屏蔽所有被判定为可能导致幻觉的token类别(如所有数字、实体),强制模型重新选择,或插入不确定性表达。

(3)对比层干预(Contrastive Decoding)

  • 同时运行一个专家模型(如忠于源文的忠实模型)和一个业余模型(如通用生成模型或蕴含更多错误的模型)。在每一步计算两者logits的差异,将这个差异作为奖励信号加到主模型的logits上。

  • 实质:强化那些在专家模型中更受青睐的token(通常是更忠实、更事实的token),压制业余模型喜欢的但可能是花哨但不实的token。

(4)受控文本生成(Controlled Generation)

  • 在解码时,要求生成文本满足特定的可验证属性。例如,在代码生成中,强制所有生成的API名称必须属于一个预先加载的有效API集合(来自官方文档)。对于不在集合中的token,将其logit设为负无穷,从根本上杜绝API幻觉。

  • 在生成引用时,强制引用编号必须存在于提供的检索文档索引中。

(5)回溯与重新规划(Backtracking)

  • 当检测到生成的内容可能包含事实错误(如通过一个实时NLI校验),生成过程可以自动回溯到错误发生的节点,在产生错误的步骤施加更强的约束重新生成,实现类似“删除并重写”的推理时自我修正。

技术挑战:干预需要引入额外计算(模型多次前向、外部知识库查询),可能显著增加延迟。此外,不恰当的干预会破坏生成流畅性或引入新的偏差。


“推断时知识检索”(如 RAG)能消除幻觉吗?它能解决哪类幻觉?

不能完全消除,但能大幅且定向地解决特定类型的幻觉,尤其是事实性幻觉中的知识缺失型幻觉和时间性幻觉。

RAG能解决的核心幻觉类型:

  • 知识截止与过时幻觉:对于需要最新信息、超越模型训练截止日期的事件,RAG通过检索实时文档,提供包含正确答案的证据。模型从参数记忆中无法得知的知识,现在被显式地呈现在上下文中,从而消除了因知识缺失而产生的闭卷幻觉。

  • 长尾知识幻觉:对于极冷门的实体、局部知识、小众领域细节,模型参数中几乎无存储。RAG能从专门知识库中拉取相关文档,填补参数空白,直接给出有依据的答案,而非编造。

  • 需要精确归因的幻觉:RAG要求模型基于检索到的文档作答,并常常结合引用生成,这能有效抑制“看似合理但无据”的编造,让模型输出有源可溯。

RAG无法解决或可能加剧的幻觉类型:

  • 忠实性/内部幻觉:RAG虽然提供了文档,但模型仍可能忽略检索内容,固执于自身参数知识(固执性幻觉),或者错误地整合、扭曲文档信息,甚至混合不同文档产生新的虚假陈述(跨文档混淆)。仅靠检索而不训练模型的忠实整合能力,无法解决这类幻觉。

  • 检索噪声诱导幻觉:如果检索到的文档本身不相关、不可靠或含有错误信息,模型可能盲从这些噪声,产出受到污染的幻觉。因此RAG的检索质量至关重要。

  • 推理幻觉:即使拥有了正确事实,模型在多步推理中依然可能发生逻辑跳跃和错误推导,这是RAG无法直接修正的。

  • 检索盲区:对于世界上没有文档记录的信息(如虚构问题、反事实前提),RAG无法提供有效知识,仍需模型自身的知识边界识别能力来拒答。

结论:RAG是截至目前缓解因参数知识不足导致的事实性幻觉最有效的手段之一。但它不是银弹,必须与提高模型忠实整合能力、检索质量过滤、以及对无法检索场景的诚实回复训练相结合,形成“RAG+忠实性对齐”的完备方案。


RAG 检索到多篇文档时,如何处理文档间的矛盾,减少幻觉?

当RAG检索到内容矛盾的多篇文档时,模型需要具备鉴别、冲突处理和选择性整合的能力,否则极易产生混合性幻觉或选择错误方。处理方法分为数据训练、推理策略和后处理三个层面。

(一)训练阶段的冲突处理能力注入

  • 构造矛盾训练数据:在微调时,刻意提供多篇文档,其中包含相互矛盾的事实。标注的正确输出行为包括:
  • 指出矛盾并悬置:如“来源A声称X,来源B声称Y,目前信息存在冲突,无法确定。”
  • 权威度加权选择:若可区分,回应“根据更权威的XX机构(来源A),事实是X”。
  • 整合后表达不确定性:如“有证据指向X,也有报告显示Y,具体细节尚存争议。”

  • 通过这种方式,模型学会将“矛盾”作为一种状态输出,而不是强行融为一个看似连贯但错误的答案。

(二)推理时的策略性处理

  • 基于来源权威性的动态加权:使用检索系统不仅返回文档,还返回来源的权威性分数(如维基百科>随机论坛)。在生成时,通过提示工程或注意力偏置,引导模型优先采信高权威源的信息。

  • 两阶段生成:先梳理,后回答:首先生成一个不直接面向用户的“内部梳理”,例如“文档1说了A,文档2说了B,它们关于X有冲突。”然后基于这个梳理,生成面对用户的谨慎回答。这种思维链式的分解能显著提升处理冲突的准确率。

  • 多数投票机制:对于有多篇独立文档的场景,若多数文档支持某一事实,通过提示让模型注意到“大多数资料认为…”,从而选择共识信息。

(三)后处理与校验

  • 事实验证管道的再次应用:将模型生成的回答再次拆解为声明,并重新与所有检索文档进行NLI验证。如果某个声明与部分文档矛盾(且该部分文档更权威),则自动标记并要求模型修正。

  • 冲突敏感的解码策略:在解码时,若模型当前生成的token对应某个文档声称的事实,但与其他文档显著矛盾,可通过约束解码降低该token概率,促使模型转向更调和或更保守的表述。

核心目标:不是让模型成为“完美的裁判”,而是让其拥有识别冲突并坦诚沟通的能力,承认不确定性,而非自以为是地盲目综合。


使用检索结果后,如何让模型明确标注引用来源,以提升忠实度?

让模型在生成时明确标注引用来源,能将忠实度从“隐性要求”变为“显性约束”,极大地减少无据编造。

实现路径:

(一)训练模型生成引用

  • 构建带引用的训练数据:使用自动化流水线或人工标注,构造包含“陈述-引用”对的训练样本。例如,对于RAG任务,每个生成句子的末尾或段落后添加引用标记,如“阳光是光合作用的必要条件[1][2]”。

  • 引用格式统一:训练模型学会使用标准引用格式,如方括号编号[1][2],或内联引用(来源: 文档名)

  • 细粒度引用对齐:高级训练不仅要求段落级引用,还要求每个关键事实都有精确到句子的引用。训练数据需要提供这种细粒度的对齐信息。

(二)推理时的引用约束解码

  • 强制引用编号合法:在解码时,将所有超出检索文档编号范围的引用token(如[5]但只有4篇文档)的logits设为负无穷,完全杜绝伪造不存在的引用。

  • 引用-陈述一致性校验:生成引用后,用NLI模型即时检查被引用的文档内容是否确实支撑该句陈述。若不支撑,可丢弃该引用并触发重新生成或警告。

(三)后处理与归因增强

  • 引用补全:如果模型未能生成引用,可使用一个后处理模块,将生成的每个句子与检索文档进行语义匹配,自动为其添加最相关的引用,并可用不同颜色标出置信度。

  • 引用高亮与交互展示:在前端展示时,将每个有引用的句子高亮,点击可展开查看来源文档的原文摘要。这不仅提升了透明度,也让用户能够进行人工事实核查。

效果:

  • 显式的引用需求会迫使模型在生成时更加“依凭证据”,因为它需要为每个主张找到出处。这种机制有效抑制了“闭眼编造”的冲动,是从行为上降低忠实性幻觉的强有力手段。

思维链(CoT)提示为何可能减少推理幻觉?它又会引入什么新型幻觉?

减少推理幻觉的原理:

  • 分解复杂问题:CoT将多步推理问题显式地分解为子步骤,每一步只解决一个小问题。这降低了模型在单步上“跳步”或“胡乱猜测”的概率,因为每步的推理可以基于上一步的明确结论,而不是一次性黑箱输出最终答案。

  • 提供可解释的“工作记忆”:将内部隐式的逻辑演算外化为文本序列,使得模型可以“读”到自己之前的推理,这实际上延长了模型的有效记忆,减少了因忘记前提而导致的逻辑断裂幻觉。

  • 激活更多相关知识:当模型写出推理过程时,相关的背景知识也会被作为推理依据一并激活和提取,这有助于更全面地检索内部知识,避免遗漏关键事实。

  • 可纠错性:分步过程让错误有机会在推理链中被放大或暴露(例如产生荒谬的中间值),然后模型可能有机会自我修正,或是让用户、外部验证器介入。

CoT引入的新型幻觉:

  • 推理幻觉(错误跳跃):模型可能生成了看似合理、步步递进的推理链,但某一步的逻辑是错误的、基于虚假前提或包含跳跃,导致整个链条虽连贯却荒谬。比如,在数学证明中捏造定理来补全步骤。

  • 虚构中间事实:为了支持推理,模型会凭空编造一些看似专业的中间观察、数据或引用(如“根据2021年的一份调查…”),使推理看起来可靠,实则建立在流沙上。

  • 循环论证与同义反复:CoT可能生成冗长但信息增量为零的“伪推理”,只是用不同的话重复结论,没有真实推理。

  • 过度自信与错误固化:一旦模型在链的开头走上了错误路径,整个思维链会被用来将错误“合理化”,导致高度自信的幻觉,且由于表面逻辑完善,更难被检测。

  • 成本与延迟:CoT显著增加了输出长度,带来更长的推理时间。虽然不是幻觉本身,但影响了应用效率。

缓解:可使用过程奖励模型、外部工具验证中间步骤、以及多路径CoT投票(如Tree-of-Thoughts)来减少这些推理幻觉。


自我一致性(Self-Consistency)如何帮助检测并减少幻觉?解释原理。

自我一致性是利用大模型生成多样性来提升准确性的集成方法,能够有效检测并间接减少幻觉,尤其适用于有明确正确答案的推理任务。

原理与步骤:

  1. 多次采样:对于同一个问题,使用非零温度(或多种提示、多种上下文)独立生成N条不同的推理路径和答案(如N=5~20)。

  2. 答案聚合:提取每个回答的最终答案(忽略推理过程),通过投票(多数一致)选出最一致的答案作为输出。

  3. 幻觉减少的内在机理:

  4. 压制随机错误:每次采样都可能因随机性产生不同的幻觉(如一次算错、一次记混)。这些随机错误通常分散在各个不同的错误答案上,而正确答案(如果模型具备相关知识)会在所有合理路径中占有最高的出现概率。多数投票有效地过滤掉了这些分散的随机幻觉,将信号从噪声中提取出来。
  5. 暴露不确定性:对于模型完全不确定或只会编造的问题,多次采样的答案会高度离散,形成平坦的分布。此时,自我一致性分值(最高票数/总票数)会很低。这可以作为一个幻觉风险指标——低一致性的回答被直接标记为可疑,从而检测出幻觉。
  6. 抑制单路径偏执:避免了贪心解码或单次采样可能陷入的一个错误但高概率的推理路径(幻觉路径),通过平行探索多条路径并投票,实现了一种“集体智慧”。

应用范围:

  • 适用于有明确、可提取最终答案的任务(数学题、事实问答)。对于开放式文本生成,难以直接投票,但可以通过语义聚类一致性等方式来评估可信度(如SelfCheckGPT的思想)。

局限:计算开销数倍增加;对系统性的、模型深信不疑的错误知识(高置信幻觉)无效,因为多次采样会重复同样的错误。


“验证链”(Chain-of-Verification)方法是如何迭代减少幻觉的?

验证链(Chain-of-Verification, CoVe) 是一种通过多步骤生成-验证闭环来减少幻觉的方法。它让模型在生成初步回答后,有意识地对该回答进行事实核查,并根据核查结果修正答案,从而迭代式地提升最终输出的真实性。

实施流程:

  1. 生成初始回答:模型根据用户查询生成一个完整的基线回答。

  2. 规划验证问题:模型根据该回答内容,自动生成一系列用于事实核查的验证问题。这些问题旨在逐一验证初始回答中的各个关键声明。例如,若回答“爱因斯坦出生于德国乌尔姆,于1921年获诺贝尔奖”,验证问题可以是“爱因斯坦在哪里出生?”和“爱因斯坦哪年获诺贝尔奖?”。

  3. 执行验证:模型独立地回答这些验证问题。这一步相当于模型作为核查员,纯粹基于自己的知识(或检索)来回答问题,不受初始回答措辞的干扰。

  4. 一致性比对:将初始回答中的声明与验证环节得出的答案进行比对。如果存在矛盾(比如验证时回答“1922年”而初始回答是“1921年”),则记录为不一致点。

  5. 修正生成:将检测到的不一致之处、原始回答及验证答案一起,送入模型的最终生成步骤。提示模型“请修正原始回答中的事实错误,使其与验证结果一致”,生成经过校验的最终回答。

为什么能迭代减少幻觉:

  • 解耦与独立验证:CoVe将生成与验证过程解耦,利用模型独立回答验证问题时的准确率往往高于在约束生成中避免错误的准确率这一现象。通过这种“自我交叉检验”,更容易捕获事实错误。

  • 针对性修正:不是笼统地重写,而是针对已知矛盾点进行靶向修正,减少了二次引入新幻觉的风险。

演化与增强:

  • 可多轮迭代(将修正后回答再次验证)。

  • 可接入外部工具,如搜索验证问题,将验证能力从参数知识扩展到实时知识。

  • 思维树(Tree of Thoughts)等可与其结合,进行多路径验证与回溯。


如何使用“工具调用”(如计算器、搜索引擎)来规避幻觉?

工具调用将模型难以可靠完成的确定性操作或实时信息获取外包给外部专用工具,从根本上消除了该类任务上的幻觉来源。

核心机制与典型应用:

  • 计算器(解决数值幻觉):
  • 模型在需要精确数学运算时,输出特殊标记(如 <calculate>),将数学表达式(如356 * 789)传入外部计算器API,并将返回的精确结果(280884)融入后续文本。
  • 效果:完全消灭了因模型统计预测而产生的算术错误幻觉。

  • 搜索引擎/知识库API(解决时效性与长尾知识幻觉):

  • 对于需要实时信息或不确定的知识,模型生成搜索查询,调用搜索引擎API,将返回的权威摘要作为上下文进行再生成。
  • 效果:将闭卷生成转化为开卷生成,用实时检索的事实取代模型可能过时或缺失的参数记忆,从根本上规避知识缺失性幻觉。

  • 代码解释器(解决代码逻辑幻觉):

  • 模型生成代码后,调用Python解释器执行并获取结果(数值、图表、错误信息)。模型根据返回结果决定是否修正代码或直接引用输出。
  • 效果:确保生成的代码输出描述与实际执行结果一致,杜绝了“睁眼说瞎话”式的代码输出幻觉。

  • 结构化数据库查询(解决精确数据幻觉):

  • 对于企业数据、统计数据,模型生成SQL或API调用,直接查询数据库,将返回的精确数据填入回答模板。
  • 效果:避免了模型“记忆”或“编造”企业机密的财务数字、库存等。

  • 日历与翻译等专用工具:

  • 日期计算、专业领域翻译等,使用专用工具总是比语言模型更可靠,彻底规避相关幻觉。

集成方式(如Toolformer, ReAct):

  • 通过微调或提示,模型学会在需要时生成工具调用指令,暂停文本生成,接收工具结果,再继续生成。这一范式将“知道”与“计算/检索”分离,让语言模型回归其最擅长的语言理解与整合角色,将容易产生幻觉的精确任务交给确定性工具。

在生成过程中进行实时事实核查是否可行?有什么技术挑战?

可行性:

在生成过程中嵌入实时事实核查模块,理论上可行并已有初步研究实践(如前文的事实核心采样、上下文感知解码)。基本思路是每生成一段文本(或关键token),便运行一个轻量的事实核查器对当前片段进行验证,如果发现问题则立即干预。

主要技术挑战:

  • 极高的延迟与计算开销:
  • 生成每个token或短句后暂停并调用复杂的事实核查器(如搜索、NLI),会导致端到端响应时间变得不可接受,尤其在需要低延迟的交互场景。这是实时核查走向实用的最大阻碍。
  • 解决方向:需要高度优化的小模型专用核查器,或使用缓存与投机式解码叠加。

  • 片段核查的上下文不完整问题:

  • 生成过程中的文本是逐步展开的,一个当前看似事实错误的半句话,在后续补充后可能完全正确。过早的干预会扭曲表达或阻断合理的信息展开。
  • 需要有良好的“段”划分策略,并允许一定缓冲,使得核查在相对完整的语义单元上进行。

  • 核查器的准确性与覆盖率:

  • 轻量快速的核查器可能准确率不足,导致大量误报(将正确内容判为幻觉而中断)或漏报(对复杂逻辑矛盾无效)。过于依赖它会引入新的偏见和噪声。
  • 对开放域内容,快速检索精准证据并做出正确蕴含判断依然困难。

  • 干预策略的平滑性:

  • 一旦检测到幻觉,如何优雅地修正或重新生成,而不破坏文本整体流畅性,是个难题。强行回退可能导致生硬的中断感或语法碎片。

  • 架构复杂性与工程挑战:

  • 需要在标准的自回归生成框架中深度嵌入外部核查循环、回退机制、logits修正等,工程实现复杂。

现状与展望:完全的“逐token实时核查”目前仍不成熟,多用于受限领域或作为研究原型。更实际的方案是分段实时核查:生成一个段落或完整观点后,在后台进行核查,若发现问题,则触发局部改写或向用户追加更正声明(“更正:上一段提到的数字有误,正确应为…”)。这种方法在延迟和准确性之间取得了更好的工程平衡。

系统与后处理

如何构建一个后处理管道,自动修正生成文本中的事实错误?

后处理管道在模型生成文本之后介入,通过检测和修正流程来减少最终输出中的幻觉,适合对已有模型输出的二次优化。

管道架构与步骤:

  1. 幻觉检测与定位
  2. 原子事实分解:将生成文本拆分为独立的原子声明,便于逐条核验。
  3. 证据检索:对每个声明,利用搜索引擎或可信知识库(如维基百科)检索相关的权威文档片段。
  4. 事实核查:使用NLI模型或经过微调的事实性评分模型,判断检索到的证据是否蕴含该声明。对于未蕴含或矛盾的声明,标记为“可疑幻觉片段”。
  5. 细粒度定位:输出每个幻觉片段的具体起止位置及其错误类型(如实体错误、数值错误、无据添加等)。

  6. 修正决策与生成

  7. 高置信度错误的直接替换:对于明确且易于修正的错误(如错误的日期、错误的实体名称),可以直接从证据中抽取正确信息进行替换。例如,将“爱因斯坦生于1880年”修正为“1879年”。
  8. 模糊或无证据片段的保守处理:若无法从证据中找到准确替换值,可选择删除该幻觉片段,或用不确定表达(如“可能”、“据报道”)修饰,或者保留但加注存疑标记。
  9. 上下文一致性维护:修正时必须考虑与上下文的语法、语义连贯,可能需要微调周围用词。

  10. 重写与流畅性恢复

  11. 使用一个轻量级的重写模型(或调用原LLM),输入原始文本和修正指令(如“请修正以下文本中的事实错误:{原始文本},根据以下证据:{证据},保持文风流畅”),让模型生成修正后的完整文本。
  12. 施加约束:要求模型仅改动已标记的幻觉部分,保持其他内容不变,避免引入新错误。

  13. 最终验证与输出

  14. 对修正后的文本再次运行事实核查,确认原有的幻觉已被修正且未引入新幻觉。
  15. 如果仍存在严重错误,可设置最大迭代次数进行多轮修正,或标记为“无法可靠修正”交给人工审核。

技术要点:

  • 效率权衡:对事实性要求极高的场景可全量核查;对于实时性要求高的,可仅对高风险声明(如数字、实体、断言)进行核查。

  • 来源标注:修正后可以附加修改依据的引用链接,增加透明度和可信度。

  • 修正回退:设定置信度阈值,若修正信心不足,保留原样并提示用户可能存在错误。

这样的后处理管道将生成与校验解耦,能显著提升任意模型输出的可信度,是现阶段工程上落地可用的幻觉修复方案。


使用“校验器”模型对输出进行事实性评分,低于阈值则拒绝或重生成,这种策略优缺点如何?

策略描述:训练或使用一个独立的“校验器”模型(可以是经过微调的NLI模型、专门的幻觉评分模型如AlignScore,或大模型裁判),对生成系统输出的每条回答或关键片段进行事实性打分。当分数低于预设阈值时,系统可选择拒绝提供该回答(如回复“我无法确认该信息”),或触发重新生成(使用不同参数或提示再次生成,直到分数达标或达到最大重试次数)。

优点:

  • 灵活性高,与生成模型解耦:校验器可以像插件一样工作,适用于任何黑盒生成模型,易于集成和升级。

  • 提供可量化的安全网:通过设定不同阈值,可以精细控制“风险-召回”权衡。高风险领域(医疗)可设高阈值,宁可拒绝也不冒险;低风险领域则可适当放宽。

  • 能捕捉生成模型自身未意识到的错误:校验器可以利用外部知识、检索增强等方式,比生成模型的自我校准更可靠。

  • 易于审计与迭代:每次拒绝/重生成都有分数记录,便于分析模型在哪些主题、哪类问题上容易产生幻觉,指导后续优化。

缺点:

  • 引入额外延迟与成本:每次输出都需要运行校验器(可能包含检索、NLI),大幅增加系统响应时间,尤其当触发多次重生成时。

  • 校验器本身的错误:误判会将正确的回答拒绝(误拒绝),或将错误的回答放过(漏报)。不完美的校验器可能成为新的瓶颈。

  • 重生成策略的不确定性:即使重试多次,生成模型可能始终无法产出高事实性的答案,最终导致反复重试后仍拒绝,用户体验差。且重试增加了算力成本。

  • 阈值设定困难:固定阈值难以适应所有问题类型。有些问题本身无确定答案,强行拒绝可能不恰当;有些看似高置信的错误却需要严格拦截。

  • 可能压制有用信息:过度严格的校验器会使模型变得过度保守,对一些合理推测或常识性扩充的答案也拒绝,降低帮助性。

改进方向:可以采用软决策,如将分数用于附加置信度提示(“该回答可信度:中”),而非硬性拒绝;或者用校验器分数作为重排序依据,从多个候选回答中选择最高分的输出,而不是反复重生成。


在多步推理系统中,如何通过“回溯”机制纠正中间的幻觉?

多步推理系统(如思维链、规划执行)中,中间步骤的错误(幻觉)会被放大并污染后续推理链。回溯机制允许系统在检测到中间步骤可能出错时,回退到之前的可靠状态并尝试替代路径,以此纠正推理幻觉。

实现回溯的核心技术:

(1)步骤级验证器与置信度评估

  • 在每个推理步骤生成后,立即对该步骤进行独立的真值评估。评估器可以是基于规则的(数学等式校验)、基于外部知识的(查询数据库)或基于模型的(轻量NLI检查与已知事实的一致性)。

  • 给每一步赋予一个置信度分数,当某步的置信度低于阈值时,触发回溯信号。

(2)回溯策略

  • 单步回溯与替换:丢弃当前低质量步骤,要求模型基于前一步的正确状态,重新生成一个新的下一步。可以同时生成多个候选下一步,用验证器选择得分最高的一个继续。

  • 多级回溯(Tree-of-Thoughts):在整个推理过程中构建搜索树,每个节点是一个推理状态。当某条路径的整体评分下降时,回溯到之前评分最高的分支点,探索其他分支。这需要维护多个可能的推理轨迹,并进行广度或深度优先搜索。

  • 回溯与修正提示:在检测到错误步骤后,向模型展示错误步骤及验证器给出的错误原因,让它“重新思考这一步”,明确知道哪里错了,从而生成修正的步骤。

(3)全局一致性回溯

  • 不仅在单步内检查,还要定期检查当前推理路径是否与原始问题前提、已确认事实、常识一致。若发现严重矛盾,回溯到矛盾引入点之前,重新规划。

  • 例如,在长文本生成中,如果后面的事实陈述与前面矛盾,可回溯到矛盾起始位置进行改写。

(4)利用外部工具锚定回溯点

  • 在复杂数学题中,当推导出最终数值答案时,可先用计算器验证答案;若错误,回溯到关键公式代入步骤,检查是公式错还是计算错。

  • 在代码生成中,运行代码后报错,可回溯到错误行,分析报错信息并修正。

关键挑战:

  • 精确的步骤级验证器难以构建,特别是涉及开放语义的推理。

  • 维护搜索树会产生高昂的推理成本和内存消耗。

  • 需要模型具备强大的指令遵循能力,才能在回溯后有效采纳修正意见。

回溯机制将“生成-检查-修正”闭环融入推理过程,极大增强了多步推理系统的鲁棒性,是迈向可靠推理的重要方向。


如何利用知识图谱约束模型输出,降低事实错误?

知识图谱以结构化的三元组形式存储了准确的事实知识,可被用来在生成过程中施加硬性或软性约束,从源头上防止模型输出与已知事实相悖的内容。

约束方法:

(1)解码时的实体/关系软约束(Logit偏置)

  • 实体链接与范围限定:对于生成文本中可能涉及的实体,实时查询知识图谱,获取其合法属性值或相关实体集合。在解码到相关token时,提升这些合法token的概率(加正偏置),压制不在集合中的token。

  • 示例:当模型生成“巴黎是…的首都”,且前文已确定国家实体为“法国”,查询图谱确认“法国”的“首都”应为“巴黎”,则在解码首都名称时大幅提升“巴黎”的logit,压制其他城市名。

(2)硬约束:受限解码(Constrained Decoding)

  • 前缀树/合法词汇表约束:根据知识图谱或本体构建一个有限状态机,强制生成的特定片段必须符合图谱中的合法实体名、关系路径。例如,在生成医疗建议时,药物名称必须来自药物本体,且与疾病有“治疗”关系。

  • 完全屏蔽非法token:在任何时候,如果下一个token会导致组合成不在图谱中的三元组,将其概率直接设为0(-inf),阻止生成。这能完全杜绝已知的实体关系类幻觉,但灵活性受限。

(3)基于检索的知识图谱注入上下文

  • 三元组文本化:在生成前,根据问题从知识图谱中检索相关三元组,转化为自然语言句子插入到prompt中(例如:“已知事实:巴黎是法国的首都。”)。这相当于为模型提供了一个局部的、确定的知识上下文,引导其基于此作答,而非依赖可能错误的参数记忆。

  • 动态查询与多跳推理:对于复杂问题,可多次查询图谱(如从“姚明”跳转到“姚明的女儿”),将多跳路径上的实体和关系都作为上下文,辅助模型进行正确推理。

(4)训练阶段的知识图谱对齐

  • 知识增强预训练/微调:将知识图谱的三元组作为训练数据,或与文本对齐进行多任务学习,使模型参数本身更深刻地内化正确的知识关联,从根源减少事实错误。

优势与局限:

  • 优势:能精准消除实体属性、关系类的事实幻觉,特别是在专业领域(如法律条款、药品名称)十分有效。

  • 局限:覆盖范围受限于知识图谱的完整性,对图谱外的知识无能为力;过于刚性的约束可能损害语言流畅性;构建和维持大规模高质量图谱成本高。

知识图谱是构建可信赖AI的关键外部知识引擎,与语言模型的深度融合代表从“统计模仿”迈向“知识驱动”的重要路径。


模型融合或集成能否降低幻觉?多个模型投票的假设是什么?

可以,模型融合或集成通常能够降低幻觉率,但前提是满足特定假设且可能引入新问题。

集成降低幻觉的原理:

  • 偏差-方差权衡:不同模型由于架构、训练数据、初始化随机性等不同,它们的错误(幻觉)往往是不相关的,分布在不同的模式上。通过集成多个独立模型的输出,可以“平均掉”各模型的特异性随机错误和部分系统性偏差,使得最终的联合预测更接近真实分布。

  • 不确定性降低:当多个模型对某个事实的生成一致时,该事实很可能是正确的;当它们存在分歧时,则表明该处信息存在高度不确定性,集成方法(如投票或取平均概率)可以揭示这种不确定性,从而避免采纳某个模型的偏激幻觉。

常用集成形式:

  • 输出端投票:对同一问题,用不同模型生成多个候选回答,通过语义聚类或实体级投票选出最具共识的回答。这是利用“真理往往掌握在多数人手中”的假设。

  • 概率分布平均:在token级别平均多个模型的logits,再进行解码。这能融合多模型的“集体知识”,提高预测的准确性和鲁棒性。

多个模型投票有效的核心假设:

  1. 错误独立性:各个模型的幻觉是不相关的,即它们不会同时犯相同的错误。如果所有模型都因为训练数据中相同的错误知识而产生相同的幻觉,投票将失效,甚至会强化该错误。

  2. 模型多样性:参与集成的模型应有足够差异性(不同架构、预训练数据、微调目标),以保证错误分布多样化。同质化严重的模型集成增益有限。

  3. 多数优于少数:在认知任务上,多个独立判断的平均通常优于单个判断。这要求各模型都有基础的事实能力,至少“正确”的概率要高于“随机”水平,否则集成噪声无意义。

局限性:

  • 计算成本倍增:集成多个大模型推理极慢且昂贵。

  • 共享的系统性偏见:若所有模型都受到某种文化偏见或知识截止的影响,集成无法消除这种系统性幻觉。

  • 输出融合的技术难度:开放式文本的语义整合远比分类任务复杂,直接投票可能选出语言不流畅的中间结果。

前景:实际应用中,更多采用轻量级集成,如用多个小模型做验证,或用模型自身的多次采样(Self-Consistency)模拟集成,在成本可控的同时利用多样性降低幻觉。


针对多模态幻觉,有哪些特化的缓解方法?(如视觉对比解码)

多模态幻觉(对象幻视、属性错误等)的缓解需要针对视觉-语言交互的独特机制,方法覆盖数据处理、模型架构、训练及解码等环节。

特化缓解方法:

(1)视觉对比解码(Visual Contrastive Decoding, VCD)

  • 原理:同时运行原始多模态模型和一个削弱了视觉输入的“盲”版本(例如,将图像替换为空白或噪声图像),在解码时,放大那些在原始模型中概率较高、但在盲模型中概率较低的token。这些token正是由真实视觉信息驱动的,而非单纯的语言先验。

  • 效果:有效抑制了模型在描述图像时过度依赖语言模式而编造物体(对象幻觉)的行为。因为如果某个物体在图像中不存在,原始模型和盲模型对它的预测概率会很接近,通过对比会被压制;而真正视觉存在的物体,原始模型会显著更高概率,被增强。

(2)强化视觉-语言细粒度对齐

  • 区域级特征匹配:在训练时,不仅对齐整张图像与文本,还要求模型对图像中的具体区域和文本中的对应短语(如物体描述)进行局部对齐。这使得模型学会将视觉信号绑定到特定词语,减少张冠李戴。

  • 负例对比学习:构造负样本(如篡改图文对:把猫的图片配上“狗”的描述),使用对比损失训练模型区分正确的图文配对,推动模型更加依赖视觉内容。

(3)视觉注意力引导与约束

  • 在生成描述时,强制模型的交叉注意力图聚焦于图像的高信息量区域,并对注意力分散或忽略显著区域的生成施加惩罚。这确保了“说其所见”。

  • 引入视觉指代理解任务作为辅助训练目标,提高模型对视觉细节的敏感度。

(4)视觉检索增强

  • 在生成描述前,利用图像检索技术在外部图库或知识库中查找相似图像及其可信描述,将这些描述作为辅助上下文输入模型,为视觉语言生成提供事实锚定,类似文本RAG。

(5)解码时的视觉一致性校验

  • 在生成片段后,用问答或蕴含模型反向验证:从生成的描述中提取实体,然后在图像上运行物体检测器,检查该物体是否真实存在。若不存在,则触发修正或重新生成。这是一种“视觉事实核查”。

(6)高分辨率与细节增强

  • 对象幻觉常源于视觉编码器对图像细节的丢失(如小物体、文字)。采用更高分辨率的视觉骨干、动态切块编码等技术,可以保留更多视觉信息,减少因“看不清”而导致的编造。

(7)训练数据净化与增强

  • 清洗多模态训练数据中图文不一致的噪声(如错误的alt-text),并使用高质量的合成数据(如详细场景图描述)进行强化训练,从源头上减少语言偏差。

通过上述组合策略,多模态模型能够更加忠实于视觉输入,显著降低对象、属性和关系等幻觉。