链载Ai

标题: Apple 入局 RAG:深度解析 CLaRa 框架,如何实现 128x 文档语义压缩? [打印本页]

作者: 链载Ai    时间: 前天 14:03
标题: Apple 入局 RAG:深度解析 CLaRa 框架,如何实现 128x 文档语义压缩?

在当前的检索增强生成(RAG)系统中,我们面临着一个经典的“不可能三角”:上下文窗口的限制、检索准确性与推理效率之间的矛盾。传统的 RAG 往往将检索器(Retriever)和生成器(Generator)作为两个割裂的系统进行优化,导致大量 Token 被粗暴地塞入上下文窗口,不仅造成了计算资源的浪费(Double Encoding),更引入了大量的噪声。

近日,Apple 与爱丁堡大学的研究团队联合发布了CLaRa (Continuous Latent Reasoning)框架。这是一种全新的“压缩原生”(Compression-Native)RAG 范式。CLaRa 不再检索原始文本,而是将文档压缩为“连续记忆 Token”(Continuous Memory Tokens),并在共享的潜在空间中同时执行检索与生成。本文将深度剖析 CLaRa 的核心架构、压缩机制及其在 16x 至 128x 压缩率下的惊人表现。


1. 核心理念:从“原始文本”到“连续记忆 Token”

传统的 RAG 流程是:Chunking -> Embedding -> Retrieval -> Top-K Raw Text -> Generation。 CLaRa 的核心改变在于,它认为原始文本并非机器理解的最佳载体

CLaRa 引入了一个语义压缩器(Semantic Compressor),为每个文档分配少量的“记忆 Token”(Memory Tokens)。这些 Token 不是简单的文本摘要,而是文档在潜在空间(Latent Space)中的深度语义表示。

1.1 显著压缩器预训练 (Salient Compressor Pretraining, SCP)

CLaRa 的基础模型采用了 Mistral-7B 架构,并利用 LoRA(Low-Rank Adaptation)适配器在“压缩器”和“生成器”两种角色间切换。

  1. **简单问答对 (Simple QA)**:覆盖原子事实。
  2. **复杂问答对 (Complex QA)**:强制模型进行多跳推理(Multi-hop reasoning)。
  3. **语义重述 (Paraphrases)**:在保留语义的前提下重组和压缩文本。

为了保证压缩质量,研究团队设计了一个验证闭环(Verification Loop):检查生成内容的事实一致性和覆盖率。如果不合格,会重新生成问题或重述,最多尝试 10 轮。

1.2 双重损失函数设计

在 SCP 阶段,模型通过两个关键的损失函数进行优化:


2. 统一架构:共享潜在空间的联合检索与生成

CLaRa 的最大创新在于打破了检索与生成的界限。在离线压缩完成后,文档在系统中仅以“记忆 Token”的形式存在。

2.1 查询推理器 (Query Reasoner)

系统在同一骨干网络(Backbone)上训练了一个“查询推理器”。这也是一个 LoRA 适配器,它的作用是将用户的自然语言问题映射为与文档相同数量的“记忆 Token”。

此时,检索过程回归到了最纯粹的Embedding 相似度计算

2.2 生成器的反向指导 (The Generator Teaches the Retriever)

传统 RAG 的痛点在于:检索器认为重要的文档,生成器未必觉得有用。CLaRa 通过一种巧妙的机制解决了这个问题:

  1. **前向传播 (Forward Pass)**:系统使用硬性的 Top-K 选择(Hard Top-K selection),选出最匹配的压缩文档。
  2. **反向传播 (Backward Pass)**:这是关键所在。系统利用Straight Through Estimator (STE)实现了一个可微的 Top-K 选择器。

通过 Softmax 分布,来自生成器(最终答案预测)的梯度可以流回查询推理器。 这意味着:生成器在通过梯度下降告诉检索器,“你应该检索哪些文档才能让我答对问题”。

代码逻辑解析 (Conceptual Logic)

虽然原文未提供完整 Python 代码,但其核心训练逻辑可抽象如下:

# 伪代码示意 CLaRa 的端到端训练流
deftrain_step(query, answer, candidate_docs):
# 1. 查询编码
query_tokens = query_reasoner(query)
# 2. 计算相似度 (检索)
doc_scores = cosine_similarity(query_tokens, candidate_docs.memory_tokens)
# 3. 可微 Top-K 选择 (关键 Trick)
# 前向传播选出具体的 docs,反向传播利用 softmax 梯度
selected_docs_Rep = differentiable_top_k(candidate_docs, doc_scores)
# 4. 生成答案
# 将查询和选中的压缩文档表示拼接
input_repr = concat(query_tokens, selected_docs_Rep)
prediction = generator(input_repr)
# 5. 计算损失 (仅使用答案的 Next Token Prediction Loss)
loss = cross_entropy(prediction, answer)
# 6. 反向传播:梯度从 Loss -> Generator -> Query Reasoner
loss.backward()

2.3 梯度分析的发现

研究团队对梯度流向的分析揭示了两个有趣的现象:

  1. 检索器被鼓励为那些能提高答案似然度(Likelihood)的文档分配更高概率。
  2. 生成器的梯度实际上在重塑潜在文档空间,使其更利于推理。

3. 性能评估:压缩率与准确率的博弈

CLaRa 在 Natural Questions, HotpotQA, MuSiQue 和 2WikiMultihopQA 四个数据集上进行了严格测试。

3.1 压缩质量对比 (Normal Setting)

在检索 Top-5 文档的常规设置下:

3.2 Oracle 设置下的惊人表现

当金标准文档(Gold Document)确保存于候选集中时:

3.3 端到端 QA 与检索行为


结语与技术选型建议

Apple 研究团队已在 Hugging Face 上发布了三个模型:CLaRa-7B-BaseCLaRa-7B-InstructCLaRa-7B-E2E。其中 Instruct 版本内置了 16x 和 128x 的文档压缩能力。

CLaRa 的出现标志着 RAG 技术的一个重要转折点:它不再将压缩和联合优化视为事后的补救措施,而是作为“一等公民”构建在系统核心。通过可微 Top-K 估计器和单一语言模型损失,CLaRa 证明了统一连续潜在推理(Unified Continuous Latent Reasoning)是替代传统“切片+检索”模式的可信方案。

对开发者的建议:






欢迎光临 链载Ai (http://www.lianzai.com/) Powered by Discuz! X3.5