RAG - 架构
RAG 架构分类

黑盒增强架构根据是否对检索器进行微调分为两类:无微调、检索器微调:
- 在无微调架构中,检索器和大语言模型都不进行任何微调,仅依靠它们在预训练阶段掌握的能力完成相应的检索和生成任务。
- 在检索器微调的架构中,语言模型参数保持不变,而检索器根据语言模型的输出反馈进行参数的针对性调整。
白盒增强架构根据是否对检索器进行微调分为两类:仅微调大语言模型、检索器与大语言模型协同微调
- 在仅微调大语言模型的架构中,检索器作为一个预先训练好的组件其参数保持不变;语言模型则根据检索器提供的相关信息进行参数调整。
- 在协同微调的架构中,检索器和大语言模型迭代交互、协同微调。
| LLM | 优点 | 缺点 |
|---|---|---|
| 黑盒增强(无微调)—— 最简单的架构 | 与LLM解耦,且易于实现计算成本最低 | LLM与检索器缺乏交互,RAG效果难保证 |
| 黑盒增强(检索器微调) | 更新检索器迎合LLM需求成本低,效果良好 | LLM参数固定,可能无法与检索器良好适配。 |
| 白盒增强(仅微调语言模型) | 优化语言模型生成能力,更好地利用检索到的外部信息 | 计算成本高;微调效果赖原生的检索器的性能 |
| 白盒增强(协同微调) | 检索器和LLM在训练中深度交互,不断优化RAG性能 | 计算成本高;实现过程复杂 |
黑盒增强(检索器微调)
REPLUG LSR 是检索器微调框架的代表性方法,其结构如图所示。

它使用大语言模型的困惑度分数作为监督信号来微调检索器,使其能更有效地检索出能够显著降低语言模型困惑度的文档。
其微调检索器的过程中采用KL 散度损失函数来训练检索器,目的是对齐检索到的文档的相关性分布与这些文档对语言模型性能提升的贡献分布。
此过程涉及两个关键的概率分布,
检索器输出的文档分布:检索器在接收到当前上下文后检索与之相关的文档,并形成一个文档概率分布。这一分布是基于检索器计算的上下文与文档之间的相似度,通过余 弦相似度来衡量,并将这些相似度分数转化为概率值。
文档对语言模型的贡献分布:语言模型为每个被检索到的文档和原始上下文来生成预测,最终所有输出结果形成一个概率分布。在这个分布中,如果某个文档对语言模型生成准确预测特别关键,它会被赋予更高的概率权重。
白盒增强(仅微调语言模型)
仅微调语言模型指的是检索器作为一个预先训练好的组件其参数保持不变,大语言模型根据检索器提供的上下文信息,对自身参数进行微调。
以 RETRO 为例,其结构如图所示。

- RETRO 首先将知识库中的文本进行切块,然后用 BERT 对每个文本块生成嵌入向量。
- 在微调模型时的自回归过程中,每当模型生成一段文本块后,就去知识库中检索出与之最相似的嵌入向量。
- 然后,这些嵌入向量和模型注意力层的输出一起被送入一个外部的Transformer 编码器进行编码。
- 得到的编码向量直接输入给模型的块交叉编码器的键(key)和值(value),以捕捉外部知识的关键信息。
- 通过交叉编码,模型能够结合检索到的相关信息来生成新的文本块。
白盒增强(协同微调)
Atlas 模型架构图:

Atlas 在预训练和微调过程中,
- 检索器和语言模型参数同步被更新,检索器学习向语言模型提供最相关的文档
- 语言模型则学习如何利用这些文档来改善其对查询的响应。
- 为了确保检索结果与模型最新状态保持同步,Atlas 同样需要定期更新语料库文档的向量编码,从而维持检索的准确性。
