跳到主内容
AIHO 2026 全新改版上线
方法论Fine-tuningRAG模型微调方法论

Fine-tuning vs RAG

两种让大模型适应特定场景的方法对比:Fine-tuning 修改模型权重,RAG 引入外部知识。大多数场景应该用 RAG。

概述

当通用大模型不够用时,有两种主流方案让它适应特定场景:

  • Fine-tuning — 用领域数据重新训练模型,调整内部权重
  • RAG — 不动模型,检索外部知识作为上下文

90% 的场景应该用 RAG。但什么时候该用 Fine-tuning?本文帮你判断。

对比

维度Fine-tuningRAG
原理修改模型权重检索外部知识
知识更新需重新训练更新文档即可
计算成本高(GPU 训练)低(检索+推理)
数据需求千条以上标注数据文档即可
延迟不变略增(检索时间)
可解释性低(黑盒)高(能标注来源)
幻觉控制一般好(有出处)
风格调整
格式调整⚠️ 靠 prompt
事实性知识❌ 不推荐✅ 推荐
私有数据⚠️ 有泄露风险✅ 数据在本地

Fine-tuning 的几种姿势

业内说"做 fine-tuning"时通常指三种不同的事,混着用容易踩坑:

类型做什么数据要求适合
SFT(Supervised Fine-Tuning)给输入-输出对,教模型新行为/格式千-万条标注风格、格式、领域语言
DPO(Direct Preference Optimization)给"更好的"和"更差的"两个回答,让模型学偏好数千 pair对齐人类偏好、减少幻觉
RLHFDPO 的前身,用奖励模型 + PPO,工程链复杂万级 + 奖励模型大厂基座对齐

中小团队 90% 的「fine-tune」需求其实是 SFT。配合 LoRA / QLoRA,单张 4090 就能跑动 7B-13B 模型的 SFT。

什么时候用 Fine-tuning

1. 调整输出风格

模型需要特定的写作风格、语气、格式,而这些很难用 prompt 描述清楚。

例子:让模型模仿某个品牌的文案风格、生成特定格式的法律文书。

2. 特定领域术语

模型对某个领域的专业术语理解不准确,需要大量领域数据训练。

例子:医学影像报告生成、法律条文引用。

3. 降低推理成本

把 prompt 中的大量指令"固化"到模型权重中,减少每次推理的 token 用量。

例子:固定格式的客服分类、情感分析。

4. 任务专精

模型需要在某个窄任务上达到极致表现,牺牲通用能力换取专业能力。

例子:代码补全专用模型、SQL 生成专用模型。

什么时候用 RAG

1. 知识库问答 ✅

企业内部文档、产品手册、FAQ 问答。这是 RAG 的主场。

2. 实时信息 ✅

需要查最新数据(股价、天气、新闻)。Fine-tuning 无法解决知识时效性。

3. 多源知识 ✅

需要综合多个文档来源回答问题。Fine-tuning 会把知识"混"在一起,RAG 能精确标注来源。

4. 数据安全敏感 ✅

数据不能进入模型权重(合规、隐私)。RAG 把数据放在外部知识库,可控制访问权限。

主流 Fine-tuning 服务对比

如果决定做 SFT,三条路线:

路线适合代价限制
OpenAI / Anthropic Fine-tuning API不想动 GPU、对 GPT/Claude 系列做 SFT训练按 token 计费,推理价格略高于基础模型闭源模型,只能在原厂托管
自托管 LoRA(LLaMA-Factory / Axolotl)开源模型(Qwen / Llama / DeepSeek)、私有部署一张 A100 / 4090 + 一周折腾自己负责训练 + 推理基建
托管训练平台(Together / Anyscale / 国内火山)开源模型、不想自己搭训练环境介于上面两者之间模型权重归你,托管推理

经验法则:先试 prompt + RAG,搞不定再试 SFT,SFT 搞不定再试 DPO。直接上 RLHF 是大厂才该做的事。

成本量化(粗略数量级)

按 100 万条对话场景估算:

方案一次性成本持续成本
Prompt + RAG几百块(向量库 + embed)按调用次数 × token 价
LoRA SFT(开源 7B)几千-几万(GPU 租用 + 数据标注)推理便宜,但要自己运维
全量微调(7B 闭源 API)几万-几十万(标注 + 训练费)推理价 ≈ 基础模型的 1.5-3x
全量微调(70B 自托管)十万级起持续 GPU 集群

先算账再决定——很多团队 fine-tune 完一年的推理增量成本就超过了节省的 prompt token 钱。

可以组合使用

Fine-tuning 和 RAG 不是互斥的。最佳实践:

  1. Fine-tune 调整模型风格和格式
  2. RAG 提供事实性知识
  3. Prompt 控制行为规范
用户提问
  ↓
RAG 检索相关文档
  ↓
Fine-tuned 模型(已有正确风格)
  + 检索到的文档上下文
  + System Prompt(行为规范)
  → 生成回答

真实案例:客服场景——用 SFT 教模型"用什么语气说话"和"什么不能承诺",用 RAG 提供商品/订单实时数据。两者分工明确,单独用任何一个都做不好。

常见误区

误区 1: "我们的数据很特殊,必须 fine-tune"

大多数情况下,你的数据只是"模型没见过"而非"模型理解不了"。RAG 就能让模型看到你的数据。

误区 2: "Fine-tuning 会让模型更聪明"

Fine-tuning 调整的是行为模式,不是知识。模型不会因为 fine-tuning 就变得更擅长推理。

误区 3: "Fine-tuning 后不需要 prompt 了"

Fine-tuning 后仍需要好的 prompt。Fine-tuning 只是让模型在特定模式下更可靠。

误区 4: "Fine-tune 一次就一劳永逸"

模型升级(GPT-4 → GPT-5、Claude 3 → Claude 4),你的 fine-tune 模型还停在旧基座。要么不升级享受不到新能力,要么重新跑训练流程。RAG 没这问题。

决策树

你的需求是什么?
├─ 让模型知道新知识 → RAG
├─ 让模型改变输出风格 → Fine-tuning(SFT)
├─ 让模型理解领域术语 → 先 RAG(喂术语表),不行再 SFT
├─ 让模型用特定格式输出 → 先 Structured Output / Prompt,不行再 SFT
├─ 让模型基于私有数据回答 → RAG
├─ 减少幻觉 / 对齐偏好 → DPO
└─ 以上多个 → RAG + SFT 组合

延伸阅读