← 返回 2026-04-28

为什么微调会诱发幻觉以及如何修复 Why Fine-Tuning Encourages Hallucinations and How to Fix It

Guy Kaplan, Zorik Gekhman, Zhen Zhu, Lotem Rozner, Yuval Reif, Swabha Swayamdipta, Derek Hoiem, Roy Schwartz 📅 2026-04-16 👍 25 2026-07-13 08:36
SFT 事实遗忘 幻觉抑制 持续学习 自蒸馏 表征干扰

把 SFT 幻觉重新解读为事实遗忘,并给出参数冻结与自蒸馏两类缓解方案。

前置知识

监督微调 SFT

在大模型预训练后,用有标签数据继续训练以适配下游任务或注入新事实的标准做法。文中指 SFT 在 QA 数据上同时承担学习格式和事实两类信号。

全文的现象与缓解都建立在 SFT 同时承担任务学习和事实学习的双重角色之上,区分两类信号是读懂后续实验的钥匙。

持续学习与灾难性遗忘

持续学习研究顺序训练时旧知识被新任务覆盖的问题,常见工具包括参数正则、replay、蒸馏和架构隔离。文中把 SFT 遗忘放入该框架。

作者的整套缓解方案(冻结 attention、自蒸馏)都直接借鉴自持续学习文献,没有这一背景就难以判断新颖性边界。

自蒸馏 Self-Distillation

用同一模型较早的快照作为冻结 teacher,用 KL 散度约束 student 不偏离原输出分布,损失形如 $\mathcal{L}=\mathcal{L}_{task}+\lambda\,\mathcal{L}_{distill}$。

它是本文缓解 SFT 幻觉的主要工具,温度 $\tau=0.5$ 与 $\lambda=1$ 的具体取值是结果可复现的关键。

SLiCK 事实分类

Gekhman et al. (2024) 提出的四档分类法,在多次随机 few-shot 配置下统计模型是否稳定答对,从而把世界知识切成 HighlyKnown 到 Unknown。

全文的 DKnown、DUnk、DHeld 三组数据划分都来自 SLiCK,没有它就无法把任务学习与事实可塑性分离开。

Transformer 模块角色分工

FFN 被认为储存事实键值对,attention 负责把实体 token 与属性 token 关联,模型中部层(如 Qwen2.5 的 layer 14)常保留最丰富的事实表征。

文中 Table 1 的分组冻结实验与 Figure 5 的 layer 14 cosine drift 都依赖这一模块-功能映射,是机制论证的基础。

研究动机

标准监督微调在注入新事实的同时会以约 15% 的幅度降级模型在已学事实(DHeld)上的准确率,这一现象在 Gekhman et al. (2024) 的实验中已被观察到。Qwen 2.5(1.5B/8B)与 Llama 3.1(8B)在 ENTITYQUESTIONS 上做 SFT 时,模型在 1 到 2 个 epoch 内迅速学会 QA 格式,DKnown 接近 1.0、DHeld 峰值可达 0.93,随后随 DUnk 上升而系统下滑约 15 个百分点;当把 DUnk 从训练集中彻底去掉(Only Known)时 DHeld 几乎不下降,说明遗忘源自事实注入而非微调本身。但已有研究或将其归因为“行为克隆”或归因为“容量受限”,都无法区分这一关键场景:为何全新事实会出现而格式学习不会?也没有给出可操作的缓解方案,所以业界在私域/对齐微调中只能继续接受事实回退的副作用。

本文的目标是本文目标有三:其一,把 SFT 诱发的幻觉重新框定为持续学习框架下的事实遗忘,让事实稳定性成为 SFT 设计中的一阶目标;其二,针对两种现实场景给出可操作方案——当不需要新事实时(如对齐、私域)通过选择性参数冻结抑制事实可塑性,当确实需要新事实时(如领域适配)通过自蒸馏约束输出分布漂移,把 DHeld 的回退幅度从约 15% 压到约 3%;其三,给出可证伪的机制解释:在全局容量限制、行为克隆与局部表征干扰三个候选假说中,用语义相似度可独立控制的合成切片实验加 layer 14 隐层 drift 度量定位主因,最终结论是“表征重叠驱动的局部干扰”而非容量或行为克隆。

