欢迎来到”小白讲 AI”系列第 07 篇。当你想让 AI 回答关于你们公司产品的问题,或者让它掌握某个专业领域的知识时,通常有两条路可以走:Fine-tuning(微调)和 RAG(检索增强生成)。今天我们就用最通俗的方式,把这两种方法讲清楚,帮你做出正确的选择。

1. 开场类比:上专业课 vs 开卷考试

想象你有一个刚毕业的大学生(这就是大语言模型),他什么都懂一点,但对你公司的业务一窍不通。现在你要让他能回答客户的专业问题,怎么办?

Fine-tuning 就像把他送去上专业课。 你花时间把公司的产品手册、技术文档、历史案例统统教给他。课程结束后,他把这些知识”刻进了脑子里”,以后回答问题时直接从记忆中提取,不需要翻任何资料。好处是反应快、回答自然;缺点是培训成本高,而且如果产品更新了,你得重新送他回去”进修”。

RAG 就像让他开卷考试。 你不需要把所有东西都教给他,而是给他准备一个资料库。每次客户提问时,他先快速翻阅相关资料,找到最相关的几页,然后基于这些资料来组织答案。好处是资料随时可以更新,他永远能拿到最新的信息;缺点是每次回答都要先”翻书”,会稍慢一点,回答质量也取决于他能不能找到正确的资料。

这个类比基本上概括了两者的核心区别。接下来我们分别深入看看。

2. Fine-tuning 是什么:在已有模型基础上,用你的数据继续训练

Fine-tuning,中文叫”微调”,本质上是在一个已经训练好的大模型基础上,用你自己的数据再做一轮训练。

打个比方:大模型出厂时就像一个受过通识教育的人,他读过海量的书籍和网页,具备了强大的语言理解和生成能力。Fine-tuning 就是在这个基础上给他”加餐”——喂入你准备好的专业数据,让模型的参数做出微小的调整,从而学会你的专业知识和表达风格。

Fine-tuning 的典型流程是这样的:

  1. 准备数据:整理出成百上千条”问题-回答”的配对数据,或者你希望模型学习的文本素材。数据的质量直接决定了微调的效果——垃圾进,垃圾出。
  2. 选择基础模型:挑一个现成的大模型作为起点,比如 LLaMA、Mistral 等开源模型,或者使用 OpenAI 等厂商提供的微调服务。
  3. 开始训练:把数据喂给模型,让它在 GPU 上跑几个小时到几天不等。这一步需要一定的算力投入。
  4. 评估与部署:训练完成后,你会得到一个”定制版”模型,它已经把你的知识融入了自身的参数中。经过测试评估后就可以上线使用了。

Fine-tuning 的优势在于:模型把知识内化了,推理时不需要额外的检索步骤,响应速度快;而且它能学会特定的语气、格式和风格,比如你可以让它学会用你们公司的口吻来回答问题,或者让它学会按照特定模板输出结构化内容。

但它也有明显的局限:训练需要 GPU 算力,成本不低;每次知识更新都意味着要重新训练;而且模型可能会”记错”或者”编造”(产生幻觉),你也很难追溯它的回答到底来自哪条训练数据。

3. RAG 是什么:检索增强生成——先搜索相关文档,再让 AI 基于文档回答

RAG 全称是 Retrieval-Augmented Generation,翻译过来就是”检索增强生成”。名字虽然拗口,但原理非常直观——先搜索,再回答

回到我们前面的类比:考试的时候允许翻书。学生本身的能力没有变化,但因为可以查阅资料,他的回答会更加准确和有据可依。

RAG 的核心思路是这样的:你有一堆文档(产品说明书、FAQ、技术文档等等),当用户提出问题时,系统先从这堆文档中检索出最相关的几段内容,然后把这些内容和用户的问题一起交给大模型,让大模型”基于以下资料来回答用户的问题”。

