RAG的实现原理 📅 2026/7/15 4:42:17 一、前言慢更通过视频和ai问答还有技术文章总结如下二、简单认识RAGRAG-Retrieval-Augmented Generation(检索-增强-生成)一般是指先从资料库中检索相关的内容然后再基于这些内容来生成答案三、使用场景一般是基于某个应用程序来做ai客服或者各种问答助手但是做这些功能就需要一个ai模型和一个资料库这样ai客服就是通过这个资料库的内容然后通过ai模型来思考输出答案在这个过程中会遇到一些问题如下①资料库内容过多ai模型支持的上下文有限不能全都记住②每次对话都要带上繁重的资料库内容导致模型推理成本很高③由于繁重的资料内容塞入prompt也会导致推理的速度慢④大模型训练完成后知识点固定无法读取新增的实时的资料容易出现知识过时和凭空捏造而RAG就是解决这几个问题而诞生的四、RAG的基本运行流程问答前要将资料库的内容进行分片并加上索引回答后需要召回然后重排最后生成1.分片按字数分、按页数分、按章节分、按段落分但是在分片之前需要预处理数据文档2.索引指的就是通过Embedding将片段文本转换为向量然后存入向量数据库中并构建ANN加速索引这样就不用海量的数据遍历实现毫秒级的查找而你不懂的Embedding指的是将文本映射到高维向量空间的一个神经网络模型3.召回根据用户的问题需求对向量数据库里的数据进行召回然后返回一定数量的相关片段但是你知道是怎么进行的召回吗召回对象需要满足的条件是什么这里需要先对用户的问题进行Embedding转为向量然后将数据库中的向量与用户的问题向量进行相似度计算计算选出相似度最接近的那几个。而计算方法又有余弦相似度、欧氏距离、点积余弦相似度就是算两向量的余弦值欧氏距离指的就是两向量之间的距离(终点间的距离)点积指的就是点乘的结果 总而言之都是不同方式来算 谁离用户的问题向量近4.重排对于召回选出的相关向量再次进行筛选但是筛选的方法和召回的不一样用的是cross-encoder这种方法属于更精细的比较计算得到相似度更高的几个用来作后面的回答准备5.拼装Prompt把重排筛选后的高相关片段、用户原始问题、回答约束模板拼接成一段完整提示词统一输入大模型。6.生成根据重排获得的相似度最高的几个片段交给大模型进行分析和计算得到对应的结果输出五、总结Rag整个环节其实最耗时间的是预处理阶段而最影响结果、最重要的是检索环节当忘了这段总结是为什么的时候请你重新再学一遍Rag的原理