与已有工作不同的是,与既有工作相比,本文的独特切入在于把幻觉问题切到事实遗忘层再做机制定位。Gekhman et al. (2024) 记录现象但未给机制;Zhu et al. (2025)、Shenfeld et al. (2026) 把自蒸馏用于多模态或任务级稳定性,但未把它在事实级上的有效性跟表征变化联系起来;Allen-Zhu & Li (2024) 的容量说与 Zhang et al. (2024) 的行为克隆说都未在合成数据上做语义相似度切片。本文设计的关键合成变量是 P17 单关系下的键类型:semantic key(把真实城市名片段拼成 Bergadena 类)与 UUID key(Loc_fcfb46ee 类),前者与既有城市共享表征邻域、后者不应有重叠。即便在 1e6 事实规模下 UUID 造成的 ∆DHeld 仍接近 0,与语义键形成尖锐对照——这是单纯容量或行为克隆说都无法解释的,也是全文最关键的判别证据。

核心方法

方法沿“现象—缓解—机制”三段推进。现象侧用 SLiCK 把 ENTITYQUESTIONS 切成 DKnown(任务学习)、DUnk(事实可塑性)、DHeld(事实稳定性)三组,同步评测以解耦格式学习与事实注入。缓解侧:不需新事实时按 $\theta_S \in \{\text{Attention}, \text{FFN}, \text{All}\}$ 分组冻结;需新事实时先用 DKnown 训 1 epoch 冻结为 teacher $\theta_i$,再以 $\mathcal{L}=\mathcal{L}_{task}+\lambda\,\mathcal{L}_{distill}(\theta;\theta_i)$($\lambda=1, \tau=0.5$)续训。机制侧用 semantic vs UUID 键控制重叠度,并在 10K 设定下取 layer 14 hidden state 算 $R_{D_i}=\mathbb{E}[1-\cos(H_0^{(14)}, H_i^{(14)})]$。

核心创新是把事实可塑性—稳定性权衡同表征重叠度直接挂钩,并据此设计可区分三种候选假说的合成实验。已有蒸馏/正则方案多停留在“约束权重不要走太远”层次,本文发现梯度量级匹配的 ℓ2 正则仍让 DHeld 下降约 10 个百分点,无法复制自蒸馏收益,说明自蒸馏之所以有效不是因为步长小,而是在输出分布层面约束了哪些 token 的概率会被推动:当新事实的输出与旧事实共享部分 token 表征时,限制这个分布恰好能阻断干扰沿共享通道回传到旧实体。结合 synthetic-key 实验,这把“事实遗忘”从模糊的容量问题转化为“表征邻居里的梯度串扰”问题,并在 layer 14 中间层用 1 − cosine drift 量化:纯 SFT-on-semantic 涨到约 11%,UUID key 与 self-distillation 都停在约 5%,多出的约 6 个百分点即可被独立归因到 overlap-driven interference。

方法步骤详情

(1) 数据:SLiCK 用 20 次随机 few-shot 把 ENTITYQUESTIONS 分成 HighlyKnown/Unknown 四档,各采 8000 题做 DKnown 与 DUnk,DHeld 取自 dev split。(2) 基线:lr = 5e-5,分别在 DKnown ∪ DUnk 与 DKnown-only 上训,按 epoch 记录三 split 准确率。(3) 缓解:(i) 分组冻结只更新 Attention 或 FFN;(ii) 自蒸馏 teacher = epoch=1 快照,KL 散度约束 student 与 teacher 在 $M(y)$ 非 padding token 上的输出分布。(4) 机制:对 P17 生成两组键——语义键(Bergadena)与 UUID 键(Loc_fcfb46ee),规模 $10^3$–$10^6$,每档训完测 $\Delta D_{Held}$,并比较 SFT-on-semantic / SFT-on-UUID / self-distillation 三条 layer 14 drift 曲线。

