文档应该住在哪里:上下文、表征还是参数里?

论文:*Where Should a Document Live: Context, Representations, or Parameters?* arXiv: 2609.17346(Amazon AGI)

论文:*Where Should a Document Live: Context, Representations, or Parameters?*
arXiv: 2609.17346(Amazon AGI)

一个实际的选择题

假设你有一个客服机器人,需要让它"记住"一万篇产品文档。你有三种选择:

1. 塞进上下文:每次回答时,把相关文档拼到 prompt 里(RAG) 2. 压成表征:把每篇文档编码成一个 KV-cache 前缀(Cartridge/Compaction),推理时拼接 3. 训进参数:用 LoRA 或全量微调,把知识"焊"进模型权重

三种方式各有优劣,业界也吵了很久。Amazon AGI 的一组研究者做了一件朴素但关键的事:在同一个模型、同一套数据、同一个评测上,把这三种方式正面对比一遍

结果出乎意料——没有赢家,只有三个不同的失败模式

实验设计:五数据集 × 五方法 × 多压缩率

研究者用 Qwen3-8B 作为基座,在五个数据集上测试:

  • LongHealth:临床病人记录(多选,长文档 11.7K tokens)
  • QASPER:学术论文 QA(抽取式,4.7K tokens)
  • QuALITY:小说/非小说阅读理解(多选,5.7K tokens)
  • FinQA:财报数值推理(数学计算,1K tokens)
  • TechQA:IBM IT 支持文档(抽取式,1.5K tokens)
方法覆盖:
  • ICL(上下文):把文档拼进 prompt
  • Cartridge(表征-KV):文档编码成 KV-cache 前缀
  • Compaction(表征-KV):另一种 KV 压缩方式
  • LoRA(参数-低秩):低秩适配器
  • MLP adapter(参数-MLP):MLP 适配器
  • Full fine-tuning(参数-全量):全量微调作为上界
每个方法都在 2×、10×、20×、50×、100× 五个压缩率上扫描,看性能-成本曲线。

发现一:单文档场景,Cartridge 性价比最高

在单文档场景(只问一篇文档的内容),Cartridge(KV-cache 前缀)在大多数数据集上以最小体积达到最高性能

以 LongHealth 为例:

  • Cartridge 2× 压缩:83.2 分,54 MiB
  • LoRA r=50:类似性能需要 509 MiB
  • Full fine-tuning:略高,但 3072 MiB
Cartridge 用 1/10 的体积达到了 LoRA 的效果,用 1/50 的体积达到了 Full FT 的 90%。这对工业部署是巨大的成本节省。

但 Cartridge 不是无敌的。在 FinQA(数值推理) 上,Cartridge 2× 只有 50.7 分,而 Full FT 能到 70+。数值推理似乎需要更深的参数级整合。

发现二:多文档组合,所有方法都崩了

真正的惊喜在多文档场景。研究者把 k 篇文档的表征/参数组合起来(KV 拼接 / 权重平均),看性能随 k=1,3,5,10 的变化。

Cartridge 在 k=3 时性能暴跌。以 FinQA 为例:

  • k=1:34.5 分
  • k=3:4.9 分(崩盘)
  • k=10:几乎随机
LoRA 和 MLP 也没好到哪去。权重平均(merging)在所有数据集上都崩——k=3 时性能掉到接近随机。

唯一能组合的是 Joint Training(联合训练):把 k 篇文档一起训练成一个适配器。但这就失去了"按需检索"的能力——你必须提前知道用户会问哪 k 篇。

这意味着:当前的知识注入方法,本质上都是"单文档优化"的。多文档组合是一个未解决的难题。

发现三:参数级注入会遗忘

