RAG - Retrieval augmented generation 任务初探

RAG - Retrieval augmented generation 任务

支持多种数据类型(图像、文本、表格)的问答是 RAG 的一项圣杯任务。

什么是RAG

基于检索的方法从外部知识源(如数据库、文章或网站)访问和提取信息。生成模型擅长生成连贯且与上下文相关的文本。RAG 能够协调这两个组件,创造一种共生关系,使其能够深入理解用户查询并产生不仅准确而且上下文丰富的响应。

RAG 通过在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程,极大地提升了内容的准确性和相关性。RAG 有效地缓解了幻觉问题,提高了知识更新的速度,并增强了内容生成的可追溯性,使得大型语言模型在实际应用中变得更加实用和可信。RAG 的出现无疑是人工智能研究领域最激动人心的进展之一。

RAG 的一般步骤

  • 首先接收和处理用户输入。

  • 分析用户输入以了解其含义和意图。

  • 利用基于检索的方法访问外部知识源。这丰富了对用户查询的理解。

  • 使用检索到的外部知识来增强理解力

  • 利用生成功能来制定响应。确保回复准确无误、与上下文相关且连贯。

  • 将收集到的所有信息结合起来,产生有意义且类似人类的响应。

  • 确保有效地将用户查询转换为响应。

上下文

LLMs可以通过至少两种方式获取新信息:

  1. 权重更新(例如,微调)
  2. RAG(检索增强生成)

后者通过提示将相关上下文传递给LLM。RAG对于事实回忆具有特殊的前景,因为它将LLMs的推理能力与外部数据源的内容结合起来,这对于企业数据来说尤其强大。

提升RAG的方法

目前为止,已经有一系列的增强 RAG 的方法:

  1. 基础 RAG,在嵌入文档块上进行Top K检索,返回的内容作为 LLM 的上下文。
  2. 摘要嵌入,在嵌入文档摘要上进行Top K检索,用完整的文档,作为 LLM 的上下文。
  3. 窗口化,在嵌入式块或句子上进行Top K检索,用扩展窗口或者完整的文档,作为 LLM 的上下文。
  4. 元数据过滤,通过元数据过滤块进行的Top K检索。

  1. 微调RAG嵌入,在您的数据上微调嵌入模型,在实践中,这个是很有必要的。使用 LangChain 的微调指南:blog.langchain.dev/using-langs…

检索增强生成 ( RAG ) 的应用

RAG 在各个领域找到多功能应用,增强了不同环境中的 AI 功能:

  1. 聊天机器人和人工智能助手:RAG 驱动的系统在问答场景中表现出色,从广泛的知识库中提供上下文感知和详细的答案。这些系统能够与用户进行信息量更大、更具吸引力的交互。
  2. 教育工具:RAG 可以通过为学生提供基于教科书和参考资料的答案、解释和其他上下文来显着改进教育工具。这有助于更有效的学习和理解。
  3. 法律研究和文件审查:法律专业人士可以利用 RAG 模型来简化文件审查流程并进行高效的法律研究。RAG 协助总结法规、判例法和其他法律文件,节省时间并提高准确性。
  4. 医疗诊断和保健:在医疗保健领域,RAG 模型是医生和医疗专业人员的宝贵工具。它们提供最新的医学文献和临床指南,有助于提供准确的诊断和治疗建议。
  5. 语言翻译与上下文:RAG 通过考虑知识库中的上下文来增强语言翻译任务。这种方法可以带来更准确的翻译,考虑到特定的术语和领域知识,这在技术或专业领域特别有价值。

这些应用程序突出了 RAG 对外部知识源的集成如何使 AI 系统能够在各个领域表现出色,提供上下文感知、准确和有价值的见解和响应。

mp.weixin.qq.com/s/4zAvvgJEh…

langchain原理

LangChain 可以轻松管理Embedding向量知识库与LLM的交互,将多个组件链接在一起,是个很火的大语言模型开发框架。

核心流程图解

从文档处理角度来看,实现流程如下:

github.com/imClumsyPan…

综述:Retrieval-Augmented Generation for Large Language Models: A Survey

一个典型的 RAG 案例如图所示。如果我们向 ChatGPT 询问 OpenAI CEO Sam Atlman 在短短几天内突然解雇随后又被复职的事情。由于受到预训练数据的限制,缺乏对最近事件的知识,ChatGPT 则表示无法回答。RAG 则通过从外部知识库检索最新的文档摘录来解决这一差距。在这个例子中,它获取了一系列与询问相关的新闻文章。这些文章,连同最初的问题,随后被合并成一个丰富的提示,使 ChatGPT 能够综合出一个有根据的回应。

RAG 就像给模型一本教科书,用于定制的信息检索,非常适合特定的查询。另一方面,FT 就像一个学生随着时间的推移内化知识,更适合模仿特定的结构、风格或格式。FT 可以通过增强基础模型知识、调整输出和教授复杂指令来提高模型的性能和效率。然而,它不那么擅长整合新知识或快速迭代新的用例。RAG 和 FT,并不是相互排斥的,它们可以是互补的,联合使用可能会产生最佳性能。

网易有道-QAnything

QAnything (Question and Answer based on Anything) 是致力于支持任意格式文件或数据库的本地知识库问答系统,可断网安装使用。

您的任何格式的本地文件都可以往里扔,即可获得准确、快速、靠谱的问答体验。

目前已支持格式: PDFWord(doc/docx)PPTMarkdownEmlTXT图片(jpg,png等)网页链接,更多格式,敬请期待...

核心流程图解

为什么是两阶段检索?

知识库数据量大的场景下两阶段优势非常明显,如果只用一阶段embedding检索,随着数据量增大会出现检索退化的问题,如下图中绿线所示,二阶段rerank重排后能实现准确率稳定增长,即数据越多,效果越好