这种方式的好处是显而易见的:

  • 知识随时更新:文档库换一批新文档就行,不需要重新训练模型。今天上线一个新产品,今天就能回答相关问题。
  • 可溯源:每个回答都可以标注”这段话来自某某文档第几页”,方便验证和审计。
  • 幻觉更少:因为模型是基于给定的资料来回答,而不是凭记忆”编”,所以胡说八道的概率大大降低。
  • 成本更低:不需要昂贵的 GPU 训练,只需要搭建一个检索系统。

当然,RAG 也不是完美的。它的回答质量高度依赖检索的质量——如果检索环节没找到正确的文档,模型也巧妇难为无米之炊。另外,每次回答都要先检索再生成,整体延迟会比纯模型推理稍高一些。

4. 对比表格

把两者放在一起对比,会更加清晰:

维度 Fine-tuning(微调) RAG(检索增强生成)
成本 高(需要 GPU 训练) 较低(主要是向量库和检索服务)
响应延迟 低(直接推理) 稍高(检索 + 推理两步走)
知识更新频率 低(每次更新需重新训练) 高(替换文档即可生效)
幻觉控制 较难(知识融入参数,难以溯源) 较好(回答基于原文,可溯源)
个性化风格 强(可以学会特定语气和格式) 一般(依赖 Prompt 引导)
适用场景 风格迁移、特定领域的深度理解 知识库问答、文档检索、客服系统
数据隐私 数据融入模型参数 数据存储在可控的向量库中
技术门槛 较高(需要了解训练流程) 中等(搭建检索管道即可)

一句话总结:如果你的知识变化不大、追求极致体验,考虑 Fine-tuning;如果你的知识经常更新、需要可溯源的回答,选 RAG。

5. RAG 工作流详解

RAG 虽然概念简单,但实际搭建时有一套完整的流程。让我们一步步拆解:文档切片 → Embedding → 存向量库 → 用户提问 → 检索 → 拼 Prompt → 生成回答

第一步:文档切片(Chunking)

你的原始文档可能是几十页的 PDF、上百篇博客文章、或者一整本产品手册。这些文档不能直接扔进去用,需要先切成小块(通常叫 chunk),每块大概几百字到一两千字。

为什么要切?两个原因:一是大模型的输入窗口有限,你不可能每次都把整本书塞进去;二是切小了之后,检索才能更精准地定位到相关段落,而不是返回一整篇无关的长文。

切片有很多策略:按段落切、按固定字数切、按语义切。好的切片策略能显著提升最终的回答质量——切太大会检索不精准,切太小会丢失上下文。

第二步:Embedding(向量化)

切好的文本块需要被转换成数学表示——一串数字组成的向量(你可以理解为一个坐标点)。这个过程叫 Embedding。

你可以把它理解为给每段文字生成一个”语义指纹”。语义相近的文字,其”指纹”也会相似,在向量空间中距离更近。比如”如何退货”和”退款流程是什么”这两句话,虽然用词完全不同,但它们的 Embedding 向量会非常接近。这就是向量检索比传统关键词搜索高明的地方——它理解语义,而不是简单匹配字面。

第三步:存入向量数据库

生成的向量需要存到一个专门的数据库里,常见的选择有 Milvus、Pinecone、Weaviate、Chroma、Qdrant 等。向量数据库的核心能力是相似性搜索:给定一个查询向量,它能极快地从几百万条向量中找出最相似的那几条。

第四步:用户提问

用户输入一个问题,比如”你们的产品支持退货吗?”

第五步:检索相关文档块

系统把用户的问题也做一次 Embedding,生成查询向量,然后去向量数据库里做相似性搜索,找出与问题最相关的 3~5 个文档块。这一步就像在图书馆里,根据你的问题快速找到最相关的几本书、翻到最相关的几页。

第六步:拼装 Prompt

把检索到的文档块和用户的原始问题组装成一个完整的 Prompt,发给大模型。大概长这样:

请根据以下参考资料回答用户的问题。如果资料中没有相关信息,请诚实说明。

参考资料:
[检索到的文档块 1]
[检索到的文档块 2]
[检索到的文档块 3]

用户问题:你们的产品支持退货吗?

第七步:生成回答