研究者还测了"遗忘效应"——在注入新知识后,模型在通用基准(GSM8K、HumanEval、IFEval、MMLU)上的表现。

  • Cartridge/Compaction(表征):几乎不遗忘,因为不动模型权重
  • LoRA(低秩):轻量遗忘,r=8 时 MMLU 掉 1-2 分
  • MLP adapter:严重遗忘,bottleneck=192 时 GSM8K 从 80 掉到 24
  • Full fine-tuning:灾难性遗忘,所有基准都掉 10+ 分
这里有个反直觉的发现:LoRA 的"低秩约束"本身就是一种正则化。LoRA 和 MLP adapter 在相同参数量下,LoRA 遗忘更少。不是参数量决定遗忘,是约束结构决定遗忘。

论文原话:

"The low-rank constraint, rather than the number of parameters alone, as what accounts for preserving general capability."

发现四:压缩率对 Cartridge 几乎无害

Cartridge 从 2× 压缩到 100×,在 LongHealth 上只从 83.2 掉到 76.5。50 倍压缩,性能掉 8%。这是惊人的鲁棒性。

但 FinQA 是例外——从 50.7 掉到 22.1。数值推理对 KV 细节高度敏感,压缩就崩。

这个对比说明:KV-cache 压缩的损失不是均匀的。事实性 QA 能扛压缩,数值推理不能。这背后可能是:数值推理需要精确的数字位置编码,而 KV 压缩会模糊这些位置。

我的思考:知识注入的"三体问题"

这篇论文让我想到一个更深的框架。知识注入有三个维度的权衡:

1. 精度:知识被保留得多完整 2. 组合性:多份知识能否被同时激活 3. 持久性:新知识会不会冲掉旧能力

三种方法各自占据一个"角":

方法精度组合性持久性
上下文(ICL)完美
表征(Cartridge)完美
参数(LoRA/FT)极低
ICL 在三个维度上都是最优的——除了一个维度:成本。ICL 每次推理都要重新处理所有文档,token 成本爆炸。Cartridge 和 LoRA 的存在意义,是用"组合性"和"持久性"换"成本"。

但论文揭示了一个残酷的事实:这个交换比想象中昂贵。Cartridge 一旦进入多文档场景,组合性就崩了;LoRA 一旦多任务,持久性就崩了。

换句话说:当前所有"知识注入"方法,本质上都是在用 ICL 的某个维度换成本。没有 free lunch。

一个被忽视的洞察:联合训练是唯一出路?

论文里最值得玩味的发现是:Joint Training(联合训练)在多文档场景上显著优于 Merging(权重平均)

k=3 时,Joint Training 在 FinQA 上 13.0 分,Merging 只有 4.9 分。k=5 时差距更大。

但 Joint Training 有个致命限制:你必须提前知道用户会问哪几篇文档。这破坏了"按需检索"的 RAG 范式。

这让我想到一个假设:也许"知识注入"本身是个伪命题。真正的知识——需要组合、需要交叉推理的知识——可能只能放在上下文里。参数和表征适合"技能"(skill)和"风格"(style),但不适合"事实"(fact)。

论文没有明说这个结论,但数据指向这个方向。

局限性

1. 只测了 Qwen3-8B:不同架构(MoE、Decoder-only vs Encoder-Decoder)可能表现不同 2. 数据集偏 QA:生成任务、对话任务未测 3. Cartridge 训练成本未充分讨论:虽然推理便宜,但编码每篇文档需要一次前向传播 4. 多文档组合只测了拼接/平均:更复杂的组合方式(如 attention-level 路由)未探索

结语

这篇论文的价值不在于给出答案,而在于把问题摊开了。知识注入不是"哪种方法最好"的问题,而是"你愿意牺牲哪个维度"的问题。

下次有人告诉你"RAG 已死,微调才是未来"或"Cartridge 完爆 RAG",你可以把这篇论文甩给他。数据会告诉他:没有银弹,只有权衡


论文链接:https://arxiv.org/abs/2609.17346 HTML 版本:https://arxiv.org/html/2609.17346v1

👍 1

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens