上一篇介绍了一下DeepSeek本地化部署的简易架构,对本地知识库的作用也做了一下简要的描述。今天总结一下知识库用到的RAG(Retrieval-Augmented Generation,检索增强生成)技术的工作原理,把知识库这三个字稍微打开一下。图1是RAG技术的一个工作逻辑图,相较于部署架构,增加了1、2、4、5过程描述,增加了一个向量数据库的概念,这些里面涉及的详细技术暂不展开,仍然从应用的角度作一个更加细致的描述,以便于理解其工作的模式和原理。

图1-知识库(RAG)+大模型工作原理
一、RAG技术定义
RAG(Retrieval Augmented Generation),即检索增强生成,是一种将外部数据检索结果与大模型相结合的技术,旨在提升答案的生成能力。主要起到解决以下4个方面的问题:缓解大模型的幻觉问题;确保数据的实时性,因为大模型的训练数据通常是过去的;满足私有数据的保密性要求,确保数据安全;提高答案的可解释性,使答案来源可追溯。
二、RAG技术的主要过程
图2是在图1的基础上,把向量化、向量数据库、相似性查询、Prompt的过程做了进一步细化,更方便理解知识是如何被记录、使用的整个过程。
1. 文本分割(Chunking)
我们日常使用的文件类型像Word,Excel,PDF等文件包含内容丰富,但是这些内容是不能被计算机认识的数据,需要将其转换为计算机可以识别的语言,第一步是将这些文件内容按照文本的格式进行提取,形成一个整体的文本文件。
这一步形成的文本文件通常都比较大,存储、查询都很不方便,并且大模型在识别时也有长度限制,需要将大的文本按照一定的逻辑拆分成一个个小的文本块,方便存储的同时也更便于查找信息。这个步骤像把一本书分成一个一个的章节,甚至细分成一页一页的内容,方便提取每一页、每一章的重点知识。
拆分后的每个文本块需要附带其来源文件的路径、起始行号等元数据,以便于后续检索和定位。
2. 向量嵌入/向量化(Embedding)
文本块分割后按照一定的嵌入模型(BGE、GTE、E5等)进行向量化,一般表示格式像[0.1,1.5,0.6]这样的格式,每一个文本块都会生成一个独立的向量表示,相当于给给个文本块生成了一个特有的“指纹”,方便存储和信息检索。像下面图片中实例的,不同的文本按照语义形成不同的向量表示。

3. 向量数据库存储
文本块向量化后需要找一个地方进行存储,这里就用到向量数据库。向量数据库存储文本块的“指纹”和对应的元数据内容,方便进行查询和检索。
4. 查询向量化
用户在查询时输入问题,问题的内容也是不能被计算机理解的,需要对问题也进行向量化处理,并且使用的是同一个嵌入模型,给问题也生成一个特有的“指纹”,这样就能让问题和知识有了共同语言,方便进行下一步查找工作。
在朴素RAG模型中,往往使用用户输入的原始问题,容易产生问题理解不清楚、与专业领域知识相关性不高、大模型回答质量低等问题,在高级的RAG模型中会对用户输入的问题进行查询扩展、查询转换和查询构建等优化,目的是提高问题回答质量,这些后面有机会再展开讨论。
5. 相似性检索
将问题的指纹和向量数据库中的数据指纹进行比对,找到相关的性最高的N个(N的个数一般在程序中设置)数据。一般会用到近似最近邻搜索(ANN Searh)。

查询阶段共有编码查询(Encoding Queries)、近似最近邻搜索(ANN Search)、索引搜索(Indexing Search)、数据存储检索(Datastore Retrieval)、后处理(Post-Processing)等模式和过程,根据不同的场景会有不同的选择。
6. 结果重排序(Reranking)
这个步骤是后处理阶段的一种方法,根据任务特定目标重新排序检索到的知识,以提高相关性。例如,在信息检索任务中,可以使用学习到的排序模型对检索到的文档进行重新排序,将与用户查询最相关的文档排在前面。相关的技术还有重要性加权(Importance Weighting),为检索到的知识分配重要性权重,过滤掉不太相关的上下文。
以上结果重排序和重要性加权不是非必须的过程,具体使用过程中需要根据场景和模型精度进行调整。
7. 生成答案
将用户的问题和查找到的上下文信息整理好形成新的提示词(Prompt)输入给LLM,LLM依据自己对语义的理解重新整理组合,形成一个结果返回给用户。
三、总结
RAG的核心思想是在文本生成过程中引入外部知识检索机制,核心作用主要体现在以下三个方面:
信息增强:补充模型的知识盲区与动态更新。解决时效性问题;填补专业领域空白。
领域适配:定制化生成专业内容。术语与上下文适配;场景化输出(如客服对话记录、产品手册)。
隐私与安全:数据闭环控制。敏感数据本地化,满足金融、医疗、政务等高规格要求;可控的知识边界,通过限制检索范围(如仅内部文档),减少模型生成无关或错误信息(“幻觉”)的风险,同时避免引用未经授权的外部数据。

参考文章:
- https://mp.weixin.qq.com/s/dDYy5-j4g--dVDofQR8gpg;
- https://blog.youkuaiyun.com/qq_22866291/article/details/145431680;
- https://baijiahao.baidu.com/s?id=1819907792017246758&wfr=spider&for=pc;
- https://blog.youkuaiyun.com/Coo123_/article/details/143935680。

657

被折叠的 条评论
为什么被折叠?



