什么是 RAG
这篇文章循序渐进讲得很清楚,建议学习阿里云大模型工程师ACA认证免费课程 - 什么是RAG 摘取其中几张图片,作简要说明。
官话
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了信息检索和生成模型的自然语言处理框架。它通过引入外部知识库(如文档库、数据库等)来增强生成模型,从而提高回答的准确性和相关性。
RAG 的核心思想是,单纯依靠生成模型进行语言生成时,模型只能基于其训练时获得的知识进行回答,可能会出现不准确或“幻觉”的生成。通过引入检索机制,RAG 模型能够在生成的过程中访问外部信息,从而生成更加准确、丰富且上下文相关的回答。
大白话
大模型,好比通过预制的资料搜索,回答
RAG,根据用户特定问题的特定资料,优先使用它的资料,大模型内置的资料可能 out 了,或者不准确。
第一种方案的知识库,可以理解是公司统一配置的知识库;第二种方案中,每个团队或者用户还可以根据自己的需要来增加私域定制化知识库。显然,第二种系统更灵活,不需要复杂的操作就能补充了业务知识。但总体来看,这两个系统都是通过知识库来增强导游助理的能力,减少“幻觉”回答的情况(即导游助理不是编造一个像模像样的地址,而是按照已有知识来回答)。这就是我们即将介绍的检索增强生成(Retrieval Augmented Generation)。
检索增强生成包括三个步骤,建立索引、检索、生成。如果说大模型导游助理是一位志愿者,那么我们给志愿者们准备“志愿者手册”的过程就是建立知识库索引,志愿者查看资料就是系统在检索知识库,志愿者基于检索到的资料充分思考并回答用户的问题就是生成答案。
RAG的实现原理
如图所示,RAG主要由两个部分构成:
建立索引:首先要清洗和提取原始数据,将 PDF、Docx等不同格式的文件解析为纯文本数据;然后将文本数据分割成更小的片段(chunk);最后将这些片段经过嵌入模型转换成向量数据(此过程叫做embedding),并将原始语料块和嵌入向量以键值对形式存储到向量数据库中,以便进行后续快速且频繁的搜索。这就是建立索引的过程。
检索生成:系统会获取到用户输入,随后计算出用户的问题与向量数据库中的文档块之间的相似度,选择相似度最高的K个文档块(K值可以自己设置)作为回答当前问题的知识。知识与问题会合并到提示词模板中提交给大模型,大模型给出回复。这就是检索生成的过程。
如何持续改进RAG应用效果
这个话题有点大,我慢慢消化