RAG是什么(rad模型的主要特点)

RAG(Retrieval-Augmented Generation)即检索增强生成,是一种结合检索和生成能力的自然语言处理架构。其旨在为大语言模型(LLM)提供额外的、来自外部知识源的信息。简单来说,就是通过检索的模式,为大语言模型的生成提供帮助,从而使大模型生成的答案更符合要求。

因为利用大模型的能力搭建知识库本身就是一个 RAG 技术的应用,所以在进行本地知识库的搭建实操之前,需要先对 RAG 有大概的了解。

我们都知道大模型的训练数据是有截止日期的,那当我们需要依靠不包含在大模型训练集中的数据时,实现这一点的主要方法就是通过检索增强生成 RAG。在这个过程中,首先检索外部数据,然后在生成步骤中将这些数据传递给 LLM。

一个 RAG 的应用可以抽象为以下 5 个过程:

文档加载(Document Loading):从多种不同来源加载文档。LangChain 提供了 100 多种不同的文档加载器,包括 PDF 在内的非结构化的数据、SQL 在内的结构化的数据,以及 Python、Java 之类的代码等。 文本分割(Splitting):文本分割器把 Documents 切分为指定大小的块,称为“文档块”或者“文档片”。 存储(Storage):存储涉及到两个环节,分别是: 将切分好的文档块进行嵌入(Embedding)转换成向量的形式。 将 Embedding 后的向量数据存储到向量数据库。 检索(Retrieval):一旦数据进入向量数据库,通过某种检索算法找到与输入问题相似的嵌入片。

LangChain 是一个用于构建高级语言模型应用程序的框架,它提供了一系列的工具和组件,使得开发人员能够更容易地使用大型语言模型(LLM)来创建各种应用程序。RAG 能够为 LLM 提供来自外部知识源的附加信息,使得 LLM 在应对下游任务时能够生成更精确和上下文相关的答案,并减少 LLM 的幻觉现象。LangChain 和 RAG 之间的关系可以概括为:LangChain 的设计主张集中在模块化组件上,这些组件提供用于使用 LLM 的行为抽象,并为每个抽象提供实现的集合,从而允许开发人员构造新链或实现现成的链。

0
分享到:
没有账号? 忘记密码?