技术新颖性

技术新颖性体现在三点。第一是把 SLiCK 的四类标签从分类工具升级为任务学习—事实可塑性—事实稳定性三轴分离的实验脚手架,为后续事实遗忘研究提供统一坐标系。第二是首次在 SFT 幻觉链上把自蒸馏从通用正则升级为针对表征干扰的精确干预,并通过同实验设置下的梯度匹配 ℓ2 正则证伪“步长小就够了”的解释,凸显 KL-级别的输出分布约束才是关键。第三是用 semantic-vs-UUID 键构造提供了一种可独立变化“语义相似度”和“规模”两个变量的合成实验模板——这是直接回应此前“是否容量受限”长期争议的有力切片;并把抽象的“干扰”落到 layer 14 的 1 − cosine drift ≈ 5% vs ≈11% 的可观测差距上,让表征重叠导致遗忘从叙事变成可证伪证据。

实验结果

(1) 现象:标准 SFT 在 DHeld 上相对峰值回退约 15%;Only Known 设定下 DHeld 几乎不降,证明遗忘由事实注入驱动。(2) 参数分组(Table 1):Attention-only 时 DUnk ≈ 0.010、DKnown = 0.946、DHeld = 0.931(接近 Only Known 上限 0.958);FFN-only DUnk ≈ 0.94 / DHeld ≈ 0.78,印证事实主要储存在 FFN。(3) 自蒸馏(Figure 3):DHeld 仅回退约 3%,DUnk 仍按正常节奏学会,把稳定性—可塑性同时拉满。(4) 机制(Figure 4、5):UUID 键在 $10^3$–$10^6$ 任意规模下 $\Delta D_{Held}$ 均接近 0–4%,语义键随规模急升;layer 14 的 $1-\cos$ drift 显示 UUID 与自蒸馏都停在约 5%,SFT-on-semantic 涨到约 11%,多出 ≈6 个百分点即 overlap-driven interference 的可量化签名。

Training only attention layers reduces factual forgetting across parameter subsets.
Table 1: Training only attention layers reduces factual forgetting across parameter subsets.
Self-distillation effectively acquires new facts while largely preserving held-out performance.
Figure 3: Self-distillation effectively acquires new facts while largely preserving held-out performance.
Semantic similarity, not scale alone, drives forgetting: UUID vs name-like keys across 1e3–1e6 facts.
Figure 4: Semantic similarity, not scale alone, drives forgetting: UUID vs name-like keys across 1e3–1e6 facts.
Hidden-state drift trajectories: structural interference at layer 14 under SFT on semantic keys.
Figure 5: Hidden-state drift trajectories: structural interference at layer 14 under SFT on semantic keys.
查看结构化数据
任务指标本文基线提升
SFT 后事实稳定性(DHeld accuracy) Held-out 准确率相对峰值的回退幅度(↓ 越少越好) ≈3%(自蒸馏,Qwen 2.5-1.5B 主结果) ≈15%(Gekhman et al. 2024 与本文复现的标准 SFT) 绝对下降幅度从 ≈15% 压到 ≈3%,相对降幅约 80%,且 DUnk 几乎不被牺牲。
事实稳定性与可塑性解耦(Table 1:参数分组) DUnk / DKnown / DHeld 三轴准确率 Attention-only: DUnk=0.010, DKnown=0.946, DHeld=0.931 All-params: DUnk=0.946, DKnown=0.990, DHeld=0.780;Only Known 上限 DHeld=0.958 在不注入新事实的前提下达到接近 Only Known 上限的事实稳定性,是参数级最便宜的基线。
机制可分性(UUID vs semantic,Figure 4) ΔDHeld 在 1e3–1e6 事实规模下 UUID: ΔDHeld ≈ 0–4%,几乎不随规模放大;semantic: ΔDHeld 随规模急剧上升 Gekhman et al. (2024) 仅在真实关系上报告,未做规模切片 在数量级跨度更大的合成设置下把“语义重叠≠容量”的证据补齐,证伪纯容量说。

局限与改进

