通往AGI之路:检索增强生成流程拆解

大家好,检索增强生成是大模型时代非常火热的概念,之前在检索增强生成Retrieval-Augmented Generation,RAG的文章中,我们详细解释了这么技术的核心流程。今天,我们来更详细的拆解这门技术一些技术细节。


检索增强生成核心流程


RAG 相关的核心流程具体如下图所示,主要包含三个模块,数据处理、向量检索和大模型生成。



一、数据处理模块


数据处理模块主要是对文本进行切分,然后生成向量,存入向量数据库。对文本进行切分的方法有很多,主要是一些基于策略规则:


1.截断 截取前 510 个或后 510 个或前 128 + 后 382
2.分段 分段 k=L/510, 然后各段可以求平均、求 max
3.滑动窗口 (Sliding window),即把文档分成有重叠的若干段,这样能保证一定的信息冗余,更有利于大模型利用这些信息进行回答

二、向量检索模块


向量检索主要依赖向量模型和向量数据库,目前,向量模型都会基于 BERT 作为基座模型再进行微调,而 BERT 最大长度仅支持到 512;超过 512 的时候,性能会急剧下降,再使用的意义不大,也制约了语义表示的质量。


比较主流的向量模型,例如 text2vec 支持的长度仅为128;bge、m3e 等语义模型支持长度均为 512。


因此,我们需要对文本进行切分,再存入向量数据库。这也是向量模型本身性能的原因导致的问题,想要解决的话比较麻烦,我们会在后续的文章中进行讲解。


常见的向量数据库有 chroma、faiss、qrant、milvus、weaviate等,实现的功能也基本相似,可以根据场景和实际进行选择。


三、大模型生成模块


目前这部分的实现都比较简单,主要是将向量检索中召回的文本片段和用户的回答,拼接成提示词,输入到大模型中。比较常见的提示词模板如下:


请根据以下三个反引号中的知识片段,按照以下要求生成3个高质量的问题及答案:```{context}```## 要求
1.生成的问题和答案不要超出反引号中信息的范围。2.请确保所有生成的问题都能在知识片段中找到明确的答案。3.生成的答案必须尊重知识片段的事实和描述,不允许添加编造成分或进行推理。4.问题部分以"Question:"开始,答案部分以"Answer:"开始。5.使用中文进行输出。


好啦,今天的分享就到此结束了,你学废了嘛?


对检索增强技术不了解的,欢迎查阅下面的文章:


通往AGI之路:检索增强生成核心流程

通往AGI之路:检索增强生成入门


新增福利,欢迎查收!


永久免费星球『算法·成长·一人企业』,在这里我会高频输出和算法,个人成长,副业相关的知识以及资源分享,欢迎围观~,微信扫码就可以加入。




END

好了,今天的分享就到这里,希望对你有所帮助。

你的每一个点赞,都是鼓励我进步的勇气,点个在看,加油吧,一起成长!







来交个朋友


我是雨飞,一名工作 6 年的算法工程师,目前在探索大模型应用编程以及搜推算法。未来的愿景是做 AI 算法时代的引路人,致力于带领 AI 小白入门和学习算法。


在这个充满机遇与挑战的时代,能让我们一起成长,满帆迎接 AI 时代,让未来的日子,不再平庸。同时,践行终身学习的理念,也尝试在职场外探索副业和人生的第二曲线。


欢迎,扫码或者添加微信 10606087688 和我做朋友,一起成长进步。



请使用浏览器的分享功能分享到微信等