每个证据只存 1 个 Token:Latent Memory 如何重写 RAG 的压缩规则
RAG(检索增强生成)有个尴尬的真相:它确实让大模型能读外部资料了,但代价是——你检索回来的每一段文字、每一张图片,都要原封不动地塞进上下文窗口。10 段证据就是几千个 Token,加几张图直接上万。手机端的助手、边缘设备上的 AI,根本扛不住这种开销。
新加坡国立大学的这篇论文提出了一个粗暴但有效的思路:每个证据,不管文本还是图像,只存 1 个潜 Token。 不是压缩成短文本,不是摘要,而是压缩成一个高维向量——1 个 Token,2048 维或 4096 维,直接替代原始证据参与检索和生成。
听起来像黑魔法。但它真的 work。
一、传统 RAG 的瓶颈:检索和生成各说各话
现有 RAG 系统的流程是分裂的:
检索阶段用一个嵌入模型(比如 BGE、Qwen-Emb)把证据和查询编码成向量,在向量库里做相似度搜索。生成阶段却要把检索到的原始文本/图像完整喂给大模型。这意味着:
- 检索和生成发生在两个不同的表示空间
- 每检索一条证据,生成就得多付几百到几千个 Token
- 图像更惨——ViT 把一张图拆成 576 个视觉 Token,检索 5 张图就是近 3000 个 Token
Latent Memory 的做法是:从检索到生成,全部在同一个潜空间里完成。
二、1 个 Token 怎么装下一段文字或一张图?
答案是:它不"装",它"编码"。
用一个小压缩器(文本用 LLaMA-3.2-1B,多模态用 LLaVA-1.5-7B)读取证据,在输入开头加一个可学习的 [MEM] 标记,取模型最后一层的隐藏状态——这就是潜 Token。
$$ 证据 x_i + [MEM] → 压缩器 θ → z_i ∈ R^2048(或 4096) $$
这个潜 Token 不是给人看的,是给机器看的。它要在三个任务上同时达标:
1. 能重构——从 z_i 能还原出原始文本或图像的语义 2. 能检索——z_i 和问题查询在同一个空间可比 3. 能生答案——z_i 直接喂给大模型,生成的答案和用原始证据一样好
三个任务对应三个损失函数,联合训练。
三、三目标训练:不是妥协,是互相增强
论文的总损失是三项的加权和:
$$ \mathcal{L} = 0.5 \cdot \mathcal{L}_{\text{Recon}} + 0.2 \cdot \mathcal{L}_{\text{Contrast}} + 1.0 \cdot \mathcal{L}_{\text{Distill}} $$
重构损失:潜 Token 必须记得住
文本证据用自回归重建——给定 z_i,一个轻量解码器逐字还原原文:
$$ \mathcal{L}_{\text{Recon}}^{\text{text}} = -\sum_t \log P_\pi(x_{i,t} | x_{i,<t}, z_i) $$
图像证据不一样。直接重建像素太烧钱,论文选择重建 CLIP 图像嵌入:
$$ \mathcal{L}_{\text{Recon}}^{\text{img}} = \sum_i \|v_i - \text{MLP}(z_i)\|_2^2 $$
也就是说,潜 Token 不需要记住每个像素,只需要记住"这张图在 CLIP 空间里长什么样"。重构时从 CLIP 嵌入走预训练的 unCLIP 扩散模型还原图像。这很聪明——利用了已有的生成能力,不需要自己学图像生成。
对比损失:潜空间必须能检索
检索的本质是相似度匹配。论文把潜 Token 投影到一个 512 维的共享检索空间,L2 归一化后用内积计算相似度:
$$ e_{z_i} = \ell_2(\text{LayerNorm}(\text{Linear}(z_i))) \in \mathbb{R}^{512} $$
对比损失让问题查询只和它对应的证据拉近,和其他证据推远:
$$ \mathcal{L}_{\text{Contrast}} = \frac{1}{|M^+|} \sum_{e_{z_j} \in M^+} -\log \frac{\exp(e_q^\top e_{z_j} / \tau)}{\sum_{e_{z_k} \in M^+ \cup M^-} \exp(e_q^\top e_{z_k} / \tau)} $$
这里有个关键设计:查询也是用压缩器编码的,但不是同一套 LoRA。证据和查询共享压缩器 backbone,但各自有独立的低秩适配器。这样既统一了空间,又允许检索行为和压缩行为分别优化。
蒸馏损失:生成行为不能变
最狠的是这一项。论文不微调大生成器(LLaMA-3-8B、Mistral-7B、LLaVA-13B),而是要求潜 Token 提示的生成行为和原始证据提示完全一致。
具体来说,同一个问题,先用原始证据喂给大模型,得到 teacher 分布;再用潜 Token 喂给大模型,得到 student 分布。最小化两者的 KL 散度:
$$ \mathcal{L}_{\text{Distill}} = \sum_t \text{KL}\left( P(\cdot | a_{<t}^{\text{tea}}, Q, C^+, \phi) \,\|\, P(\cdot | a_{<t}^{\text{tea}}, Q, b_{z_1},...,b_{z_k}, \phi) \right) $$
这里 $b_{z_i} = W_g z_i$ 是把潜 Token 从压缩器维度映射到生成器维度的投影层。文本场景是 2048→4096,多模态是 4096→5120,中间夹一层 GELU。
蒸馏损失的权重是 1.0,最高。说明论文作者认为:让大模型"以为"它在读原始证据,这是整个方法成立的关键。
四、检索和生成:全部在潜空间闭环
Latent Memory 的完整流程是:
建记忆库时:所有证据过压缩器,每个产出 1 个潜 Token。存储成本从 MB 级降到 KB 级。
检索时:查询过压缩器的查询 LoRA,投影到 512 维检索空间,和内积找 top-k 潜 Token。
生成时:检索到的潜 Token 过投影层 $W_g$,变成生成器维度的向量,直接插入 inputs_embeds。大模型完全冻结,不需要任何微调。
$$ 查询 Q → 压缩器(查询LoRA) → e_q ∈ R^512 ↓ 内积检索 evidence_1 → z_1 → e_{z_1} top-k $$ ... $$ evidence_N → z_N → e_{z_N} ↓ z_1...z_k → W_g → b_{z_1}...b_{z_k} ↓ 插入 LLM inputs_embeds → 生成答案 $$
这整个流程里,没有任何一个原始字符或像素进入生成器。生成器看到的只有潜向量。这就是 Token 消耗能降 3-10 倍的原因。
五、实验结果:省 Token 还不掉性能
文本 QA(HotpotQA / 2Wiki / MuSiQue)
| 方法 | OOD 平均 EM | Token 数 |
|---|---|---|
| Full Context | ~22.0 | 1827 |
| BM25 (k=5) | ~22.0 | 209 |
| Dense (k=5) | ~23.0 | 208 |
| Qwen3-Emb (k=5) | ~24.0 | 219 |
| Latent Memory (k=5) | 16.5 | 71 |
仔细看论文表 1,Latent Memory 在单个数据集上的表现是波动的:HotpotQA 34.8/48.9(F1 不错),2Wiki 24.3/36.7(EM 最高),MuSiQue 8.7/19.2。OOD 平均 EM 确实不是最高,但作者强调的是效率-效果帕累托前沿——用 3 倍少的 Token,拿到接近最优的效果。
换 Mistral-7B 生成器时,Latent Memory 的 OOD 平均 EM 是 3.2,Qwen3-Emb-ft 是 2.9,这时候 Latent Memory 反而更高。说明压缩质量对生成器选择敏感。
多模态 WebQA(这是论文最亮眼的结果)
| 方法 | 图像 QA F1 | 文本 QA F1 | 平均 Token |
|---|---|---|---|
| Full Context | 0.0(崩了) | 6.0 | 10013 |
| Nemo-Emb (k=5) | 53.0 | 48.6 | 1257 |
| Latent Memory (k=5) | 69.4 | 30.7 | 83 |
这个结果的意义不只是数字好看。WebQA 的图像问答需要模型理解图片内容并和文本证据联合推理。Latent Memory 把图像压缩成 1 个潜 Token,但保留了足够的视觉语义——这说明潜 Token 确实编码了跨模态的抽象语义,而不是简单的检索 ID。
1 Token vs 8 Token 扩展
论文还试了每个证据用 8 个潜 Token(而不是 1 个),效果提升是线性的:
| k | 1-Token EM | 8-Token EM | Δ |
|---|---|---|---|
| 1 | 12.8 | 14.4 | +1.6 |
| 2 | 14.4 | 17.3 | +2.9 |
| 5 | 16.5 | 19.9 | +3.4 |
六、可解释性:潜 Token 不是黑盒
论文最有说服力的部分之一,是证明潜 Token 不是不可解释的神秘向量。
文本重构:从 z_i 走解码器可以还原出原始文本。论文报告交叉熵在 0.6-0.7 左右,说明重建质量较高。一个具体案例:原始证据是 "Window shopping: London's Burlington Arcade, which opened in 1819...",重构后保留了"三个展示窗"的计数信息——而正是这个计数信息帮助模型正确回答了问题。
图像重构:从 z_i 预测 CLIP 嵌入,再走 unCLIP 扩散模型还原图像。Figure 5 展示了原始图像和重构图像的对比——不是像素级精确,但语义内容(商店外观、招牌、橱窗布局)都保留下来了。
这意味着潜 Token 是语义可解释的信息载体,不是哈希值或随机 ID。你可以把它理解为一种"超浓缩的语义胶囊"——一粒药丸里装下了整段信息的精华。
七、工程实现的关键细节
冻结生成器,只训练压缩器
论文明确冻结了大生成器的权重,只训练:
- 压缩器的 LoRA(r=64, α=128)
- 查询编码的 LoRA
- 检索投影 MLP
- 生成投影 W_g
- 解码器的 LoRA
训练配置
| 参数 | 文本场景 | 多模态场景 |
|---|---|---|
| 压缩器 | LLaMA-3.2-1B | LLaVA-1.5-7B |
| 批次 | 8 × 梯度累积 4 | 2 |
| 训练时长 | ~20 小时 | ~30 小时 |
| 负样本 | 最多 8 文本 | 4 文本 + 4 图像 |
多模态的统一性
文本和图像用同一个压缩器处理,共享同一个潜空间。检索时不需要区分"这是文本证据还是图像证据"——它们在同一个 512 维空间里可比。这是传统多模态 RAG 很难做到的(文本嵌入和图像嵌入通常来自不同模型,空间不对齐)。
八、局限性:不是所有场景都适用
论文自己也坦承了几个限制:
1. 压缩是有损的。 1 个 Token 不可能保留原始证据的所有细节。对于需要精确引用原文的场景(比如法律文档、医学诊断),Latent Memory 可能不如原始 RAG 可靠。8 Token 扩展是折中方案。
2. 训练需要成对数据。 压缩器需要(问题,证据,答案)三元组来训练对比和蒸馏损失。对于没有标注问答对的领域,需要额外的数据构建成本。
3. 重构质量有限。 文本重构的交叉熵 0.6-0.7 说明还有信息丢失,图像重构是语义级而非像素级。如果应用需要精确复现原始证据,这条路走不通。
4. 检索空间维度低。 512 维的检索空间对大规模语料库(百万级文档)是否足够区分,论文没有验证。实验用的都是千级证据规模的 QA 数据集。
九、为什么这篇论文重要
Latent Memory 的价值不在某个单点突破,而在于它重新定义了 RAG 的压缩边界。
传统上我们认为检索到的证据必须原样喂给生成器,否则信息会丢失。这篇论文证明:只要训练得当,一个高维潜 Token 可以承载足够的信息,让生成器"以为"它在读原始证据。
这打开了几个可能性:
- 端侧 AI 助手:手机上的 RAG 不再受限于上下文窗口,几百个 Token 就能处理上百条证据
- 实时多模态问答:视频流、摄像头画面可以实时压缩成潜 Token,不需要逐帧过 ViT
- 长期记忆:个人知识库可以存成潜 Token 库,检索速度和存储成本大幅下降
答案是:能,而且玩得不错。
---
论文:Zhi Zheng, Ziqiao Meng, Hao Luan, Wei Liu, Wee Sun Lee. "One Token per Multimodal Evidence: Latent Memory for Resource-Constrained QA." arXiv:2606.10572.
#RAG #多模态 #大模型 #端侧AI #检索增强 #论文解读 #NLP #计算机视觉 #深度学习
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens