RAG:AI 大脑与开卷资料检索的插画

导语:你问一个 AI 助手“我们公司今年的报销流程是什么”,它一本正经地编了一份流程给你——因为它的“脑子”里根本没有你公司的资料。解决这个问题的办法叫 RAG,简单说就是让它先查资料、再回答。本文就来讲清楚这件事。

核心要点

  • 大模型的知识来自训练数据,训练截止后发生的事、你私人的资料,它统统不知道
  • RAG 的思路是“先检索、后生成”,相当于把闭卷考试变成了开卷考试
  • 检索靠的不是关键词匹配,而是把文字变成“语义坐标”去找意思相近的内容
  • RAG 能大幅减少瞎编,但查到的资料本身有错时它照样会错

大模型的记忆力有“保质期”

大模型的能力来自训练:把海量文本喂给它,让它学会语言规律和世界知识。但训练总有个截止日期,训练完之后世界上发生的新闻、新出的产品、你公司刚更新的制度,它一概不知。这就像一个学生只读过去年的教材就上考场,今年的新知识点他自然答不上来。

更麻烦的是私有数据。你个人的聊天记录、公司内部的文档、某个行业的非公开报告,这些从来没有出现在训练数据里,模型对它们完全“失明”。可模型又不肯承认不知道,它太擅长“顺着往下编”了,于是就有了那些听起来头头是道、实际纯属虚构的回答。

早期有人想到一个笨办法:把这些新资料拿去“再训练”一次模型。但再训练又贵又慢,动辄几十万上百万的花费,而且资料每更新一次就得再来一遍,完全不现实。人们需要一种便宜、即时、随时能换资料的方法。

开卷考试:先查资料再作答

闭卷考试考的是记忆,开卷考试考的是检索和归纳。RAG 的全称是“检索增强生成”,思路正是后者:把资料放在模型外面,用户提问时,先根据问题去资料库里找出最相关的几段,再把这些资料连同问题一起交给模型,让它“看着资料回答”。

这套流程分三步。第一步是资料入库:把文档切成一段一段的小块,比如每段几百字,像把一本书拆成一叠卡片。第二步是检索:用户提问时,从成千上万张“卡片”里找出和问题最相关的几张。第三步是生成:把找到的卡片和用户问题拼在一起发给大模型,并告诉它“请依据这些资料回答”。

如此一来,模型不需要“记住”你的资料,只需要“读懂”当场给的资料。资料更新了,只要换资料库,模型一个字都不用动;不同公司接入不同的资料库,同一个模型就能回答完全不同领域的问题。这也是为什么很多企业的智能客服、内部知识助手,底座可能都是同一个大模型,差别只在各自挂了什么资料。

“找资料”靠的不是关键词,而是语义

听到“检索”,很多人第一反应是搜索引擎那种关键词匹配。但用户问“电脑开不了机怎么办”,资料里写的却是“无法启动的排查方法”,关键词对不上,传统匹配就抓瞎了。

现代 RAG 用的是“语义检索”:把每段文字转换成一串数字坐标,意思相近的文字,坐标也挨得近。于是“开不了机”和“无法启动”虽然一个字都不重合,在坐标空间里却是邻居,照样能被找出来。你可以把它想象成把所有资料放到一张巨大的地图上,意思相近的离得近,检索就是“在问题所在的坐标附近找邻居”。

检索出若干相关段落之后,还有一个容易被忽略的细节:这些段落和问题一起拼成的新提问,不能超过模型的上下文窗口——也就是模型一次能读进去的文字总量。如果资料太多,就得做取舍,只保留最相关的部分。这也是为什么资料切块的大小是个技术活:切太大,一段卡片塞不下多少有效信息;切太小,上下文断开,找出来的段落可能答非所问。

RAG 不是万能药:它能治瞎编,治不了源头错误

RAG 最大的价值是让回答“有据可查”。很多支持 RAG 的助手还会在回答末尾附上引用来源,你可以点开原始文档核对,这比凭空生成可信得多。对企业的知识管理来说,它还有个隐藏好处:敏感数据不用拿来训练模型,只放在自己的资料库里,数据留在自己手里。

但它也有明显的边界。第一,资料库本身的质量决定上限:资料是过时的、错的、自相矛盾的,模型照样照着错的答。第二,检索这一步可能找漏:问题问得含糊、资料切得不好,最相关的那段可能压根没被找到,模型只能靠自己的老知识硬答。第三,有些问题根本不适合查资料,比如“帮我写首诗”,硬检索反而会带偏节奏。

判断一个 AI 助手有没有好好用 RAG,有个简单办法:问一个只有最新资料才能回答的问题,再看它是否给出出处。如果它既不承认不知道、又不给来源,那它的回答就得多留个心眼了。

常见问题

RAG 和微调有什么区别?我该用哪个?

两者解决的问题不同。微调是改变模型的“能力和风格”,比如让它学会特定的说话方式或行业术语,成本高、更新慢;RAG 是给模型“外挂资料”,解决“不知道”的问题,成本低、资料随时可换。如果你的问题是“模型不知道某类事实”,选 RAG;如果是“模型不会用某种方式表达或处理”,才考虑微调。很多实际系统是两者结合的。

本文为 AI 科普内容,仅用于知识普及,不构成任何技术选型、投资或职业决策建议。