一、RAG概述:什么是RAG、RAG与微调的区别、RAG的典型应用场景、课程目标与前置知识
1.1 什么是RAG?—— 说白了就是给大模型配个外挂知识库
RAG,全称 Retrieval-Augmented Generation,翻译过来就是「检索增强生成」。这个名字挺直白的——先检索,再生成。
我刚开始接触这个概念时,脑子里冒出的第一个问题是:大模型不是已经学了很多知识吗?为什么还要检索?
嗯,这个问题问得好。你想想看,大模型的知识是「封存」在参数里的,训练完就固定了。它不知道今天发生了什么新闻,也不知道你公司内部的业务数据长什么样。更麻烦的是,它还会「一本正经地胡说八道」——也就是我们常说的幻觉问题。
RAG 的思路很简单:模型回答问题之前,先去外部知识库(比如向量数据库、搜索引擎)里找相关文档,然后把找到的内容作为上下文,再让模型生成答案。
举个例子:
- 你问「我们公司2024年Q3的营收是多少?」
- 纯大模型:瞎编一个数字(因为它根本不知道)
- RAG方案:先去公司数据库里检索到Q3财报,找到营收数据,再让模型基于这个数据生成回答
我在项目中遇到过最典型的场景是客服系统。客户问「我的订单为什么还没发货?」,纯大模型会回答「请耐心等待」,但RAG方案会先去查订单系统,找到物流状态,然后给出具体原因和预计送达时间。效果天差地别。
1.2 RAG与微调的区别——两条完全不同的路
很多人会问:「我想让模型懂我的业务,到底是做RAG还是做微调?」
这个问题我几乎每次分享都会被问到。我的回答是:先搞清楚你要解决什么问题。
| 对比维度 | RAG | 微调(Fine-tuning) |
|---|---|---|
| 本质 | 给模型提供外部知识 | 修改模型内部参数 |
| 知识更新 | 实时更新,改数据库就行 | 需要重新训练,成本高 |
| 幻觉控制 | 强(答案有据可查) | 弱(模型可能自由发挥) |
| 训练成本 | 几乎为零 | 需要GPU资源和时间 |
| 适用场景 | 知识问答、文档检索、实时信息 | 风格模仿、指令遵循、特定任务 |
| 数据要求 | 不需要标注数据 | 需要高质量标注数据 |
说白了,RAG 是让模型「查资料」,微调是让模型「变聪明」。两者不是互斥的,我见过很多项目是先用RAG快速上线,再逐步用微调优化模型本身的回答质量。
1.3 RAG的典型应用场景——我见过的真实案例
RAG 的应用场景其实比大多数人想象的要广。我挑几个典型的说说:
场景一:企业知识库问答
这是最常见的。公司内部有海量的文档、制度、流程,员工想查个东西翻半天。用RAG搭一个内部问答系统,问「年假怎么休?」直接给出制度原文和计算方式。我曾经帮一家制造业公司做过,上线后IT部门的咨询量直接降了60%。
场景二:智能客服
电商、金融、保险行业用得最多。客户问「我的保单什么时候生效?」系统先去保单数据库检索,再结合产品条款生成回答。比传统的关键词匹配灵活太多了。
场景三:法律/医疗辅助
这两个领域对准确性要求极高。律师问「这个案例适用哪条法规?」系统检索相关法条和判例,然后给出分析。注意,这里RAG只是辅助,最终决策还是人来做。
场景四:代码辅助
嗯,这个可能有点意外。但确实有团队用RAG做内部代码库的问答。比如问「我们项目里用户登录的逻辑在哪?」系统检索代码仓库,找到相关函数和注释。比翻GitHub快多了。
1.4 课程目标与前置知识——这门课能带给你什么
这门课的目标很明确:让你从零搭建一个生产级的RAG系统。
不是那种跑个demo就完事的教程,而是真正能上线的方案。我们会覆盖:
- 文档解析与分块——PDF、Word、网页怎么处理?分块策略怎么选?
- 向量化与检索——Embedding模型怎么选?向量数据库用哪个?
- 检索策略优化——HyDE、RAPTOR、Self-RAG这些高级玩法怎么用?
- 生成与评估——怎么让模型生成更准确?怎么评估RAG的效果?
- 工程化落地——性能优化、监控、迭代,一个都不能少
前置知识方面,你需要:
- Python基础——能写简单的脚本,懂基本的API调用
- 了解大模型基本概念——知道什么是LLM、什么是Prompt
- 一点点数据库知识——知道什么是索引、什么是查询就够了
不需要你懂深度学习原理,也不需要你会训练模型。这门课更偏向工程实践,我会把每个环节的「坑」和「技巧」都讲清楚。
好,第一章就到这里。下一章我们直接动手——从文档解析和分块开始,这是RAG系统的第一步,也是最容易被忽视的一步。到时候我会分享一个我踩过的坑,保证让你印象深刻。