RAG是什么?一文讲透检索增强生成——大模型不再胡说的秘密

王尘宇 AI百科 5

你用过大模型的话一定遇到过这种情况:问一个问题,它回答得头头是道,但你一查,里面的数据是编的。这就是大模型的幻觉问题。也是RAG技术被发明出来的原因。

RAG的全称是Retrieval-Augmented Generation,翻译过来叫检索增强生成。名字听着挺唬人,其实逻辑不复杂。本文尽量用大白话把它说清楚。

没有RAG的大模型是怎么干活的

先把场景说清楚。假设你问ChatGPT:2024年诺贝尔物理学奖得主是谁?

如果没有联网功能,ChatGPT回答这个问题的方式很粗糙:它在训练数据里找跟诺贝尔物理学奖相关的内容,然后基于概率生成一个回答。问题是它的训练数据截止到某个时间点——比如2023年底。2024年的获奖者它根本没见过。

这时候它有两个选择:一是告诉你它不知道,二是编一个。不幸的是,大模型经常选择第二种。它不会说我不知道,而是根据2023年之前的获奖者规律,猜一个名字出来。这就是幻觉。

之前有个法律圈的典型案例:美国一个律师用ChatGPT写法律文书,里面引用了6个判例。法官一看,这6个判例全是ChatGPT编的,根本不存在。律师被罚了款。这个事在2023年闹得挺大。

RAG解决了什么问题

RAG的思路很直接——在模型生成回答之前,先让它去查资料。

工作流程是这样的:

1. 你问一个问题。

2. 系统把你的问题转成向量(一种数学表示,可以理解为把文字变成数字坐标)。

3. 用这个向量去一个知识库里搜索最相关的文档片段。

4. 把搜到的片段和你的问题一起塞给大模型。

5. 大模型根据给定的资料回答问题,并附上来源。

这样一来,大模型就不是凭记忆回答了,而是像开卷考试一样,先翻书再答题。只要知识库里的资料是对的,回答的准确性就大幅提升。

RAG的三个核心组件

一个完整的RAG系统有三个关键部分:

Embedding模型:负责把文字变成向量。你可以理解为它给每段文字打了一个语义坐标。语义越接近的文字,在向量空间里的距离就越近。苹果很好吃和苹果真甜的距离很近,苹果很好吃和iPhone15降价了的距离就远。目前常用的Embedding模型有OpenAI的text-embedding-3、阿里通义的text-embedding-v2等。

向量数据库:负责存储和检索这些向量。文档被切成小段后,每一段都生成一个向量存入数据库。查询时,用户的问句也转成向量,在数据库里找距离最近的几个文档段。Milvus、Pinecone、Weaviate、Qdrant是目前常用的向量数据库,Chroma和FAISS是开源的轻量选择。

LLM(大语言模型):拿到检索到的资料后,负责组织语言、生成最终回答。这里的关键是提示词设计——你得告诉模型只用我给你的资料回答,资料里没有的就说不知道。

RAG的三种常见用法

在实际应用中,RAG主要有三种架构模式:

基础RAG——就是上面说的流程:检索→拼接→生成。适合简单的知识问答场景,比如企业内部知识库搜索、产品说明书查询。

高级RAG——在基础流程上加了更多优化。包括检索前对问题进行改写(比如把这玩意怎么弄改写成XX产品安装步骤),检索后进行重排序(不是简单的向量相似度,而是用交叉编码器重新判断相关性),以及多轮对话中的查询扩展。

Agentic RAG——这个比较新,2024年下半年开始流行。思路是把RAG变成一个能自主决策的Agent。它不是一次检索就完事,而是根据检索结果判断资料够不够。不够的话换关键词再搜,或者拆分子问题分别检索,最后汇总。有点像一个人做研究——翻了一本书发现不够,又去找另一本。

RAG的局限性

RAG虽好,但不是万能药。有几个现实问题目前还没解决:

首先是检索质量。如果知识库里的文档写得不好,检索出来的结果就不靠谱。我之前帮一个企业搭知识库,他们把三年前的运维文档直接灌进去了,里面一半是过期信息。检索出来的答案全是错的。

其次是切分策略。文档怎么切段直接影响效果。切太大了检索不精准,切太小了丢失上下文。一般每段控制在300-500字比较合适,但具体还是要看文档类型。

第三是成本。每次查询都要走一遍向量检索+LLM推理,比单纯的LLM调用贵了不少。特别是知识库大的时候,向量数据库的查询成本不能忽略。

但综合来看,对于需要准确信息的场景——客服系统、企业知识管理、医疗咨询、法律查询——RAG是目前性价比最高的方案。相比微调模型,RAG不需要重新训练,知识可以实时更新,成本也更可控。

最后说一句:如果你在考虑给自己的网站或产品加AI问答功能,RAG是首选路径。不要一上来就想着微调大模型,那玩意成本高、维护难、更新慢。先搭个RAG跑起来,用一阵子看看效果再说。

标签: RAG 检索增强生成 大模型幻觉 向量数据库 Embedding AI科普

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~