论文阅读:REFRAG: Rethinking RAG based Decoding

181 阅读6分钟

论文地址:

arxiv.org/pdf/2509.01…

作者:1Meta Superintelligence Labs, 2National University of Singapore, 3Rice University ∗Work done at Meta

前言

今天阅读的这篇论文来自于Meta超级智能实验室,没错就是那个投入巨大的明星实验室。它们的首篇论文居然是关于优化RAG(检索增强生成)。RAG曾经被认为是解决模型结合实时动态知识库最佳解决方案。实际在实践过程中的确暴露出很多问题,随着Agent的发展甚至被认为RAG已死。速度慢、精度不高广受诟病。

image.png

传统RAG

要理解这篇论文的实现机制之前必须要先理解传统RAG的实现机制。

预处理:文本分块 -> 向量化(Embedding) -> 存向量数据库(通常还会存 Meta 信息,方便找到原始文本和位置) 检索:用户输入 -> 向量化 -> 向量数据库检索 -> 返回 Top-K 相关文本 生成:将 Top-K 相关文本和用户输入一起拼接成 Prompt -> LLM 生成 -> 返回结果

这样做,确实能解决不少问题,但也存在一些问题:

  • 绝大部分检索出来的内容其实和用户的问题并不相关。
  • LLM 被迫要处理大量无用的文本。
  • 计算成本高,速度慢,延迟长,上下文空间还被浪费了。

REFRAG

REFRAG的思路是“小模型帮大模型减负,大模型理解小模型的减负成果”。通过小模型帮助大模型预处理输入,帮助大模型做“筛选、压缩资料”的脏活累活。

信息压缩

模型理解压缩信息的核心逻辑是“针对性设计压缩规则+训练模型适配表示” — 揖让压缩后的信息保留核心语义、规律,又让模型学会读懂这种压缩形式,而非依赖先解压再处理的传统路径。针对REFRAG实现思路具体分三步:

  • 把长资料切分成“可压缩的小块”,保证每块不碎片化(每个小块需要时一个完整的内容,例如一个实事或者一个观点等)。

    首先将RAG中检索到的长文本,按照固定长度切成独立的快(chunk)。这么做的原因是:RAG的资料往往是多段关联性较低的文本。如果要直接要直接压缩会破坏文本顺序,打乱文本逻辑。如果切成一个小块会比较好的保留文本顺序避免夸快信息混乱。

  • 用“轻量的编码器”生成“压缩版信息标签”,保留核心语义

    每一个“信息快”,用一个简单的编码器压缩成一个固定维度的embeding — 可以理解成这个快的标签内容。

    这个标签并不是文本摘要而是一段数字向量,但这个向量中包含了这个信息快和核心语义(简单理解就是这句话的词向量)。

    为了让模型能够读懂这个“标签”,还会加一个“投影层”,目的是把这个编码器输出的向量调整成和大模型(gpt)的词向量格式一致(如 RoBERTa 的 768 维向量转成LLaMA 的 4096 维向量)。

    采用这种方式就可以把一个n个词“信息块”,通过压缩的形式转变成1个“标签向量”,长度直接缩小了16倍。

  • 让模型“学会同时使用压缩后的标签和完整信息”,会判断何时使用压缩版本信息

    • 基础训练。让模型用压缩标签尝试还原原始信息。
    • 强化学习。训练一个”判断策略“,让模型自动识别哪些压缩标签”足够用“,如果足够用就使用向量信息。哪些标签“足够重要”,如果非常重要就会使用原始信息。

任意位置压缩

传统压缩方法只能根据固定位置进行压缩。例如:文件开头压缩、摘要等。而使用REFRAG可以放在任意输入位置进行压缩(可以开头、中间或者结尾),模型依然能够理解。

因为每个压缩块的标签会记录“标记位置”,模型处理室会按照顺序解读不会搞乱先后顺序。

REF RAG 中小模型与大模型协作流程表

阶段负责角色核心任务输出结果是否依赖对方
1. 小模型独立训练轻量级编码器(如 RoBERTa)用海量文本训练,学会将 16 词 / 32 词的文本块,压缩成固定维度的语义向量(Chunk Embedding)能精准保留单块核心信息的 “压缩标签”不依赖
RL 选择策略模型用 “问题 + 资料块 + 大模型困惑度” 训练,学会判断资料块的重要性(重要则保留,不重要则压缩)能输出 “资料块是否需要压缩” 的判断结果仅参考大模型困惑度,非直接依赖
2. 大模型微调大模型 Decoder(如 LLaMA)输入 “问题 + 小模型的压缩标签 + 少量完整资料块”,学习从压缩标签中提取信息并生成回答具备 “读懂压缩标签 + 结合完整信息生成答案” 的能力依赖小模型的压缩标签
3. 实际任务协作轻量级编码器接收 RAG 检索到的长资料,按固定长度切块并生成对应压缩标签切好的 “资料块 + 压缩标签” 组合不依赖
RL 选择策略模型对 “资料块 + 压缩标签” 进行判断,筛选出需保留的完整块和可替换的压缩标签“完整块 + 压缩标签” 的混合输入序列不依赖
大模型 Decoder接收混合输入序列,结合问题生成最终回答,无需处理完整长资料高质量、低延迟的回答依赖小模型的筛选结果

优势

  1. 使用token更少,响应更快。
  2. 显存/KV压力变小,因为输入的内容更短。响应的可以增大并发。
  3. 吞吐更加稳定。随着注意力的增加,会导致吞吐不稳定。压缩向量后,每次计算都很轻量。

启发

  1. 或许未来模型之间的通信确实不再需要人类的语言。模型之间直接交换“向量+元数据”,这样的效率或许更高。

    1. 基于这个猜想,MCP目前主流通信方法,http+sse以及streamable+http或许会有调整。
    2. 未来人类对模型之间的通信可能越来越难以观察。
  2. 从论文方向上看,大模型获取真的已经到达一个瓶颈了。下一步的主战场在于应用以及工程化。

  3. 对于用词需要精确场景(医学、法律等),该方法可能不合适。