作者在论文中显式或隐含的局限有四。其一,实验集中在非推理模型 Qwen 2.5(1.5B/8B)与 Llama 3.1(8B)上,附录 B 仅称“趋势一致”而未公开完整数字,结论是否在 reasoning 模型或 ≥70B 规模上仍成立未确证。其二,事实源局限在 ENTITYQUESTIONS 的稀疏关系 triplet 和合成 P17 上,真实 SFT 多伴随上下文、风格、长文档与多跳推理,是否还能由冻结 attention 或自蒸馏守住未验证。其三,机制证据依赖 layer 14 的隐层 drift,未在早期 attention、晚层 MLP 或不同尺寸上做系统消融,“layer 14 作为事实签名层”的稳健性有限。其四,自蒸馏 teacher 取自 epoch=1 快照且 λ=1、τ=0.5 为单点配置,附录 D 提到要做敏感性但文中未给出数字,调参成本对实际部署仍是不确定项。

独立分析的弱点

独立观察仍可补强的弱点有四条。第一,自蒸馏 teacher 的选择(epoch=1 快照)与「什么时候 snapshot」高度耦合——若先训更长 epoch teacher 会携带格式噪声,太短 teacher 又未掌握格式;本文给出经验值但未提供启发式原则,落地要重新调参。第二,缓解方案只在“参数冻结”和“自蒸馏”两条线,没有在持续学习其它经典工具(replay buffer、EWC 类参数正则、PEFT 通道隔离)上做横向基准对比,所以“是否蒸馏特别适合事实遗忘”并未被独立证实,它可能只是“参数位移约束”中更有效的一种实现。第三,机制证据建立在 DUnk 几乎 100% 学到的合成数据上,把“学到”和“干扰”两个变量解耦得很干净,但与真实 SFT 中边学边忘的场景差距较大,外推时需谨慎。第四,DHeld 仅作为预训练事实代理,未在 relation 类型、实体频次、国家/语言等细粒度上切片,因此哪一类预训练事实最容易因 SFT 失效仍是开放问题。

未来方向

可延伸的研究方向分四层。能力维度:把同一框架推广到 reasoning 模型(CoT 微调后是否仍存在事实遗忘)和 ≥70B 大模型,并在 DPO/RLHF/RLAIF 等 post-training recipe 下重测,结论对工业 SFT 更具指导性。架构维度:用 LoRA / adapter 类通道隔离替代或叠加自蒸馏,看是否能把事实稳定性做到几乎零参数共享;并把层选择(layer 14)改成可学习 gating,让模型自动定位事实最敏感的层。任务维度:把 ENTITYQUESTIONS 换成多跳 QA、长文档事实 QA、代码/API 事实类任务,验证结论能否覆盖非稀疏关系。机制维度:构造“语义渐变”键(name-like → 字母扰动 → UUID 三档)做更细粒度的 overlap 度量,并配合 probing 与 circuit-level 分析锁定到底哪些 attention head 主导干扰传播,把“自蒸馏为何生效”做成更形式化的梯度—logits 衰减率解释。

复现评估

复现评估整体难度中等。数据:ENTITYQUESTIONS 与 SLiCK 均公开(Sciavolino et al., 2021;Gekhman et al., 2024),SLiCK 代码也公开,主要成本是 20 次随机 few-shot 的 GPU 推理,单卡数小时可完成。代码:超参披露完整——learning rate = 5e-5、teacher = epoch=1 快照、$\lambda=1, \tau=0.5$、batch size 等核心数值写在正文,模型用 Qwen 2.5 与 Llama 3.1-8B 公开权重。算力:主结果在 Qwen 2.5-1.5B 上完成,单卡 A100 80GB 可跑;附录 B 的 8B 扩展需要更高显存,但未见分布式训练详细描述。技术门槛集中在自蒸馏实现——同时管理 teacher/student 两份权重与前向图、正确写 KL 散度的 non-padding mask;附录 E 给出合成键的语义/UUID 生成算法,对合成实验复现至关重要。整体看作者披露的细节足够让研究者独立复现主要结论。