Leveraging External Knowledge for Historical Document Restoration via Retrieval-Augmented Large Language Models
Gabeen Kim, Kyeongpil Kang
ACL 2026 Findings of the As
cs.CL
2026-07-24
受损古籍里有近半数残字是命名实体(人名、地名等),光靠上下文猜不出;ARI 用 RAG 把外部史料检索进 LLM,命名实体还原准确率从 Qwen3-32B 的 5.57% 提到 27.85%,专家评审胜率 46% 居首。
韩国古籍《承政院日记》(Journal of the Royal Secretariat, JRS)里,有 4.19 万个字因年代久远而残缺,散落在 1.11 万份文档中。这些残字里有 44.8% 是命名实体,人名、地名、官职、年号这一类专有名词。
问题在于,现有的复原方法基本是掩码语言建模(masked language modeling),只看文档自身的上下文来猜空。这在补普通字时还行,可命名实体往往需要文档之外的历史知识。作者举了个英文例子:补「In 1492, Columbus first landed in [M]」里的 [M],你得知道这段历史,光看句子结构猜不出来。
框架叫 ARI(Archive Restoration Intelligence),把三样东西拼起来:预训练 LLM(Qwen3 32B/8B)自带的隐式历史知识、RAG 检索来的显式外部史料、以及在古汉语(Hanja)语料上的微调。
输入是结构化的:任务描述 + 时间元信息(在位国王、年月日)+ 检索到的相关文档 + 带位置标记 [Dn] 的残缺文本。RAG 这块做仔细的对照:BM25 检索优于基于 embedding 和随机的检索,最终检索 20 篇文档,并做 80% 相似度阈值的去重。基线是 BERT-Res(用扩展的 Hanja 词表从头训的 ModernBERT-large,25% 的 mask 优先落在命名实体上)。
在 JRS 上的消融清楚地展示了每个组件的贡献(以 Qwen3-32B 命名实体准确率为例):基线提示 5.57%,加元信息几乎没用(5.63%),加静态示例小幅到 6.27%,换成动态示例(BM25 检索)跳到 24.28%,再加去重到 27.85%。RAG + 去重两项加起来贡献了绝大部分增益。同一设置下普通随机掩码字的准确率从 13.37% 提到 61.45%。
| 配置(Qwen3-32B) | 命名实体准确率 | 普通字准确率 |
| 基线提示 | 5.57% | 13.37% |
| 动态示例(BM25) | 24.28% | 60.36% |
| 去重(80%) | 27.85% | 61.45% |
和闭源大模型比,未做 RAG 时 Sonnet 4.5 的命名实体准确率最高(13.30%),Gemini-2.5-Pro 9.57%,Kimi K2 6.53%;微调后的 ARI-32B 在命名实体和普通字两类上同时登顶,超过参数量大得多的闭源模型。
最有说服力的是专家评审。三位汉文文献与韩国史专家对 100 份真实残损文档打分,ARI-32B 的 Accuracy@1 是 38.3%、胜率 46%,高于 Gemini-2.5-Pro(27.3%/30%)和 BERT-Res(20.7%/24%),nDCG@10 也以 0.477 领先。
这是一篇典型的「老任务 + 新工具」的工作:古籍复原这个领域长期被 MLM 主导,RAG 几乎没人系统用过。它给出的可迁移结论是,任何「需要外部领域知识才能填的空」类任务,都可能从「检索 + LLM」里拿到大头收益,而且不必非得上最大的闭源模型。一个 32B 开源模型微调后就能反超。
对数字人文和档案机构,这是个能直接上手用的工具,代码已开源。
作者自己列了几条:构造数据集和真实残损文档之间可能有分布偏差;输入上限 4096 token,约 1.7% 的超长数据被滤掉;只用了文本模态,没有用原始文档图像的视觉特征;在时间跨度更远的语料(如早于训练集的《高丽史》)上,性能因语言历时变化而下降。训练成本也着实不低,ARI-32B 花了约 1500 个 H200 GPU 小时。
读完一个存疑点:专家评审只评了 100 份文档、三位专家,样本偏小;而 RAG 的增益高度依赖检索质量,论文在未见过的历时领域上性能下滑,正说明这个方法对「检索库里到底有没有相关史料」很敏感。