大号在练葵花宝典 发表于 4 天前

【大模型基础_毛玉仁】6.2 检索加强生成(RAG)架构



6.2 检索加强生成(RAG)架构

检索加强生成(RAG)系统是一个集成了外部知识库、检索器、生成器等多个功能模块的软件系统。针对差别的业务场景和需求,可以筹划差别的系统架构来 组合、和谐这些模块,以优化RAG的性能。
.
6.2.1 RAG 架构分类

思量到大语言模型的开源/闭源、微调成本等标题,RAG中的大语言模型可以是参数不可感知/调治的“黑盒”模型,也可以是参数可感知和微调的“白盒”模型。
从是否对大语言模型进行微调的角度出发,将RAG架构分类两大类:黑盒加强架构和白盒加强架构
图6.9: 检索加强架构分类图。
此中含蓝色雪花的模块表示其参数被冻结、带红色 火焰的部分表示微调时其参数被更新。
https://i-blog.csdnimg.cn/direct/c2353e90a12f43289db36d4b2408f7a4.png
黑盒加强架构, 根据是否对检索器进行微调分为两类:


[*] 无微调、
[*] 检索器微调。
白盒加强架构,根据是否对检索器进行微调分为两类:


[*] 仅微调大语言模型、
[*] 检索器与大语言模型协同微调(下文简称为协同微调)。
在RAG系统中,除了调整检索器和大语言模型,我们也可对其他功能模块进行调整。调整其他功能模块与黑盒加强和白盒加强的分类是兼容的。
.
6.2.2 黑盒加强架构

某些情况下,无法获取大语言模型的结构和参数大概没有充足的算力对模型进行微调,此时,RAG 必要在黑盒加强架构的基础上构建。
在黑盒加强架构中,仅可对检索器进行策略调整与优化。其可以分为无微调架构和检索器微调两种架构。
.
1)无微调

无微调架构中,检索器和语言模型经太过别独立的预练习后参数不再更新,直接组合使用。
In-Context RALM 是该框架下的代表性方法。其直接将检索器检索到的文档前置到输入标题前作为上下文。
检索操作时,几个关键参数:


[*] 检索步长:模型在生成文本时,每隔多少个词进行一次检索。直接影响到模型的相应速率和信息的即时性。
[*] 检索查询长度:用于检索的文本片段的长度,常被设为语言模型输入中的末了几个词,以确保检索到的信息与当前的文本生成任务高度相关。
.
2)检索器微调

在检索器微调架构中,大语言模型的参数保持不变,仅用其输出指导检索器的微调。
REPLUG LSR 是检索器微调框架的代表性方法,它使用大语言模型的狐疑度分数作为监督信号来微调检索器,使其能更有用地检索出可以或许显著降低语言模型狐疑度的文档。
此过程涉及两个关键的概率分布:


[*] 检索器输出的文档分布:检索器在接收到当前上下文后,检索与之相关的文档,并形成一个文档概率分布。
[*] 文档对语言模型的贡献分布:如果某个文档对语言模型生成准确预测特别关键,它会被赋予更高的概率权重。
REPLUG LSR 在微调过程中将语言模型视为黑盒,仅通过模型输出指导检索器练习,避免修改内部结构。同时采用异步索引更新策略,在肯定的练习步调之后才进行更新,降低索引更新频率以减少计算成本。
此外,检索器微调框架中还可以引入代理模型(如小型语言模型)来加强检索器的微调结果,从而在不微调目标语言模型的情况下提拔其在差别任务上的表现。
例如,AAR 方法通入引入额外小型语言模型,使用它的交叉注意力得分标注偏好文档,以此来微调检索器,使其可以或许在不微调目标语言模型的情况下加强其在差别任务上的表现。
.
6.2.3 白盒加强架构

通常,大语言模型和检索器是独立预练习的,二者可能存在匹配欠佳的情况。白盒加强架构通过微调大语言模型来共同检索器,以提拔 RAG 的结果。
白盒加强架构可根据是否对检索器进行微调分为两类:仅语言模型微调、检索器和语言模型协同微调。
.
1)仅微调语言模型

