目录
如果关注 AI 领域,那么 RAG 这个名词你肯定不陌生,这篇文章,我们就来揭开它的神秘面纱。为什么需要 RAG,它到底是什么,能解决什么问题。
一、从一个简单的问题开始
假设你在和一个 AI 聊天助手对话,你问它:
“北京到上海高铁多久?”
这看起来像个非常简单的问题,但它考验的却是 AI 模型的知识广度和知识时效性。
你希望它能回答类似这样:
“大约 4.5 到 6 小时,具体取决于车次。”
但是,假设这个 AI 模型训练得比较早,它可能回答是——
“我不知道。”
或者:
“我认为北京和上海之间目前没有高铁。”(因为它只看到了 2010 年以前的数据)
这就暴露出一个大语言模型的通病:
训练完就定格了,它不会自己更新知识。
二、语言模型“闭卷考试”的困境
所有的大语言模型(如 GPT、Claude、Gemini)在训练时都要读取大量文本,比如:
- 维基百科
- 新闻网站
- Reddit 论坛
- Github 代码
- 开放书籍、论文
训练结束后,它就像一个“背书高手”,记住了大量的知识。但这也意味着一但遇到新知识、实时内容、你私有的数据,它就歇菜了。
所以问题就来了:怎么让模型既有“语言能力”,又能随时“看资料再回答”呢?
这时候就该 RAG 登场了!
三、RAG 是什么—LLM 的现实世界“外挂”
RAG,全称是 Retrieval-Augmented Generation,翻译为“检索增强生成”。
通过字面意思也能看出来它的核心作用,通过检索来增强生成(废话)
用通俗话来讲:
它让 AI 在回答之前,先“查资料”,再用大模型来“组织语言”。
就像你考试的时候如果不确定答案,那就翻课本,然后用自己的话组织一段回答。
想象一个真实的场景,比如你在一家 SaaS 公司,客户经常问你:
- “你们的产品怎么绑定企业微信?”
- “有没有 API 文档?”
- “怎么开具发票?”
这些内容,可能都写在:
- 帮助中心文档
- FAQ 文档
- 客服聊天记录
- 内部知识库
而传统的 ChatGPT 模型对这些你们内部的这些专属知识一无所知。
这时候你就可以用 RAG,它的基本流程是:
- 用户提问
- 在你的知识库里“检索”相关文档段落(比如找到 API 文档那一段)
检索 - 把这些内容和用户问题一起送进语言模型
增强 - 生成一个有针对性的、个性化的回答。
生成
这样的系统既懂你公司,又能写好回答。
所以 RAG 的核心优势显而易见:
| 优点 | 解释 |
|---|---|
| 实时更新 | 你改了文档,模型就能学会新内容,不需要重新训练 |
| 私有知识 | 可以在不暴露给外部模型的前提下使用公司内部数据 |
| 可控性强 | 检索什么,传给模型什么,你可以干预整个过程 |
| 更少幻觉 | 模型参考真实资料后,不容易瞎编 |
所以,总的来说,大语言模型就像是通用的大脑,RAG 则让它接入你自己的知识,RAG 不是让模型更“聪明”,而是让它更“有见识”。
通过上面的描述,RAG 听起来很简单嘛。
但真正的 RAG 系统背后可是有很多技术细节:
- 文档如何分段(chunking)
- 怎样计算用户问题和文档的“语义相似度”(向量检索)
- 检索出几条内容?怎么拼接 Prompt?
- 模型是否支持多轮记忆和上下文压缩?
- 如何缓存和优化响应速度?
等等,这些都会影响最终效果。
四、RAG 的七步流程
我们已经大致了解了 RAG 的原理,现在我们就从宏观视角来看看 RAG 的全流程是怎么样的。
第一步:加载数据(Load)
RAG 的第一步,就是从你现有的资料中**“把内容读进来”**。比如我们加载一份 FAQ 文档:
import {
TextLoader

最低0.47元/天 解锁文章
2857

被折叠的 条评论
为什么被折叠?



