检索增强生成(RAG) 优化策略篇

检索增强生成(RAG) 优化策略篇

一、RAG基础功能篇

1.1 RAG 工作流程

在这里插入图片描述
图1 RAG工作流程(with memory)

从RAG的工作流程看,RAG 模块有:文档块切分、文本嵌入模型、提示工程、大模型生成。

二、RAG 各模块有哪些优化策略?

  • 文档块切分:设置适当的块间重叠、多粒度文档块切分、基于语义的文档切分、文档块摘要。
  • 文本嵌入模型:基于新语料微调嵌入模型、动态表征。
  • 提示工程优化:优化模板增加提示词约束、提示词改写。
  • 大模型迭代:基于正反馈微调模型、量化感知训练、提供大context window的推理模型。

此外,还可对query召回的文档块集合进行处理,比如:元数据过滤[7]、重排序减少文档块数量[2]。

三、RAG 架构优化有哪些优化策略?

如何利用 知识图谱(KG)进行上下文增强?

典型RAG架构中,向量数据库进行上下文增强 存在哪些问题?

向量数据库进行上下文增强 存在问题:

  1. 无法获取长程关联知识
  2. 信息密度低(尤其当LLM context window较小时不友好)
如何利用 知识图谱(KG)进行上下文增强?
  • 策略:增加一路与向量库平行的KG(知识图谱)上下文增强策略。
    在这里插入图片描述

图2 基于KG+VS进行上下文增强

  • 具体方式:对于 用户 query,通过 利用 NL2Cypher 进行 KG 增强;
  • 优化策略:常用 图采样技术来进行KG上下文增强
  • 处理方式:根据query抽取实体,然后把实体作为种子节点对图进行采样(必要时,可把KG中节点和query中实体先向量化,通过向量相似度设置种子节点),然后把获取的子图转换成文本片段,从而达到上下文增强的效果。

Self-RAG:如何让 大模型 对 召回结果 进行筛选?

典型RAG架构中,向量数据库 存在哪些问题?

经典的RAG架构中(包括KG进行上下文增强),对召回的上下文无差别地与query进行合并,然后访问大模型输出应答。但有时召回的上下文可能与query无关或者矛盾,此时就应舍弃这个上下文,尤其当大模型上下文窗口较小时非常必要(目前4k的窗口比较常见)。

Self-RAG:如何让 大模型 对 召回结果 进行筛选?

在这里插入图片描述
图3 RAG vs Self-RAG

Self-RAG 则是更加主动和智能的实现方式,主要步骤概括如下:

  1. 判断是否需要额外检索事实性信息(retrieve on demand),仅当有需要时才召回;
  2. 平行处理每个片段:生产prompt + 一个片段的生成结果;
  3. 使用反思字段,检查输出是否相关,选择最符合需要的片段;
  4. 再重复检索;
  5. 生成结果会引用相关片段,以及输出结果是否符合该片段,便于查证事实。
    在这里插入图片描述
Self-RAG 的 创新点是什么?

Self-RAG 的重要创新:Reflection tokens (反思字符)。通过生成反思字符这一特殊标记来检查输出。这些字符会分为 Retrieve 和 Critique 两种类型,会标示:检查是否有检索的必要,完成检索后检查输出的相关性、完整性、检索片段是否支持输出的观点。模型会基于原有词库和反思字段来生成下一个 token。
在这里插入图片描述

Self-RAG 的 训练过程?

对于训练,模型通过将反思字符集成到其词汇表中来学习生成带有反思字符的文本。它是在一个语料库上进行训练的,其中包含由 Critic 模型预测的检索到的段落和反思字符。该 Critic 模型评估检索到的段落和任务输出的质量。使用反思字符更新训练语料库,并训练最终模型以在推理过程中独立生成这些字符。
在这里插入图片描述

为了训练 Critic 模型,手动标记反思字符的成本很高,于是作者使用 GPT-4 生成反思字符,然后将这些知识提炼到内部 Critic 模型中。不同的反思字符会通过少量演示来提示具体说明。例如,检索令牌会被提示判断外部文档是否会改善结果。

为了训练生成模型,使用检索和 Critic 模型来增强原始输出以模拟推理过程。对于每个片段,Critic 模型都会确定额外的段落是否会改善生成。如果是,则添加 Retrieve=Yes 标记,并检索前 K 个段落。然后 Critic 评估每段文章的相关性和支持性,并相应地附加标记。最终通过输出反思字符进行增强。

然后使用标准的 next token 目标在此增强语料库上训练生成模型,预测目标输出和反思字符。在训练期间,检索到的文本块被屏蔽,并通过反思字符 Critique 和 Retrieve 扩展词汇量。这种方法比 PPO 等依赖单独奖励模型的其他方法更具成本效益。Self-RAG 模型还包含特殊令牌来控制和评估其自身的预测,从而实现更精细的输出生成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xianghan收藏册

极简精品作,一分也是一份鼓励哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值