仅微调语言模型:


[*] 指的是检索器作为一个预先练习好的组件其参数保持不变,
[*] 大语言模型根据检索器提供的上下文信息,对自身参数进行微调。
RETRO 是仅微调语言模型的代表性方法之:


[*]该方法通过修改语言模型的结构,使其在微调过程中可以或许将从知识库中检索到的文本直接融入到语言模型中间状态中,从而实现外部知识对大语言模型的加强。
SELF-RAG:


[*]通过在微调语言模型时引入反思标记,使语言模型在生成过程中动态决定是否必要检索外部文本,并对生成结果进行自我批驳和优化。
图 6.12: RETRO 模型架构图
https://i-blog.csdnimg.cn/direct/dbd5e13f38e04ecc9feb10c5a0b2173c.png
以 RETRO 为例,其结构如图:


[*] RETRO 将知识库切块并用 BERT 生成嵌入向量。
[*] 在微调模型时的自回归过程中,模型生成一段文本块后,就去知识库中检索出与之最相似的嵌入向量。
[*] 然后,这些嵌入向量和模型注意力层的输出一起被送入一个外部的 Transformer 编码器进行编码。
[*] 得到的编码向量直接输入给模型的块交叉编码器的键(key)和值(value),以捕捉外部知识的关键信息。
[*] 通过交叉编码,模型可以或许结合检索到的相关信息来生成新的文本块。
.
2)检索器和语言模型协同微调

在检索器和语言模型协同微调的架构中,检索器和语言模型的参数更新同步进行。
这种微调的方式使得检索器可以或许在检索的同时,学习如何更有用地支持语言模型的需求,而语言模型则可以更好地适应并使用检索到的信息,以进一步提拔 RAG 的性能。
图 6.13: Atlas 模型架构图
https://i-blog.csdnimg.cn/direct/6b04747473de4379a37bea7d9df4eb1f.png
Atlas 是检索器和语言模型协同微调的架构的代表性工作,其架构如图所示。


[*] 与 REPLUG LSR 类似,其在预练习和微调阶段使用 KL 散度损失函数,来联合练习检索器和语言模型, 以确保检索器输出的文档相关性分布与文档对语言模型的贡献分布雷同等。
[*] 差别之处在于,Atlas 在预练习和微调过程中,检索器和语言模型参数同步被更新,检索器学习向语言模型提供最相关的文档,而语言模型则学习如何使用这些文档来 改善其对查询的相应。
为确保检索结果与模型最新状态保持同步,Atlas 同样必要定期更新语料库文档的向量编码,从而维持检索的准确性。
.
6.2.4 对比与分析

黑盒加强架构:闭源模型的背景下提出,限制了对模型内部参数的直接调整。两种策略如下:


[*] 无微调:简单实用,直接使用预练习的语言模型和检索器,不进行任何更新,适合快速摆设。缺点在于无法对语言模型进行优化以适应新的任务需求。
[*] 检索器微调:调整检索器来适应语言模型输出,无法修改语言模型的情况下,有了提拔性能的可能性。这种方法的结果在很大程度上取决于调整后的检索器的准确性。
白盒加强架构:使用开源模型优势,答应调整语言模型结构和参数,可更好和谐检索器和大语言模型。两种微调形式:


[*] 仅微调语言模型:根据检索到的信息仅调整语言模型结构和参数,以提拔特定任务上的性能。
[*] 检索器和语言模型协同微调:同步更新检索器和语言模型,使得两者可以或许在练习过程中相互适应,从而进步整体系统的性能。
尽管白盒加强架构可以有用改善 RAG 的性能,但也存在明显缺点。这种架构通常必要大量计算资源和时间来练习,特别是协同微调策略,必要大量的运算资源来实现语言模型和检索器的同步更新。
.
其他参考:【大模型基础_毛玉仁】系列文章
   声明:资源可能存在第三方来源,若有侵权请接洽删除!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【大模型基础_毛玉仁】6.2 检索加强生成(RAG)架构