AI训练师必须了解的-RAG检索增强项目
在AI应用日益深入的今天,RAG(Retrieval-AugmentedGeneration)正成为提升模型实用性的关键技术。本文将从AI训练师的视角出发,系统拆解RAG的核心机制、应用场景与训练要点,帮助你在构建高质量智能体时少走弯路、精准发力。
今天我向大家介绍检索增强也就是RAG,在公司里面也是一个独立的项目,并且有自己的考核指标。带着4个问题来一起了解RAG
1、什么是RAG
2、为什么大模型要做RAG
3、RAG的技术原理
4、如何做RAG(AI训练师在做RAG项目的时候,具体做那些内容)
一、RAG定义
中文名检索增强生成,是AI领域非常重要的一种技术方案。其核心作用是给LLM大模型外挂专门的知识库,指导大模型生成更准确的输出。
这块我们需求记住几个关键词:
1、RAG检索增强
2、RAG是一种技术方案
3、给LLM大模型外挂专门的知识库
什么是RAG(Retrieval-augmentedGeneration)
简单理解,RAG让大模型先去查资料,这里资料指的就是RAG知识库,在生成回答。会让模型的回答更加精准更加贴合用户需求
RAG的资料来源
资料从哪里来呢,首先可以从网上获取,还有一种方式就是本地知识库,它的来源有两种方式,一种外部知识库,即联网搜索,另一种本地知识库。
外部知识库:不只是搜索引擎,比如去查询一些天气情况,特定的API访问,也是一种检索增强。
本地知识库:部署在本地服务器上,硬盘或者电脑上,通过这种检索方式可以查询本地特有资料
工具分享
这里分享一个,几个主流的模型盲测网站,涵盖文本、多模态等不同领域,用户可通过匿名投票或系统自动评估参与模型性能对比
LMArena
官网:https://arena.lmsys.org/
GenAI-Arena
官网:https://genai-arena.org/
特点:由滑铁卢大学团队开发,专注于多模态模型盲测,覆盖文本到图像生成、图像编辑、文本到视频生成三大任务。用户上传提示词后,系统随机展示两个匿名模型的生成结果,用户通过投票决定优劣。
二、为什么大模型要做RAG
1.存在幻觉问题
首先我们现在的模型都是生成式模型,既然是生成式模型,就会有概率出现各种各样的问题。而这解决的第一个问题是模型的幻觉问题。
本质上大模型是基于数学概率统计,它就可能会出现胡言乱语。
举例子,我询问你吃饭了吗,模型会如何回复呢,假如70%的人都回复吃饭,另外29.999%的人回复没吃饭。
另外有一个神经病人回复了,我在北京。注意,因为模型是概率性的模型,所以我在北京回答有可能被选中。
那个回答只是概率极低,并不意味着没有。因此,模型目前非常致命的问题是幻觉问题,这可以很好地解决模型存在幻觉问题。
2.缺乏对专业领域的知识理解
举个例子:
1、我去问大模型豆包,红烧排骨如何制作?
2、我在专业美食app里面去查询,红烧排骨如何制作?
哪个回复得更专业,更贴合用户,肯定是在专业美食app里面去查询的更专业。因为这个网站就是专门做美食的数据就更精准。
因为传统大模型,是偏全知全能的,虽然他们掌握了所有知识,但是知识不够深入。这里我们就可以通过外挂知识库的方式,让模型更好地回复红烧排骨制作流程。可以很好地解决它在垂直领域知识缺失的问题。
3.时效性不足
举个例子:
当你在使用模型时,你把模型联网搜索给关闭,问模型明天的,天气怎么样。模型根本不会回复你,因为问的问题太新了,训练的语料还没有给到大模型。由于模型的训练语料在训练结束那一刻,他的知识已经被定格在那个时间
为什么出现时效性不足?
首先各业务线生成一个数据集,这些数据集经过算法评估之后认为可行,然后一起上车。上车后不进行训练,例如在公交站里面上车后,是否相当于需要等待一批人?相当于需要几个业务线的数据一起完成,然后我们一起交给模型训练。这是对等的过程。它的周期最短的差不多15天,长点的可能是两个月或者半年。
4.缺乏对生成结果的可解释性
举个例子
我们问模型珠穆朗玛峰的高度是多少
A模型给的回复:8848米
B模型给的回复:8848米,数据来源于,2025年某登山队测量的结果,上面出现一个角标,可以点击进入的网页。
这样对比肯定是,B模型给的回复更可信。数据来源可查,模型生成回复的结果,解释性更强,数据来源可查,就是可以利用RAG的方式。
举个例子:
总结一下为什么要做RAG:
1、解决大模型存在幻觉的问题,RAG需要结合材料进行回复减少幻觉问题
2、解决大模型在垂直领域知识缺失的问题
3、解决问题时效性不足,模型训练周期较长,最新数据或知识模型无法及时提供。
4、解决缺乏对生成结果的可解释性,注明数据来源
三、RAG技术原理
我们分为几个过程:
第一首先是文件索引过程,索引的过程就是将准备的资料或材料,用嵌入式模型进行向量化,这个过程我们称为索引
第二,是检索用户输入的问题与资料库是否匹配,如果匹配将用户的问题和匹配资料一起提交给大语言模型。大语言模型会根据这些内容生成结果。
整个流程分三个步骤,先索引,将文件分割成较短的块,通过编码器进行索引,嵌入式模型会将文件切割成许多块。
我们解释一下什么是索引:
索引:给资料构建“智能知识库”
索引是整个流程的“准备工作”。它不像传统目录只记录关键词,而是为知识建立语义目录。
资料处理:RAG系统首先将所有参考资料(文档、网页等)拆分成大小适度的小块(Chunking)。
向量化:随后,系统利用嵌入模型和Embeddings技术,将每一小块文本内容转化为高维度的数字序列(即向量)。这些向量代表了文本的语义信息。
构建知识库:最后,这些带语义信息的向量会被存入向量数据库(VectorDatabase)中。这个数据库就是AI专用的“智能知识库”,后续的检索将基于这些数字化的语义信息进行。
我们解释一下什么是检索:
检索:按语义快速“匹配素材”
检索就是“找资料”的动作,但它比关键词搜索更智能、更准确。当你提出一个问题时,RAG不会进行简单的字面匹配。
问题向量化:RAG会先把你的问题也转化为一个向量。
语义匹配:接着,系统会在向量数据库中,计算问题向量与所有资料向量之间的相似度。相似度越高,代表两段内容的“意义”越接近。
提取核心素材:系统会根据相似度分数,快速挑选出与问题语义最相关的3-5个资料片段。这些片段就是AI用来回答问题的“核心素材”(Context)。
最后是生成
生成:用素材“组织通顺答案”
生成是最后“写答案”的环节。大型语言模型(LLM)拿到检索来的核心素材后,会像一个拥有背景资料的专家。
整合与推理:LLM将用户问题和检索到的上下文素材一起放入下文窗口
忠实度优先:LLM会结合自身的基础常识和表达能力,以检索素材为主要依据,组织、推理并生成一个通顺、自然的答案。
最终输出:最终输出的答案既能保证准确性(Grounding/忠实于来源),又能保证流畅性和可读性。
四、RAG的核心使用场景:以智能客服为例
若要搭建一个能回答公司产品相关问题的智能客服,核心需求是让系统基于企业产品手册、公司信息等专属文档,通过大模型生成准确回复。但直接将文档投喂给大模型存在明显局限,而RAG(检索增强生成)正是为解决这些问题而生。
上下文窗口长度限制
大模型(如ChatGPT、GLM、豆包等)的输入能力受限于“上下文窗口”(以token为单位计量)。企业产品手册长达数百页,其token总量远超多数模型的窗口上限,导致文档内容无法被模型完整接收(超出部分会被截断或忽略),进而无法基于完整信息生成回复。
信息处理不完整,回复准确率低
若强行输入超长文档,模型会因窗口限制“丢失”部分内容,且可能对未丢失的信息产生混淆(例如遗忘前文关键细节),导致回复与文档事实不符,无法满足客服对准确性的要求。
模型无法读取所有的内容
模型只能存储一定量的信息一般我们称为上下文窗口大小,超过了量模型就会忘记前面的,模型回复准确率无法有保障。
推理成本过高
输入越多,成本越高。消耗掉很多token量,对于公司来说就成本。
模型推理慢
输入的越多,模型需要消化的内容就越多,模型输出就会越慢
我们直接把产品手册丢给大模型是不行的,这时候我们就用到了RAG
五、RAG是如何解决问题的
当用户提问,产品能效如何
首先把产品手册分割成多个片段,当用户提出问题的时候,就会根据用户的问题,在所有片段中寻找相关的内容。
举例子所有片段中,只有五个片段与用户问题有关。就会把用户问题加上这五个片段一起发送给大模型。这时模型输入的内容相比较整个文档就会少很多,只会检索到这五个片段加上用户问题,就解决了模型处理不了这么多内容的问题。
RAG运行过程是这样的
1、如何切片?
2、如何选择相关片段?
涉及RAG技术原理
可以把技术原理拆分两个部分,提问前和提问后。
提问前会有分片,就是索引
提问后会有召回,重排和生成
什么是分片
简单解释:就是把文档切分多个片段
比如前面举的例子,分片会有很多方式,比如按照字数去分。每1000字或者每500字,也可按照段落去分。还可以按照章节去分,产品介绍第一章是什么内容,也可可以按照页数去分。
每个公司采取的方式不一样,最终目的将文档切分成多个片段
索引
将分段文本转化成向量,再将文本和向量存入数据库中
1、通过Embedding将片段文本转化为向量
2、将片段文本和片段向量存入数据库中
什么是向量,什么是向量数据库,什么是Embedding
什么是向量
代表有大小方向的量、可以用数组去表示
向量又分类为,一维向量,二维向量,三维向量
我们可以用数组去表示,一维向量,二维向量,三维向量。
先用一个图表示什么是一维向量,这里只有一个轴就是一维的
二维向量不只有X轴还会有Y轴
三维向量,可以用图这样去理解
什么是Embedding
把文本转化成向量的一个过程,我们用二维图去示例
小明喜欢吃水果,它代表数是3.9和1.2,这个理解为向量转化为数组
在说一句话,今天天气很冷,跟上面小明爱吃水果这句话,没有什么相关性离得就会比较远。比如我们在说一句,小红爱吃水果,这两段话离得比较近
这就是Embedding目的相近的文本,向量也是相近的
再举个示例:
当一个用户提出一个问题,产品的能效如何,这句话经过Embedding模型把这句话向量化变成数组
数组会有不同方位,整个过程就是用户提出问题,这个问题转化成向量,所看到的数组都是向量,然后根据向量相似度,会把和这个问题相关的文本都找出来,最后把问题和相关的文本一起发给大语言模型。
什么是向量数据库
就是用来存储和查询向量的数据库
举个示例
我们把产品手册分好片段,Embedding模型转化成向量,存入向量数据库
有一点我们需要注意,不仅要存储向量,还要将向量对应的文本一起存入向量库。
只要这样才能够通过向量相似度去查询出相似的向量。把对应的文本给抽出来。发给大模型。让大模型去处理,我们最终需要的还是原始文本。向量只是中间的一个结果。
AI训练师的工作是控制生成过程,AI训练师如何做RAG项目
学习项目需求、背景目标和标注策略。我们先了解背景过程
整个项目背景
在对话AI助手下,用户提出了某些问题,而这些问题可能超出AI助手的基础知识,因此需要AI助手借助外部信息回答。外部信息主要指网上搜索到的结果以下统称为参考资料。给定一段对话,和1~3个参考材料。我们需要利用正确的参考资料给出高质量的回复,相当于训练模型的材料阅读理解加回答问题的过程。
拆解一下项目背景:
用户问的问题超出了模型的能力,超出的能力,可能是时效性,或者专业领域的知识等,这些是模型没有办法回复的。所以AI助手需要借助,外部的信息进行回答,就是指RAG知识库。外部信息,有能是本地的也有可能是联网的。需要模型结合1~3个材料进行回复,相当于训练模型的材料阅读理解加回答问题的过程。
模型既能读懂RAG里面材料,并且根据问题结合材料进行回答。
下图RAG真实数据
一个RAG项目必然包含,这三个部分
第一个是问题,这个问题有可能是单轮的也有可能是多轮的,还有可能是在,多轮对话基础提出新的问题。
第二参考材料有两种,一种外部联网搜索,一种本地知识库
第三个回答,需要查看是否根据问题进行回答两个判断,必须响应问题,第二个必须结合材料回答。
查看标注概要
标注概要分为主线任务和支线任务
主线任务
指的是用户问的问题,没有问题,材料没有问题,回答没问题,这部分数据我们称为主线任务。
主线任务让模型学习,根据材料结合问题生成答案的能力。把好的数据给标注出来
支线任务
有问题的数据,比如用户问的问题,有问题。材料有问题,回答有问题,这些数据AI训练师都要标记出来。目的是让模型规避这些问题。模型在训练时有正向加权和负向减弱,意思是让模型学习好的,放弃不好的。
什么是问题数据
问题有问题,如逻辑不通,语意不清、上下文矛盾,政治敏感等
参考材料有问题:如材料缺失、常识性缺失、材料准确性问题、材料之间有矛盾冲突
回答问题:模型回答内容不满足优质回答条件,基于通用的单轮对话规则
高频面试问题:
你们的项目为什么要做RAG
教育项目为例
回答思路:我们最开始已经训练好了基座模型,这时候模型已经有了基础问答能力。
这时我们发现有些学生在询问,中小学五年级下册,第六单元作文的中心思想是什么?
模型回答不出来,最初通过大量语料训练,发现模型回复不精准,我们就创建一个外部知识库,我们把教育部所有的电子文章都放在了RAG里面。
如果这时用户再去问。中小学五年级下册,第六单元作文的中心思想,我们模型就会结合RAG进行回复,这时模型回复的就会更加精准贴切。解决了模型幻觉问题,专业领域知识问题,可解释性问题。
在举例子
比如我们当时做了一个汽车销售模型,用户问了一些最新款的车辆,结果我们的模型没有,这时RAG解决时效性问题。
