知识级 Pull Request 持续改文档,跨语言维基 QA 从 29.5 升到 69.2

Knowledge Pull Requests for Continual Document Authoring

Alexander Martin, Benjamin Van Durme

cs.CL

2026-09-23

KPR 把来源拆成原子主张、过滤冲突再按节改写。跨语言维基 QA 平均 69.2,高于原文 29.5;7B 拿修订稿也超过带搜索的前沿模型。

这篇在解决什么

维基百科、技术文档、情报报告都不是写完就停的东西。新来源、别的语言、后来的时间会不断冒出该写进去的知识。现有两条路都不干净:拿原稿和新源一起让模型改,改完不知道加了哪条事实、盖掉了哪条;或者像 Deep Research 那样每次从零重生,旧稿当算力浪费掉。维基自己的 diff 也只记词变了什么,不记知识变了什么。每月百万级编辑,审稿人很难判断一次改动是补事实、纠过时,还是和现有内容打架。

软件工程用 Pull Request 解决过同类问题:提议可检、可讨论、可合并。这篇把同一套纪律搬到文档上,叫 Knowledge Pull Request(KPR)。

方法

输入是一份主文档加一组来源。流水线三步,模型统一用 Qwen3.5-27B:

产出物叫 ChangeLog:主张提案管「知识改了什么」,diff 管「文字怎么改」。

对照三条基线。ConText 改编自 WiNELL,按节用原始源文本改写,不做主张过滤。ConClaim 用来源主张,但不过覆盖、冲突、相关这三道门。Scratch 丢掉旧稿、从来源一次性重生,只用在 RAGTIME。实验里没有真人审稿,标成冲突的主张一律不写入。

任务两个。修订:MegaWika 2.0 上把英语维基当主文档,其他语言版本当来源,世界没变,补上别的语言已经写过的知识。更新:在 RAGTIME 上造三组两轮报告,时间切分、跨轮冲突、信息对半分,模拟查询驱动报告该怎么跟新源走。

结果

维基文章质量用 MiRAGE。KPR 的信息精度 InfoP 0.878,保留召回 InfoR-R 0.950,新增召回 InfoR-A 0.891。ConText 是 0.837 / 0.946 / 0.716,ConClaim 0.853 / 0.943 / 0.786。过滤主张把「加进去多少」拉起来了,保留率大家都不低。

当 grounding 文档做问答:

设置闭卷英语原文ConTextConClaimKPR
En-QA 平均35.892.087.688.087.7
Multi-QA 平均36.929.548.458.569.2

英语题上三种改写都比原文略掉,彼此差不到 0.5。跨语言题上原文还不如闭卷,因为事实根本不在英语页里;KPR 把平均分拉到 69.2。

最难的 100 道跨语言题(所有稠密开源模型闭卷都不会)上,Sol-5.6 带网页搜索得 38,问题翻成源语言再搜得 41;同一模型 grounding KPR 修订稿得 62。OLMo-3-7B 拿 KPR 稿得 50,已经超过带搜索的前沿模型。知识是公开、可被索引的其他语言维基,搜索就是挖不出来。

审稿成本:KPR 连续编辑块 Click 11.2,原文保留 97.3%,篇幅约 2.3 倍。ConClaim 生成 token 更少,但 Click 25.3,审的是更碎的改动。

RAGTIME 三组里 KPR 的保留召回和新增召回都最高。冲突组 ConText 精度掉到 0.666;KPR 把冲突主张扣下,精度 0.811、新增召回 0.571,没有被改写时的暗箱裁决带偏。从零重生的 Scratch 精度高,但新增召回最低(时间切分组只有 0.223),原文只保住约 37%。

为什么重要

主张比段落更适合当「该不该写进去」的单位,这点事实性评估里早就清楚。这篇把它用到持续写作上:先过滤再改写,加进去的多,该留的也留着,改动还聚成整块,人能审。对本地小模型尤其实在,7B 配一份 KPR 修订稿,比把问题丢给带搜索的前沿模型更能挖到只存在于其他语言的知识。Deep Research 类系统每次从零重生,在这里是最贵、加得最少的那条路。

局限与存疑

分解、分类、路由、改写全是 LLM 调用。编辑成本指标量的是成品 diff,不是中间算力;规模化刷维基会贵,作者也说可用轻量编码器替换分类和路由。实验没有真人审稿,ChangeLog 好不好审、人能不能比纯文本 diff 更快更准,都没测。冲突主张直接扣下,等于把「信谁」这个问题绕开了。RAGTIME 的节结构是后加的,不是报告原生大纲。

术语

原文与代码

相关论文

全部论文解读