大模型基于这个包含参考资料的 Prompt 生成最终的回答。因为有了参考资料的”锚定”,模型的回答会更加准确、更有依据,也更容易做到”有理有据”。

6. 什么时候用哪个:决策流程

面对一个具体需求,怎么快速做出选择?你可以按照下面的决策流程来判断:

第一问:你的核心需求是”学会一种风格”还是”掌握一批知识”?

  • 如果你希望模型学会特定的写作风格、回答语气、输出格式(比如写法律文书、生成医学报告)→ 倾向 Fine-tuning
  • 如果你希望模型能够回答关于特定知识库的问题(比如公司 FAQ、产品文档)→ 倾向 RAG

第二问:你的知识多久更新一次?

  • 知识相对稳定,几个月才变一次 → Fine-tuning 可以接受
  • 知识频繁变动,每天甚至每小时都有新内容 → 必须用 RAG

第三问:你是否需要回答可溯源?

  • 需要引用来源、支持事实核查 → RAG 天然支持
  • 不太在意来源,只要回答好就行 → 两者都可以

第四问:你的预算和技术能力如何?

  • 预算有限、团队不熟悉模型训练 → RAG 入手更容易
  • 有充足预算和 GPU 资源 → 可以尝试 Fine-tuning

总结一下:对大多数企业应用场景来说,RAG 是更务实的起点。 它搭建成本低、见效快、知识更新方便。只有当你发现 RAG 在风格表达或深度理解方面不够用时,再考虑引入 Fine-tuning。

7. 混合方案:先 RAG 兜底,再针对高频场景做 Fine-tuning

实际上,这两种方法并不是非此即彼的关系。很多成熟的 AI 系统采用的是混合方案——RAG 和 Fine-tuning 双管齐下,各取所长。

典型的混合策略是这样的:

第一阶段:先用 RAG 快速上线。 搭建一个基于文档检索的问答系统,覆盖所有已知的知识。这一步让系统快速投入使用,能回答大部分常见问题。不需要训练模型,只需要准备好文档和向量库就行。

第二阶段:收集数据,分析高频场景。 系统运行一段时间后,收集用户的真实问题,统计出现频率最高的问题类型和场景。比如你可能发现”物流查询”占了 30%、”退换货政策”占了 20%。

第三阶段:针对高频场景做 Fine-tuning。 把这些高频问题和理想答案整理成训练数据,对模型做一轮微调。这样模型在处理这类常见问题时,就不需要每次都去检索了,响应更快、回答质量更稳定、语气也更符合品牌调性。

第四阶段:RAG 继续处理长尾问题。 那些出现频率不高的问题、或者知识经常变化的内容,依然交给 RAG 来处理。这样就形成了一个高频走”快车道”、长尾走”灵活通道”的架构。

举个现实中的例子:某电商公司的客服 AI 系统,用 RAG 连接了产品数据库和售后政策文档,能回答大部分商品咨询和售后问题。同时,他们发现”物流状态查询”类问题占了总量的 30%,于是专门针对这类问题做了 Fine-tuning,让模型学会了直接理解物流状态并给出标准化的回复,响应时间缩短了一半,客户满意度提升明显。

这种”先 RAG 后 Fine-tuning”的渐进策略,最大的好处是用数据说话——Fine-tuning 的训练数据来自真实用户需求,而不是拍脑袋猜测,效果自然更好。同时也降低了启动成本,让你先用最小投入验证业务可行性,再逐步加码优化。


延伸阅读

如果你想更深入了解 Fine-tuning 和 RAG,推荐以下资源:

  1. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks —— RAG 的原始论文,由 Meta AI 团队发表,是这一领域的开山之作。虽然是英文论文,但核心思路和我们文中讲的一致。
  2. LangChain 官方文档 —— 目前最流行的 LLM 应用开发框架之一,提供了完整的 RAG 搭建教程和丰富的代码示例,适合动手实践。
  3. OpenAI Fine-tuning Guide —— OpenAI 官方的微调指南,其中关于数据准备和最佳实践的内容非常实用,即使你不用 OpenAI 的模型也值得参考。