HelloAI
决策树

🤔 RAG vs 微调 vs 长上下文

让 LLM 用上你的数据,主要 3 条路。**90% 的情况下答案是 RAG**,但剩下 10% 怎么判断?

3 条路线一句话区分

路线本质类比
RAG每次回答前先查资料开卷考试
微调用你的数据再训练一次模型请家教反复辅导
长上下文把所有资料直接塞进 prompt把教材摆桌上一起看

10 个判断维度

维度RAG微调长上下文
数据量无限1K-100K 样本< 200K tokens
数据更新频率实时训练后固定每次 prompt 现塞
初始成本中(搭索引擎)高(训练 + 调参)极低(直接塞)
每次调用成本高(token 多)
溯源 / 引用✅ 容易❌ 难✅ 容易
学风格 / 行话❌ 弱✅ 强⚠️ 一般
学新事实✅ 容易⚠️ 需大量数据✅ 容易
幻觉控制✅ 好⚠️ 一般✅ 好
延迟+检索 100ms+0(同基模)+ 长 prompt 处理
工程复杂度极低

决策流程

📍 起点:我想让 LLM 用上"我的数据"
├─ 数据 < 200K tokens 且不常变?
└─ ✅ 长上下文(最简单,先试这个)
├─ 数据量大 + 需要溯源 + 经常更新?
└─ ✅ RAG(90% 场景的答案)
├─ 想改模型的"风格 / 语气 / 输出格式"?
└─ ✅ 微调(LoRA 即可,不用全量)
├─ 学一个新领域的专业术语 + 推理模式?
└─ ✅ 微调 + RAG 组合
└─ 不知道?
└─ 默认 RAG,遇到瓶颈再升级

真实场景对照

✅ RAG 最适合

  • 企业知识库问答(员工手册 / 产品文档 / 客户 FAQ)
  • 客服机器人(动态产品库存 + 政策)
  • 法律检索(按案例库回答)
  • 新闻摘要 / 新论文综述
  • 个人笔记助手(Obsidian / Notion 接 RAG)

✅ 微调最适合

  • 客服调到"公司语气"(比如保持品牌风格)
  • 输出严格结构化 JSON(基模做不到的细致格式)
  • 医学 / 法律术语的精准使用
  • 本地小模型蒸馏(让 7B 接近 GPT-4 水平的某个任务)
  • 分类 / 抽取这类有大量标注数据的任务

✅ 长上下文最适合

  • 一次性分析一份长文档(合同 / 报告 / 论文)
  • 代码库 review(几十 K-几百 K tokens)
  • 视频字幕分析(Gemini 1M 上下文)
  • Few-shot 学习(10-100 个示例直接 in-context)
  • 原型阶段(先用长上下文跑通,规模化时再上 RAG)

常见组合

  • RAG + 微调:检索找事实,微调调风格。最常见的"专业 Agent"组合。
  • RAG + 长上下文:检索 top-10 文档(每个 5K-10K),全塞 prompt(Gemini 1M)。
  • 层次化 RAG:先粗筛 100 → 精排 10 → 重读全文 1。质量比朴素 RAG 高 30-50%。
  • Adaptive RAG:先让 LLM 判断"这题要不要查资料",省钱省时。

新手最常见的错误

  • "我要训练个自己的 ChatGPT" → 99% 情况下你想要的是 RAG,不是从头训练或微调
  • 用微调来加新知识 → 效果远不如 RAG,而且更新麻烦
  • RAG 系统不做 reranker → top-k 召回质量决定一切,必加 rerank
  • chunk 切得太大 / 太小 → 经验:300-800 tokens + overlap 50-100,先试再调
  • 不评估 → 用 RAGAS / TruLens / 自己造测试集,没有 eval 等于盲飞

下一步