微调还是 RAG?一道大模型落地的灵魂选择题

微调还是 RAG?一道大模型落地的灵魂选择题

团队常陷入两个极端:要么无脑微调,要么一切靠 RAG。其实三者定位完全不同。

一、三者定位

手段 解决什么 不动模型权重 数据需求
Prompt 任务定义、格式、风格 ✅ 0
RAG 注入私有/最新知识 ✅ 文档库
Fine-tuning 改变行为模式、学会特定“腔调/能力” ❌ 数百~数千条样本

一句话:知识用 RAG,能力用微调,任务用 Prompt。

二、微调到底改了什么

微调是拿你的数据继续训练,让模型“内化”某种模式。常见三类:

  • 全量微调(Full FT):改全部参数,成本高、易灾难性遗忘,少用。
  • LoRA:只训练低秩适配矩阵,原权重冻结。显存省 3–5 倍,可热插拔多个“技能包”。
  • QLoRA:LoRA + 4-bit 量化,消费级显卡也能跑(如 24G 显存训 7B/13B)。
# 用 HuggingFace PEFT 做 LoRA(示意)
peft_config = LoraConfig(
    r=8, lora_alpha=16, target_modules=["q_proj","v_proj"],
    task_type="CAUSAL_LM")
model = get_peft_model(base_model, peft_config)

三、决策树

Q1: 需要模型"知道"私有/最新事实吗?
 ├─ 是 → 用 RAG(知识不该写进权重)
 └─ 否 → 看 Q2

Q2: 需要改变"怎么想/怎么说"吗?(如特定文体、结构化抽取、拒答边界)
 ├─ 是 → 数据够(>500条) → 微调(LoRA/QLoRA)
 │       数据少 → 先用 Few-shot Prompt 顶着
 └─ 否 → 纯 Prompt 即可

四、什么时候“不要”微调

  • 只是想让模型“知道公司手册” → RAG 更准、更可更新、零训练成本。
  • 数据只有几十条 → 微调必过拟合,Few-shot 更稳。
  • 知识频繁变动(价格、库存)→ 绝对别微调,RAG 才是正道。

五、成本与迭代

  • RAG:边际成本≈检索+生成,知识更新只重建索引,分钟级。
  • 微调:训练一次几小时~几天,推理仍需部署,更新要重训。适合“半年不变的行为”。

经验:90% 的业务场景,RAG + 好的 Prompt 就够了。把微调留给“真的要改模型能力”的那 10%。

下一篇聊把模型搬回家:模型量化与本地部署。

← 返回首页