什么是RAG?
RAG(Retrieval-Augmented Generation)是一种结合检索和生成的自然语言处理技术,通过检索相关信息辅助生成更准确和丰富的文本。
X上的一位网友(@Baptiste Adrien)用十张图简述了一下RAG的流程,下面给大家介绍一下。
一、提供文档,即搜索的知识来源
二、文档处理,可以通过OCR将文档处理成可读文本
三、文档分块,将长文本分割成更短的段落或句子,以便更有效地进行处理。
四、向量化,被分成小块的文本经过一个嵌入模型处理转换成向量,这些向量能够以数字的形式表达文本的含义。
五、向量库,向量存储在向量数据库中,向量库能更高效地找到近似的向量(文本)。
六、用户提出问题。用户提出问题,系统来检索数据库,找到最相关的信息并返回给用户。
七、问题处理,问题将通过和文档相同的embedding模型和分块方式,以保证问题和文档在相同的向量空间里(有相同的表征方式)。
八、相似度计算,被转成向量的问题与数据库中存储的其他向量进行比较,找出最相似的向量(文本块)。
九、大模型处理,将相似度得分最高的几个文本块输入给大型语言模型(LLM),改写、生成答案。
十、回答,将大模型输出的问题返回给用户。这个答案是由从文档中检索到的最相关信息生成的,确保了准确性和相关性。