我们现在和人工智能聊天,会发现一个很有意思的现象。
有时候,你感觉它无所不知,上知天文下知地理,像个博学的智者。
可有时候,你问它一些最近发生的新闻,或者你们公司内部的一些产品信息,它就可能开始支支吾吾,要么就说“我不知道”,要么更糟糕,它会煞有介事地编造一些听起来很像回事儿的答案,也就是我们常说的“AI幻觉”。
这就让很多人纳闷了,这些投入了巨大成本训练出来的“聪明大脑”,难道就只能用来聊些陈年旧事,不能解决一些实时、具体的问题吗?
其实,这背后有一个根本原因:大多数大模型就像一个记忆力超群但已经毕业多年的学生,它的知识库在训练完成的那一刻就被“冻结”了。
面对新世界,它只能靠过去的知识去推测。
不过,现在有了一项关键技术,就像是给这个聪明的学生发了一套可以随时查阅的、实时更新的参考书,让它从“闭卷考试”变成了“开卷考试”,这项技术就是RAG,全称是检索增强生成。
咱们可以这么理解RAG的工作原理。
它不是去改造大模型本身那个复杂的“大脑”,而是在大模型之外,给它建立了一个专属的、庞大的外部知识库,可以把它想象成一个数字化的超级图书馆。
当用户提出一个问题时,系统不再是直接把问题扔给大模型让它凭空想象,而是分成了两个关键步骤。
第一步是“检索”,系统会像一个极其高效的图书管理员,先根据你的问题,以闪电般的速度冲进那个超级图书馆里,找到与问题最相关的那几页资料。
第二步才是“生成”,系统会把你的原始问题和它刚刚找到的这几页最相关的资料,一起打包交给大模型,然后对大模型说:“请你根据我提供的这些参考材料,来回答这个问题。”这样一来,大模型就不是在凭空回忆了,而是在做一道“阅读理解”题。
它的回答有了确凿的资料来源作为依据,准确性自然大大提高,也就不会轻易胡说八道了。
这个“先查找,再回答”的模式,就是RAG技术的核心。
那么,这个神奇的“超级图书馆”是怎么建立起来的,整个问答过程又是如何运作的呢?
这其实是一个相当精密的流程,我们可以把它分为知识准备和问答两个大的阶段。
首先是知识准备阶段,这就像是为我们的图书馆采购、整理和上架图书,是个细致活。
第一步是数据处理,也就是把原始资料变得干净、规整。
我们手里的资料可能是五花八门的,有PDF文件、公司网站的网页、技术文档等等。
系统首先会把这些文件里的纯文字内容提取出来,去掉所有无关的格式和代码。
接着进行数据清洗,比如把一些重复的句子、广告词、乱码都清理掉,让文本内容变得纯粹。
同时,还会进行标准化处理,比如说,如果文章里写着“今天”,系统会自动把它转换成具体的日期,比如“2025年7月17日”,这样信息就不会有歧义。
在这个基础上,系统还会为每一份资料都制作一张“索引卡”,也就是提取元数据。
这张卡片上会记录这份资料的来源、创建时间、作者、主题等信息。
这些信息在后续的查找中至关重要,能帮助我们进行更精确的筛选。
第二步是内容分块。
大模型一次能处理的信息长度是有限的,你不能把一本几百页厚的技术手册一股脑地塞给它。
所以,必须把这些长篇的文档切成一个个大小适中的、有独立含义的“知识片段”。
怎么切也是一门学问。
最简单的方法是按字数切,但很容易把一句完整的话从中间切断,影响理解。
比较好的方法是按照自然的段落来切,或者用更智能的算法,根据内容的语义来切,确保每个知识片段都围绕一个完整的主题。
这样,后续检索到的信息才是连贯且有意义的。
第三步,也是非常关键的一步,叫做向量化。
电脑本身并不理解文字的含义,它只认识数字。
所以,我们需要一个“翻译官”,把每一个文字片段都转换成一串由数字组成的“数学坐标”,这串数字就是向量。
这个转换过程非常神奇,它能把文字的“语义”捕捉到这串数字里。
简单来说,意思相近的两个句子,它们转换成的数字坐标在空间中的距离就会非常近。
比如“ROMA是一个跨平台解决方案”和“ROMA能同时在安卓和苹果系统上运行”,这两句话虽然字眼不同,但表达的核心意思很接近,那么它们的向量坐标就会靠得很近。
这一步为后续实现高效的语义检索奠定了基础。
值得一提的是,我们国家在向量化模型技术上已经走在了世界前列,比如百度的BGE模型,在国际上都享有很高的声誉,为我们构建高质量的RAG系统提供了坚实的技术支撑。
最后一步就是把这些处理好的“知识片段”和它们的向量坐标一起存入一个特殊的数据库里,叫做向量数据库。
这个数据库的拿手好戏就是进行超高速的相似度搜索。
当一个新的问题进来时,它能在海量的知识片段中,瞬间找出那些在“语义”上最接近的片段。
至此,我们的“超级图书馆”就建好了,随时可以为大模型提供知识支持。
当图书馆建好后,就进入了问答阶段。
当用户输入一个问题,比如“ROMA是什么?”,系统首先会对这个问题进行一些预处理,然后同样用刚才的“翻译官”模型,把它也转换成一个向量坐标。
接着,系统拿着这个问题的向量坐标,冲进向量数据库里,去寻找那些与之最相似的知识片段。
数据库会很快返回一批最相关的候选片段。
为了确保万无一失,系统还会有一个“复审”环节,也就是重排序。
它会用一个更精细的模型,来仔细评估这些候选片段和原始问题的相关性,给它们重新排个名,选出最优的几个。
最后,系统会将用户的问题,以及经过千挑万选出来的这几份最相关的知识片段,一起提交给大模型。
同时,它会附上一段明确的指令,这个指令就像是考试要求:“请你扮演一位专家,严格依据我提供的以下参考信息来回答用户的问题。如果信息中没有相关内容,就直接说无法回答,绝对不要自己编造。”大模型在接收到这样一份带有标准答案的“考卷”后,任务就变得非常简单了。
它只需要发挥自己强大的语言组织能力,把参考信息里的内容,用通顺、流畅、易于理解的语言重新组织一遍,就能生成一个既准确又高质量的答案。
通过这样一套完整的流程,RAG技术成功地为大模型接上了外部世界的“网线”,让它能够利用最新、最专业的知识来服务我们,真正成为一个既博学又可靠的智能助手。