随着大语言模型在检索增强生成(RAG)系统中的广泛应用,一个日益突出的性能问题浮出水面:上下文窗口的持续扩展导致首个token生成延迟呈二次方增长,严重制约了系统的实时响应能力。传统RAG流程虽然简单直接——将查询编码为向量,从向量数据库中检索相似文本块,然后完整输入给LLM处理——但这种方法存在显著效率缺陷。大多数检索到的文本块包含大量无关内容,迫使LLM处理远超实际需求的token数量,这不仅浪费计算资源,还增加了延迟和上下文成本。
最近,Meta研究团队发布的REFRAG框架揭示了RAG系统的一个关键特征:跨段落注意力计算中高达99%的部分都是无效的。这一发现为性能优化提供了新的理论依据。REFRAG通过创新的压缩策略,成功实现了30.85倍的首token生成加速,同时保持了模型的准确性,为解决RAG性能瓶颈提供了切实可行的方案。

REFRAG的核心技术方案与传统RAG有着本质区别。传统方法直接将检索到的原始token输入生成模型,而REFRAG采用了一种分层处理策略:首先将上下文划分为固定大小的块,然后使用轻量级编码器(如RoBERTa)生成压缩的块嵌入,接着将这些嵌入与查询token一起输入解码器,最后通过强化学习策略选择性地展开重要的块。这种设计巧妙地将注意力计算的复杂度从token数量级降低到块数量级,在16倍压缩率下实现了16.53倍的加速,同时性能比现有方法提升了9.3%。
那么这和传统的重排器有何本质区别呢?

普通的带重排功能的RAG管道中,重排器仅仅在文本层面对块进行重新排序或修剪,并不改变输入LLM的表示形式。LLM仍然需要接收顶部几个块的完整文本,一个token都不能少。而REFRAG是在嵌入层面进行压缩、过滤和替换操作。它不让LLM消耗每个块的所有token嵌入,而是用一个压缩嵌入代表一个块,让强化学习策略动态决定哪些块值得扩展成完整形式。更重要的是,REFRAG将相关性过滤移到了LLM的表示空间,而不仅仅是检索空间。LLM本身被训练去理解压缩后的嵌入,并基于这些压缩表示进行推理,这从根本上改变了信息处理的方式。
研究团队在深入分析RAG系统注意力机制时,发现了一个重要特征:检索段落之间的注意力呈现明显的块对角结构。段落内部的token相互关注度很高,但跨段落的注意力几乎为零。这种稀疏性为压缩优化提供了坚实的理论基础。通过利用这种注意力模式,REFRAG能够在不损失关键信息的前提下大幅减少计算量。
在训练方法上,团队采用了课程学习策略。模型首先学习重建单个块,然后逐步增加到多个块。这种渐进式训练对于模型掌握压缩能力至关重要,使模型能够逐步适应从简单到复杂的压缩任务。此外,强化学习策略能够动态决定哪些内容块需要完整展开,实现了压缩率的自适应调整,使系统能够根据具体任务需求灵活调整处理策略。


在多个基准测试中,REFRAG展现了稳定的性能提升。在RAG任务中,在相同延迟条件下,性能比LLaMA提升1.22%(使用强检索器)到1.93%(使用弱检索器)。在多轮对话场景中,由于能够通过压缩保留更多历史上下文,在对话轮数增加时优势更加明显。在文档摘要任务中,REFRAG能够在同等计算预算下处理更多内容,显著提升了长文档处理的效率。

从工程落地角度来看,REFRAG还需要一些配套工作。为了增加跨查询复用,压缩后的块嵌入可以预先计算并存储在向量数据库中,支持跨查询复用。这种“随处压缩”的能力使其特别适合多轮对话和智能体应用场景。为了增加可解释性,需要解释哪些压缩上下文影响了最终答案。压缩管道需要有与检索系统类似的溯源机制,存储块哈希和版本信息,确保输出的可追溯性。同时,虽然强化学习策略提供了更好的性能,但固定压缩率的版本在实际部署中可能更加稳定可靠,特别是在对确定性要求较高的生产环境中。
REFRAG的成功表明,针对特定应用场景的优化十分有必要。就RAG系统而言,理解并利用其特有的注意力稀疏性,比笼统扩大上下文窗口更加有效。这种方法不仅解决了当前RAG系统的性能瓶颈,还为未来大模型在长上下文处理方面的优化提供了新的思路。随着大语言模型应用场景的不断扩展,类似REFRAG这样针对特定问题设计的优化方案将变得越来越重要,它们能够在保持模型性能的同时,显著提升系统的效率和实用性。
关注“鲸栖”小程序,掌握最新AI资讯
本文由鲸栖原创发布,未经许可,请勿转载。转载请注明出处:http://www.itsolotime.com/archives/8931
