AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


高级 RAG(Self-Reflective RAG)
发布日期:2024-04-11 20:28:08 浏览次数: 1781


概述

由于大多数 LLMs 只是定期对大量公共数据进行训练,因此他们无法访问的最新信息和/或私有数据。检索增强生成 (RAG) 是应用程序开发中 LLM 的核心范式,通过连接到 LLMs 外部数据源来解决这个问题。基本的 RAG pipeline 包括 embedding 用户查询、将相关文档检索到查询中,以及将文档传递给 LLM 以生成基于检索上下文的答案。

简单来说,就是把相关的内容从知识库中查询出来,然后扔给 LLMs ,最后基于检索内容生成最终结果反馈给用户。

缺点是,查出来的内容经常可能和问题不相关或者不是很有用的内容,导致生成的内容不符合预期。

在上图的流程中,当回答不满意的时候,无法进行上述调整。在这种情况下,我们实际的操作是需要去重新做一些迭代或对问题进行优化,或对内容进行一定的筛选或排序,重新回到某个节点,然后进行一定的优化,再重新执行一遍,直到我们在一定的判断条件下得到一个满意的结果,这样就可以得到一个更好的输出,如下图所示:

RAG 的认知体系结构

在实践中,发现实现 RAG 需要围绕这些步骤进行逻辑推理:例如,我们可以询问何时检索(基于问题和索引的组成),何时重写问题以便更好地检索,或者何时丢弃不相关的检索文档并重新尝试检索?引入了 Self-Reflective RAG,提出了使用 LLM 自我纠正质量差的检索和/或生成思想。

基本的 RAG 流程仅使用一个链:根据检索到的文档 LLM 确定要生成的内容。

一些 RAG 流使用路由,例如,根据问题 LLM 在不同的检索器之间做出决定。但是 Self-Reflective RAG 通常需要某种反馈,重新生成问题和/或重新检索文档。

状态机是第三种支持循环的认知架构,它非常适合于此:状态机只是让我们定义一组步骤(例如,检索、分级文档、重写查询)并设置它们之间的转换选项;例如,如果我们检索到的文档不相关,则重写查询并重新检索新文档。

Corrective RAG (CRAG)

CRAG 核心是检索到相关文档后,使用 LLMs 进行评估,分类三类 Correct、Incorrect、Ambiguous:

  • 通过 LLMs 进行检索评估(retrieval evaluator)来评估查询检索文档的整体质量,并为每个文档返回置信度分数。
  • 如果vectorstore检索被认为不明确或与用户查询无关,则执行基于 Web 的文档检索以补充上下文。
  • 通过将检索到的文档划分为“知识条”,对每个条带进行分级,并过滤不相关的条带,对检索到的文档进行知识细化。

可以将其表示为如下图

  • Correct:将 Correct 文档传递给 LLM 以生成基于检索上下文的答案。
  • Incorrect:基于 Web 的文档检索以补充上下文传递给 LLM 用以生成答案。
  • Ambiguous:两者都传递给 LLMs 作为上下文信息用以生成答案。

简化步骤如下图:

Self-Reflective RAG

核心思想:要有自主的判断,当判断觉得结果不是很满意的时候,要形成一个环,要能再次的对之前的步骤进行优化。

  • Retrieve token 决定使用 D 输入 x (question) OR x (question) , . y (generation) 输出为 yes, no, continue
  • ISREL token 决定段落 D 是否与 x d in D 的输入 ( x (question) , d (chunk) ) 相关。输出为 relevant, irrelevant 。
  • ISSUP token 决定每个块的LLM D 生成是否与该块相关。输入为 x , d , y for d in D 。它确认了 中 y (generation) 所有值得验证的语句都得到 d 的支持。输出为 fully supported, partially supported, no support 。
  • ISUSE token 决定从 中的 D 每个块生成是否是对 x 的有用响应。输入为 x , y for d in D 。输出为 {5, 4, 3, 2, 1}.

我们可以将其概述为简化的图形来理解信息流:

详细内容如下图:

总结

Self-Reflective 可以大大提高 RAG,从而能够纠正质量差的检索或生成。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询