Meta发现:RAG系统太慢是做了太多无用功

发布于 2025-10-17 07:27
浏览
0收藏

你的 RAG 系统慢,可能是因为在做太多无用功。

最近,Meta 的研究团队发布了 REFRAG 框架,证明了一个关键发现:在 RAG 系统中,99% 的跨段落注意力计算都是浪费的。

随着上下文窗口不断增长,首个 token 的生成延迟呈二次方增长,这成为了 RAG 系统的性能瓶颈。REFRAG 通过一种新的压缩策略,实现了 30.85 倍的首 token 生成加速,同时保持了模型的准确性。

核心技术方案

Meta发现:RAG系统太慢是做了太多无用功-AI.x社区

传统RAG流程很简单:查询来了,编码成向量,从向量数据库里找相似的文本块,然后一股脑塞给LLM。这种方法能工作,但代价不小。大多数检索到的块包含无关文本,LLM必须处理远多于需要的token,这在算力、延迟和上下文上都在白白花钱。

REFRAG 的核心思路是不将检索到的原始 token 直接输入生成模型,而是采用以下策略:

  1. 将上下文划分为固定大小的块
  2. 使用轻量级编码器(如 RoBERTa)生成压缩的块嵌入
  3. 将这些嵌入与查询 token 一起输入解码器
  4. 通过强化学习策略选择性地展开重要的块

这种设计使得注意力计算的复杂度从 token 数量降低到块数量。在 16 倍压缩率下,系统实现了 16.53 倍的加速,同时性能比现有方法提升了 9.3%。

那么这和重排器有啥不同呢?


Meta发现:RAG系统太慢是做了太多无用功-AI.x社区

普通的带重排的RAG管道,重排器只是在文本层面对块重新排序或修剪,并不改变输入LLM的表示形式。LLM仍然会一个token不落地接收到顶部几个块的完整文本。

而REFRAG是在嵌入层面进行压缩、过滤和替换。它不让LLM消耗每个块所有的token嵌入,而是用一个压缩嵌入代表一个块,让RL策略决定哪几个块值得扩展成完整形式。更重要的是,REFRAG将相关性过滤移到了LLM的表示空间,而不仅仅是检索空间。LLM本身被训练去理解压缩后的嵌入并基于其进行推理。

创新点

研究团队发现 RAG 系统的一个重要特征:检索段落之间的注意力呈现块对角结构。段落内部的 token 相互关注度高,但跨段落的注意力几乎为零。这种稀疏性为压缩优化提供了理论基础。

在训练方法上,团队采用了课程学习(Curriculum learning)策略。模型首先学习重建单个块,然后逐步增加到多个块。这种渐进式训练对于模型掌握压缩能力至关重要。此外,强化学习策略能够动态决定哪些内容块需要完整展开,实现了压缩率的自适应调整。

实验验证

Meta发现:RAG系统太慢是做了太多无用功-AI.x社区


Meta发现:RAG系统太慢是做了太多无用功-AI.x社区

在多个基准测试中,REFRAG 展现了稳定的性能提升:

  • RAG 任务:在相同延迟条件下,性能比 LLaMA 提升 1.22%(强检索器)到 1.93%(弱检索器)
  • 多轮对话:由于能够通过压缩保留更多历史上下文,在对话轮数增加时优势更加明显
  • 文档摘要:在长文档处理任务中,REFRAG 能够在同等计算预算下处理更多内容

Meta发现:RAG系统太慢是做了太多无用功-AI.x社区

小结

在实际工程落地层面,也需要一些工作。比如:

为了增加跨查询复用,压缩后的块嵌入可以预先计算并存储在向量数据库中,支持跨查询复用。这种"随处压缩"的能力使其特别适合多轮对话和智能体应用场景。

为了增加可解释性,解释哪些压缩上下文影响了答案。压缩管道需要有检索一样的溯源机制,存储块哈希和版本信息。

同时,虽然强化学习策略提供了更好的性能,但固定压缩率的版本在实际部署中可能更加稳定可靠。

总的来说,REFRAG 的成功表明,针对特定应用场景的优化十分有必要。就 RAG 系统而言,理解并利用其特有的注意力稀疏性,比笼统扩大上下文窗口更加有效。

论文:https://arxiv.org/abs/2509.01092

本文转载自​​AI工程化​​,作者:ully

收藏
回复
举报
回复
相关推荐