AnyEdit++: Adaptive Long-Form Knowledge Editing via Bayesian Surprise¶
会议: ICML 2026
arXiv: 2606.01053
代码: 论文称 GitHub 可用,但本地缓存未包含具体 URL
领域: 知识编辑 / 长文本知识编辑
关键词: 贝叶斯惊讶, 自适应分块, 长文本知识编辑, 结构独立性, 因果局部性
一句话总结¶
AnyEdit++ 用 token 级 Bayesian Surprise 找到长文本中的语义转折点,把 AnyEdit 的固定窗口切分改成结构感知的 Bayes-Chunk,并在数学、代码、新闻、诗歌等长文本知识编辑任务上稳定提升 BLEU 与 BERT Score。
研究背景与动机¶
领域现状:知识编辑希望在不重新训练整个大模型的前提下,把某条事实或一段知识写入模型参数,同时尽量不破坏无关知识。ROME、MEMIT、AlphaEdit 这类 locate-and-edit 方法通常把编辑定位到若干关键层的 FFN 输出矩阵,通过优化一个局部扰动或目标 value,让模型在看到特定 subject / relation 时生成新的 object。
现有痛点:这套范式在三元组事实上很自然,但面对数学推导、代码片段、新闻叙事、诗歌等长文本知识时会遇到容量瓶颈。长文本不是一个单点事实,而是一串有内部依赖的语义单元;如果仍然把整段知识压进一个扰动向量,模型很容易出现生成坍塌、逻辑链断裂或只记住局部片段。
核心矛盾:AnyEdit 已经把长文本编辑拆成自回归的多段编辑,用多个 anchor key 和扰动共同写入模型权重,缓解了单点编辑的长度限制。但 AnyEdit 的分段方式是固定窗口切分,窗口边界不理解语义结构,可能把函数定义、数学条件、结论或叙事转折硬切开。这样得到的 anchor key 既可能语义含混,也可能与相邻片段高度相关,导致多个编辑在同一个权重更新里互相干扰。
本文目标:作者要解决的不是重新设计整套知识编辑算法,而是回答长文本编辑中的两个更细的问题:第一,长文本应该在哪里切分,才能让每个片段更独立;第二,切分之后应该把编辑控制信号注入到哪个位置,才能更有效地影响后续生成。
切入角度:论文观察到,语言模型读一段文本时,内部信念状态并非平滑移动;在新论点、新事件、代码结构切换或推理跳步处,模型对下一个 token 的预期会发生明显变化。Bayesian Surprise 正好可以量化这种“信念被改写”的强度,因此高惊讶点天然适合作为语义边界。
核心 idea:用模型自身的 token 级惊讶值替代固定窗口长度,把长文本切成更符合语义转折的片段,并把编辑扰动放在高惊讶片段的前一个 token 上,从而降低跨片段 crosstalk、增强局部控制。
方法详解¶
AnyEdit++ 的主体很克制:它保留 AnyEdit 的 autoregressive editing 和 MEMIT 式闭式权重更新,只替换“如何切段”和“如何选 anchor”的部分。这个设计使得它更像一个 plug-and-play 的分段模块,而不是一个完全新的编辑器。
整体框架¶
输入是一条需要写入模型的长文本知识,例如一段数学 CoT、代码实现、新闻叙事或诗歌。模型先在原始序列上计算每个 token 的 surprisal,得到一条信息密度曲线。随后 Bayes-Chunk 从这条曲线中选择局部峰值作为分段边界,把文本划分成若干语义单元。对于第 \(j\) 个 chunk,系统使用边界前一个 token 的隐藏状态作为 anchor,在目标层优化一个局部扰动 \(\delta_j\),使模型在该 anchor 之后更倾向于生成当前 chunk。所有 chunk 的 key-value 目标对收集完毕后,再用 MEMIT / AnyEdit 的多编辑闭式更新一次性写入目标权重矩阵。
更具体地说,标准 locate-and-edit 方法通常构造一个 key \(k\) 和目标 value \(v^*\),再更新 FFN 输出矩阵 \(W_{out}\),让 \(W_{out}k\) 更接近 \(v^*\)。AnyEdit 把这个过程扩展为多段:第 \(t\) 段有自己的 anchor key \(k_t\) 和扰动 \(\delta_t\),最后得到编辑数据集 \(D_{edit}=\{(k_t,v_t)\}_{t=1}^{M}\)。AnyEdit++ 没有改变这个求解器,只是让 \(k_t\) 来自语义边界,而不是固定长度窗口的末端。
关键设计¶
-
Bayes-Chunk 自适应语义切分:
- 功能:根据 token 级 Bayesian Surprise 选择长文本中的分段边界,避免固定窗口把完整语义单元切碎。
- 核心思路:模型在处理前缀 \(y_{<t}\) 时有一个先验信念分布 \(\pi_t\),看到 \(y_t\) 后更新为 \(\pi_{t+1}\)。理论上的 Bayesian Surprise 可以写成 \(D_{KL}(\pi_{t+1}\|\pi_t)\),实践中用信息惊讶值 \(S(y_t)\approx -\log P(y_t|y_{<t};\theta)\) 近似。Bayes-Chunk 选取 surprisal 曲线中的高峰,并按位置排序形成边界集合 \(B=\{b_1,\ldots,b_M\}\)。
- 设计动机:固定窗口只保证每段长度相近,不保证每段语义完整。高 surprisal token 往往对应论证转折、代码结构变化或叙事新事件,围绕这些点切分更容易得到内部一致、相互区分的片段。
-
结构独立性降低跨片段干扰:
- 功能:解释为什么语义边界能让多段编辑更稳定,核心是让不同片段的 anchor key 更接近正交。
- 核心思路:多段编辑的闭式更新可以看成多个 rank-1 更新的叠加。论文给出的 crosstalk bound 表明,第 \(j\) 个片段受到其他片段干扰的上界与 \(\sum_{t\neq j}\|\delta_t\|_2\cdot |k_t^T A k_j|\) 成正比,其中 \(A\) 是预训练统计对应的 precision matrix。如果两个片段的 key 相似度高,求解器难以区分它们,就会发生覆盖或串扰。
- 设计动机:Bayes-Chunk 切出的片段在语义 embedding 和真实 anchor key 空间里都更分散。论文在 EditEverything 上报告平均跨片段相似度从固定窗口的 0.594 降到 Bayes-Chunk 的 0.509,并用 key heatmap 展示了更弱的 off-diagonal 相关性。
-
因果局部性选择边界前驱 anchor:
- 功能:确定编辑扰动应该注入到高 surprisal 片段的前一个 token,而不是任意历史位置。
- 核心思路:对于目标 token \(y_t\),论文定义位置可控性 \(\kappa(i\to t)=\|\nabla_{h_i}L(y_t)\|_2\)。理论分析认为,在 Transformer 残差流中,从 \(t-1\) 位置向上反传是近似保幅的“垂直通道”,而从更早的 \(t-k\) 位置影响目标 token 必须穿过 attention 权重分配,信号会被上下文稀释。因此对任意 \(k>1\),有 \(\Delta\kappa_k=\kappa(t-1\to t)-\kappa(t-k\to t)>0\)。
- 设计动机:高 surprisal token 是语义轨迹即将转弯的位置,前一个 hidden state 是最直接的控制入口。把扰动放在这里,比在远处历史 token 上施力更省参数、更少副作用,也更符合 AnyEdit 的“上一段末尾控制下一段生成”逻辑。
损失函数 / 训练策略¶
AnyEdit++ 的优化分两层。局部层面,对每个 Bayes-Chunk 得到的片段,系统优化扰动 \(\delta_t\),使加入扰动后的 FFN 输出能够最大化当前 chunk 的生成概率,同时条件化之前的片段和已经优化的历史扰动。全局层面,把所有 \((k_t,v_t)\) 目标对放进 MEMIT 式最小二乘更新,目标是在满足编辑片段的同时,通过协方差统计 \(C\) 约束保持通用知识。实验中,作者为了公平比较,让 AnyEdit 和 AnyEdit++ 都以 MEMIT 作为基础编辑算法;此外还把 Bayes segmentation 接到 FT-UKE 上,验证它不只服务于 MEMIT 路线。
实验关键数据¶
主实验¶
论文主要使用 EditEverything、UnKE、CounterFact 三类数据集。EditEverything 覆盖数学、代码、物理、化学、生物、新闻、诗歌七个长文本领域;UnKE 和 CounterFact 则用于检验方法在传统非结构化问答和事实编辑 benchmark 上是否仍然有效。指标采用 BLEU 和基于 all-MiniLM-L6-v2 的 BERT Score,前者偏重表面匹配,后者偏重语义相似度。
| 模型 | 方法 | EditEverything 平均 BLEU | EditEverything 平均 BS | 相对 AnyEdit 的主要变化 |
|---|---|---|---|---|
| Llama-3.1-8B-Instruct | MEMIT | 42.61 | 82.74 | 传统三元组编辑器明显不足 |
| Llama-3.1-8B-Instruct | AnyEdit | 72.64 | 94.23 | 固定窗口长文本编辑已经显著提升 |
| Llama-3.1-8B-Instruct | AnyEdit++ | 75.00 | 94.50 | BLEU +2.36,BS +0.27 |
| Llama-2-7B | AnyEdit | 42.30 | 86.33 | 较弱模型上固定窗口更脆弱 |
| Llama-2-7B | AnyEdit++ | 50.13 | 87.66 | BLEU 接近 +8,BS +1.33 |
| Qwen-2.5-7B-Instruct | AnyEdit | 81.81 | 95.28 | 强推理模型上 baseline 已较强 |
| Qwen-2.5-7B-Instruct | AnyEdit++ | 85.33 | 96.29 | BLEU +3.52,BS +1.01 |
这张表最重要的信息不是单个数字,而是提升模式:AnyEdit++ 在三个模型上都超过 AnyEdit,且在 Llama-2-7B 这种更容易被长文本编辑压垮的模型上收益最大。论文还特别指出,Math 和 Code 类别的收益更明显;例如 Code 类别中,Llama-2-7B 上 AnyEdit++ 比 AnyEdit 高将近 20 个 BLEU 点,说明结构化、强逻辑文本更需要语义感知分块。
| 方法 | UnKE BLEU | UnKE BS | CounterFact BLEU | CounterFact BS | 平均 BLEU | 平均 BS |
|---|---|---|---|---|---|---|
| MEMIT | 24.76 | 76.50 | 32.21 | 75.79 | 28.49 | 76.15 |
| AlphaEdit | 21.34 | 73.86 | 23.51 | 72.42 | 22.43 | 73.14 |
| AnyEdit | 79.02 | 95.88 | 86.27 | 97.85 | 82.65 | 96.87 |
| AnyEdit++ | 81.57 | 96.03 | 90.69 | 98.29 | 86.13 | 97.16 |
Reference benchmarks 说明 AnyEdit++ 不只是针对 EditEverything 调参。即便在更接近传统知识编辑的数据上,Bayes-Chunk 也没有损害基础编辑能力,平均 BLEU 从 AnyEdit 的 82.65 提升到 86.13,BERT Score 也小幅上升到 97.16。
消融实验¶
论文没有把 Bayes-Chunk 的每个内部步骤做成标准 w/o 表,但提供了两类很关键的分析:结构独立性分析和把 Bayes segmentation 接到 FT-UKE 的 plug-and-play 验证。
| 分析项 | 固定窗口 / 原方法 | Bayes-Chunk / 加入 Bayes 后 | 说明 |
|---|---|---|---|
| EditEverything 跨片段平均语义相似度 | 0.594 | 0.509 | Bayes-Chunk 切出的片段更独立,理论上更少 crosstalk |
| Llama-3.1-8B 上 FT-UKE 平均 BLEU / BS | 99.90 / 99.99 | 99.95 / 99.99 | 原方法已接近饱和,Bayes segmentation 仍有微小增益 |
| Qwen-2.5-7B 上 FT-UKE 平均 BLEU / BS | 99.52 / 99.93 | 99.57 / 99.96 | 表明分段策略可迁移到 fine-tuning-based editing |
| QwQ-Edit 长 CoT 数学数据 | AnyEdit 作为对照 | AnyEdit++ 在长度和逻辑密度分组上均更高 | 越长、越强逻辑的数据越能体现结构切分价值 |
关键发现¶
- Bayes-Chunk 的收益与文本结构强度相关。数学推导和代码生成中,固定窗口更容易切断条件、缩进、函数定义或结论,因此自适应边界带来的提升更大。
- BERT Score 的提升普遍小于 BLEU,因为 AnyEdit 已经能保持相当高的语义相似度;AnyEdit++ 更明显改善的是精确生成和结构细节。
- 结构独立性实验为方法提供了比普通 case study 更强的证据:如果 anchor key 的相似度降低,多段编辑的闭式更新确实更不容易互相覆盖。
- QwQ-Edit 的额外实验很有价值。作者构造了 300 条长 CoT 数学样本,并按长度和逻辑密度分组,展示 AnyEdit++ 在所有分组上都压过 AnyEdit,说明它不是只在中等长度样本上有效。
亮点与洞察¶
- 最巧妙的地方是把“文本切分”从工程超参变成模型内部状态的读数。固定窗口长度很难跨任务调好,而 surprisal 曲线直接反映当前模型觉得哪里出现了信息跃迁。
- 理论部分和方法部分咬合得比较紧。结构独立性解释为什么要切在语义边界,因果局部性解释为什么编辑要放在边界前驱位置,两者分别对应“切哪里”和“改哪里”。
- 方法的增量成本相对可控。它不需要额外训练一个边界检测器,也不引入检索库或外部记忆,只要用目标 LLM 计算 token 概率即可得到 surprisal。
- 对其他任务也有启发:凡是需要把长序列拆成多个可控单元的场景,例如长 CoT 蒸馏、长文档 preference editing、代码补丁学习,都可以考虑用模型 surprisal 来替换固定长度 chunk。
局限与展望¶
- 论文没有专门展开失败案例或负面结果,更多强调 Bayes-Chunk 的稳定收益。对于哪些类型的文本会让 surprisal 峰值误判边界,例如高频格式符号、公式噪声或 tokenization 异常,文中讨论还不够充分。
- 计算 surprisal 需要额外前向过程。相对完整编辑成本这可能不大,但在超长文档或大规模批量编辑中,分段前的概率扫描仍然会增加时间和显存开销。
- 方法默认目标模型自己的惊讶值能反映有用的语义边界。如果模型本身对某个领域不熟,或者在代码、数学符号上 token 概率校准较差,Bayes-Chunk 可能切到表面稀有 token,而不是真正的结构转折。
- 实验指标以 BLEU 和 BERT Score 为主,能反映生成相似度,但对知识编辑更关心的 locality、portability、多跳一致性和长期副作用还可以做更细粒度评估。
- 未来可以把 Bayes-Chunk 与层选择、动态 chunk 数量、编辑后验证器结合起来,让系统不只决定边界,还能根据每个片段的难度分配不同的编辑强度。
相关工作与启发¶
- vs ROME / MEMIT: ROME 和 MEMIT 主要面向短事实,把 subject 对应的 key 映射到新 object 的 value。AnyEdit++ 继承 MEMIT 的闭式权重更新,但把编辑对象扩展为多个长文本片段,重点解决多段 key 之间的干扰。
- vs AlphaEdit: AlphaEdit 强调在 null-space 中约束编辑,减少对无关知识的破坏;AnyEdit++ 关注的是长文本分段拓扑,让编辑目标本身更容易被求解器区分。两者的问题层级不同,潜在上可以组合。
- vs AnyEdit: AnyEdit 的贡献是把任意长度知识拆成自回归编辑序列,AnyEdit++ 的贡献是指出固定窗口是该框架的薄弱环节,并用 Bayes-Chunk 让 chunk 边界与语义转折对齐。
- vs FT-UKE: FT-UKE 走 fine-tuning-based editing 路线,但仍可能使用固定长度或简单切分。论文把 Bayes segmentation 接上 FT-UKE 后也有提升,说明“结构感知切分”可以作为更通用的长文本编辑组件。
- 启发: 长文本知识编辑的核心难点不只是“写入更多 token”,而是“把一段知识拆成对参数更新友好的控制单元”。这篇论文的价值在于把 chunking 从外围预处理提升成了影响编辑稳定性的关键建模选择。
评分¶
- 新颖性: ⭐⭐⭐⭐☆ 用 Bayesian Surprise 做长文本编辑分段并不复杂,但和结构独立性、因果局部性结合后形成了清晰的新问题定义。
- 实验充分度: ⭐⭐⭐⭐☆ 覆盖三种 LLM、EditEverything、UnKE、CounterFact、QwQ-Edit 和 FT-UKE 迁移实验,缺少更细的失败案例与 locality 评估。
- 写作质量: ⭐⭐⭐⭐☆ 方法主线清楚,理论动机完整,但部分公式和表格排版在缓存文本中较拥挤,局限讨论偏少。
- 价值: ⭐⭐⭐⭐☆ 对长文本知识编辑很实用,也给长序列切分提供了可复用思路;真正落地时还需要评估额外 surprisal 计算和边界误判成本。