[{"data":1,"prerenderedAt":667},["ShallowReactive",2],{"header-counts":3,"footer-counts":6,"wiki-fine-tuning-vs-rag":9},{"tools":4,"reviews":5},65,7,{"tools":4,"reviews":5,"playbooks":7,"news":8},10,8,{"id":10,"title":11,"body":12,"category":649,"description":543,"extension":650,"meta":651,"navigation":652,"path":653,"published":654,"relatedModels":655,"relatedTools":656,"seo":659,"slug":660,"stem":661,"summary":662,"tags":663,"updated":654,"__hash__":666},"wiki\u002Fwiki\u002Ffine-tuning-vs-rag.md","Fine-tuning vs RAG",{"type":13,"value":14,"toc":619},"minimark",[15,19,23,40,43,46,187,191,194,264,273,277,282,285,288,292,295,298,302,305,308,312,315,318,322,326,329,333,336,340,343,347,350,354,357,426,433,437,440,501,507,510,513,533,544,547,550,554,557,561,564,568,571,575,578,581,587,590],[16,17,18],"h2",{"id":18},"概述",[20,21,22],"p",{},"当通用大模型不够用时，有两种主流方案让它适应特定场景：",[24,25,26,34],"ul",{},[27,28,29,33],"li",{},[30,31,32],"strong",{},"Fine-tuning"," — 用领域数据重新训练模型，调整内部权重",[27,35,36,39],{},[30,37,38],{},"RAG"," — 不动模型，检索外部知识作为上下文",[20,41,42],{},"90% 的场景应该用 RAG。但什么时候该用 Fine-tuning？本文帮你判断。",[16,44,45],{"id":45},"对比",[47,48,49,63],"table",{},[50,51,52],"thead",{},[53,54,55,59,61],"tr",{},[56,57,58],"th",{},"维度",[56,60,32],{},[56,62,38],{},[64,65,66,78,89,100,111,122,133,144,155,165,176],"tbody",{},[53,67,68,72,75],{},[69,70,71],"td",{},"原理",[69,73,74],{},"修改模型权重",[69,76,77],{},"检索外部知识",[53,79,80,83,86],{},[69,81,82],{},"知识更新",[69,84,85],{},"需重新训练",[69,87,88],{},"更新文档即可",[53,90,91,94,97],{},[69,92,93],{},"计算成本",[69,95,96],{},"高（GPU 训练）",[69,98,99],{},"低（检索+推理）",[53,101,102,105,108],{},[69,103,104],{},"数据需求",[69,106,107],{},"千条以上标注数据",[69,109,110],{},"文档即可",[53,112,113,116,119],{},[69,114,115],{},"延迟",[69,117,118],{},"不变",[69,120,121],{},"略增（检索时间）",[53,123,124,127,130],{},[69,125,126],{},"可解释性",[69,128,129],{},"低（黑盒）",[69,131,132],{},"高（能标注来源）",[53,134,135,138,141],{},[69,136,137],{},"幻觉控制",[69,139,140],{},"一般",[69,142,143],{},"好（有出处）",[53,145,146,149,152],{},[69,147,148],{},"风格调整",[69,150,151],{},"✅",[69,153,154],{},"❌",[53,156,157,160,162],{},[69,158,159],{},"格式调整",[69,161,151],{},[69,163,164],{},"⚠️ 靠 prompt",[53,166,167,170,173],{},[69,168,169],{},"事实性知识",[69,171,172],{},"❌ 不推荐",[69,174,175],{},"✅ 推荐",[53,177,178,181,184],{},[69,179,180],{},"私有数据",[69,182,183],{},"⚠️ 有泄露风险",[69,185,186],{},"✅ 数据在本地",[16,188,190],{"id":189},"fine-tuning-的几种姿势","Fine-tuning 的几种姿势",[20,192,193],{},"业内说\"做 fine-tuning\"时通常指三种不同的事，混着用容易踩坑：",[47,195,196,212],{},[50,197,198],{},[53,199,200,203,206,209],{},[56,201,202],{},"类型",[56,204,205],{},"做什么",[56,207,208],{},"数据要求",[56,210,211],{},"适合",[64,213,214,231,248],{},[53,215,216,222,225,228],{},[69,217,218,221],{},[30,219,220],{},"SFT","（Supervised Fine-Tuning）",[69,223,224],{},"给输入-输出对，教模型新行为\u002F格式",[69,226,227],{},"千-万条标注",[69,229,230],{},"风格、格式、领域语言",[53,232,233,239,242,245],{},[69,234,235,238],{},[30,236,237],{},"DPO","（Direct Preference Optimization）",[69,240,241],{},"给\"更好的\"和\"更差的\"两个回答，让模型学偏好",[69,243,244],{},"数千 pair",[69,246,247],{},"对齐人类偏好、减少幻觉",[53,249,250,255,258,261],{},[69,251,252],{},[30,253,254],{},"RLHF",[69,256,257],{},"DPO 的前身，用奖励模型 + PPO，工程链复杂",[69,259,260],{},"万级 + 奖励模型",[69,262,263],{},"大厂基座对齐",[20,265,266,267,272],{},"中小团队 90% 的「fine-tune」需求其实是 SFT。配合 ",[268,269,271],"a",{"href":270},"\u002Fwiki\u002Flora.html","LoRA"," \u002F QLoRA，单张 4090 就能跑动 7B-13B 模型的 SFT。",[16,274,276],{"id":275},"什么时候用-fine-tuning","什么时候用 Fine-tuning",[278,279,281],"h3",{"id":280},"_1-调整输出风格","1. 调整输出风格",[20,283,284],{},"模型需要特定的写作风格、语气、格式，而这些很难用 prompt 描述清楚。",[20,286,287],{},"例子：让模型模仿某个品牌的文案风格、生成特定格式的法律文书。",[278,289,291],{"id":290},"_2-特定领域术语","2. 特定领域术语",[20,293,294],{},"模型对某个领域的专业术语理解不准确，需要大量领域数据训练。",[20,296,297],{},"例子：医学影像报告生成、法律条文引用。",[278,299,301],{"id":300},"_3-降低推理成本","3. 降低推理成本",[20,303,304],{},"把 prompt 中的大量指令\"固化\"到模型权重中，减少每次推理的 token 用量。",[20,306,307],{},"例子：固定格式的客服分类、情感分析。",[278,309,311],{"id":310},"_4-任务专精","4. 任务专精",[20,313,314],{},"模型需要在某个窄任务上达到极致表现，牺牲通用能力换取专业能力。",[20,316,317],{},"例子：代码补全专用模型、SQL 生成专用模型。",[16,319,321],{"id":320},"什么时候用-rag","什么时候用 RAG",[278,323,325],{"id":324},"_1-知识库问答","1. 知识库问答 ✅",[20,327,328],{},"企业内部文档、产品手册、FAQ 问答。这是 RAG 的主场。",[278,330,332],{"id":331},"_2-实时信息","2. 实时信息 ✅",[20,334,335],{},"需要查最新数据（股价、天气、新闻）。Fine-tuning 无法解决知识时效性。",[278,337,339],{"id":338},"_3-多源知识","3. 多源知识 ✅",[20,341,342],{},"需要综合多个文档来源回答问题。Fine-tuning 会把知识\"混\"在一起，RAG 能精确标注来源。",[278,344,346],{"id":345},"_4-数据安全敏感","4. 数据安全敏感 ✅",[20,348,349],{},"数据不能进入模型权重（合规、隐私）。RAG 把数据放在外部知识库，可控制访问权限。",[16,351,353],{"id":352},"主流-fine-tuning-服务对比","主流 Fine-tuning 服务对比",[20,355,356],{},"如果决定做 SFT，三条路线：",[47,358,359,374],{},[50,360,361],{},[53,362,363,366,368,371],{},[56,364,365],{},"路线",[56,367,211],{},[56,369,370],{},"代价",[56,372,373],{},"限制",[64,375,376,392,409],{},[53,377,378,383,386,389],{},[69,379,380],{},[30,381,382],{},"OpenAI \u002F Anthropic Fine-tuning API",[69,384,385],{},"不想动 GPU、对 GPT\u002FClaude 系列做 SFT",[69,387,388],{},"训练按 token 计费，推理价格略高于基础模型",[69,390,391],{},"闭源模型，只能在原厂托管",[53,393,394,400,403,406],{},[69,395,396,399],{},[30,397,398],{},"自托管 LoRA","（LLaMA-Factory \u002F Axolotl）",[69,401,402],{},"开源模型（Qwen \u002F Llama \u002F DeepSeek）、私有部署",[69,404,405],{},"一张 A100 \u002F 4090 + 一周折腾",[69,407,408],{},"自己负责训练 + 推理基建",[53,410,411,417,420,423],{},[69,412,413,416],{},[30,414,415],{},"托管训练平台","（Together \u002F Anyscale \u002F 国内火山）",[69,418,419],{},"开源模型、不想自己搭训练环境",[69,421,422],{},"介于上面两者之间",[69,424,425],{},"模型权重归你，托管推理",[20,427,428,429,432],{},"经验法则：",[30,430,431],{},"先试 prompt + RAG，搞不定再试 SFT，SFT 搞不定再试 DPO","。直接上 RLHF 是大厂才该做的事。",[16,434,436],{"id":435},"成本量化粗略数量级","成本量化（粗略数量级）",[20,438,439],{},"按 100 万条对话场景估算：",[47,441,442,455],{},[50,443,444],{},[53,445,446,449,452],{},[56,447,448],{},"方案",[56,450,451],{},"一次性成本",[56,453,454],{},"持续成本",[64,456,457,468,479,490],{},[53,458,459,462,465],{},[69,460,461],{},"Prompt + RAG",[69,463,464],{},"几百块（向量库 + embed）",[69,466,467],{},"按调用次数 × token 价",[53,469,470,473,476],{},[69,471,472],{},"LoRA SFT（开源 7B）",[69,474,475],{},"几千-几万（GPU 租用 + 数据标注）",[69,477,478],{},"推理便宜，但要自己运维",[53,480,481,484,487],{},[69,482,483],{},"全量微调（7B 闭源 API）",[69,485,486],{},"几万-几十万（标注 + 训练费）",[69,488,489],{},"推理价 ≈ 基础模型的 1.5-3x",[53,491,492,495,498],{},[69,493,494],{},"全量微调（70B 自托管）",[69,496,497],{},"十万级起",[69,499,500],{},"持续 GPU 集群",[20,502,503,506],{},[30,504,505],{},"先算账再决定","——很多团队 fine-tune 完一年的推理增量成本就超过了节省的 prompt token 钱。",[16,508,509],{"id":509},"可以组合使用",[20,511,512],{},"Fine-tuning 和 RAG 不是互斥的。最佳实践：",[514,515,516,522,527],"ol",{},[27,517,518,521],{},[30,519,520],{},"Fine-tune"," 调整模型风格和格式",[27,523,524,526],{},[30,525,38],{}," 提供事实性知识",[27,528,529,532],{},[30,530,531],{},"Prompt"," 控制行为规范",[534,535,540],"pre",{"className":536,"code":538,"language":539},[537],"language-text","用户提问\n  ↓\nRAG 检索相关文档\n  ↓\nFine-tuned 模型（已有正确风格）\n  + 检索到的文档上下文\n  + System Prompt（行为规范）\n  → 生成回答\n","text",[541,542,538],"code",{"__ignoreMap":543},"",[20,545,546],{},"真实案例：客服场景——用 SFT 教模型\"用什么语气说话\"和\"什么不能承诺\"，用 RAG 提供商品\u002F订单实时数据。两者分工明确，单独用任何一个都做不好。",[16,548,549],{"id":549},"常见误区",[278,551,553],{"id":552},"误区-1-我们的数据很特殊必须-fine-tune","误区 1: \"我们的数据很特殊，必须 fine-tune\"",[20,555,556],{},"大多数情况下，你的数据只是\"模型没见过\"而非\"模型理解不了\"。RAG 就能让模型看到你的数据。",[278,558,560],{"id":559},"误区-2-fine-tuning-会让模型更聪明","误区 2: \"Fine-tuning 会让模型更聪明\"",[20,562,563],{},"Fine-tuning 调整的是行为模式，不是知识。模型不会因为 fine-tuning 就变得更擅长推理。",[278,565,567],{"id":566},"误区-3-fine-tuning-后不需要-prompt-了","误区 3: \"Fine-tuning 后不需要 prompt 了\"",[20,569,570],{},"Fine-tuning 后仍需要好的 prompt。Fine-tuning 只是让模型在特定模式下更可靠。",[278,572,574],{"id":573},"误区-4-fine-tune-一次就一劳永逸","误区 4: \"Fine-tune 一次就一劳永逸\"",[20,576,577],{},"模型升级（GPT-4 → GPT-5、Claude 3 → Claude 4），你的 fine-tune 模型还停在旧基座。要么不升级享受不到新能力，要么重新跑训练流程。RAG 没这问题。",[16,579,580],{"id":580},"决策树",[534,582,585],{"className":583,"code":584,"language":539},[537],"你的需求是什么？\n├─ 让模型知道新知识 → RAG\n├─ 让模型改变输出风格 → Fine-tuning（SFT）\n├─ 让模型理解领域术语 → 先 RAG（喂术语表），不行再 SFT\n├─ 让模型用特定格式输出 → 先 Structured Output \u002F Prompt，不行再 SFT\n├─ 让模型基于私有数据回答 → RAG\n├─ 减少幻觉 \u002F 对齐偏好 → DPO\n└─ 以上多个 → RAG + SFT 组合\n",[541,586,584],{"__ignoreMap":543},[16,588,589],{"id":589},"延伸阅读",[24,591,592,598,605,612],{},[27,593,594,595],{},"高效微调：",[268,596,597],{"href":270},"LoRA（低秩适配）",[27,599,600,601],{},"检索架构：",[268,602,604],{"href":603},"\u002Fwiki\u002Frag.html","RAG（检索增强生成）",[27,606,607,608],{},"数据准备：",[268,609,611],{"href":610},"\u002Fwiki\u002Fembedding.html","Embedding",[27,613,614,615],{},"控制输出：",[268,616,618],{"href":617},"\u002Fwiki\u002Fprompt-engineering.html","Prompt Engineering",{"title":543,"searchDepth":620,"depth":620,"links":621},3,[622,624,625,626,632,638,639,640,641,647,648],{"id":18,"depth":623,"text":18},2,{"id":45,"depth":623,"text":45},{"id":189,"depth":623,"text":190},{"id":275,"depth":623,"text":276,"children":627},[628,629,630,631],{"id":280,"depth":620,"text":281},{"id":290,"depth":620,"text":291},{"id":300,"depth":620,"text":301},{"id":310,"depth":620,"text":311},{"id":320,"depth":623,"text":321,"children":633},[634,635,636,637],{"id":324,"depth":620,"text":325},{"id":331,"depth":620,"text":332},{"id":338,"depth":620,"text":339},{"id":345,"depth":620,"text":346},{"id":352,"depth":623,"text":353},{"id":435,"depth":623,"text":436},{"id":509,"depth":623,"text":509},{"id":549,"depth":623,"text":549,"children":642},[643,644,645,646],{"id":552,"depth":620,"text":553},{"id":559,"depth":620,"text":560},{"id":566,"depth":620,"text":567},{"id":573,"depth":620,"text":574},{"id":580,"depth":623,"text":580},{"id":589,"depth":623,"text":589},"methodology","md",{},true,"\u002Fwiki\u002Ffine-tuning-vs-rag","2026-06-21",null,[657,658],"agent\u002Fplatform\u002Fdify","agent\u002Fplatform\u002Ffastgpt",{"title":11,"description":543},"fine-tuning-vs-rag","wiki\u002Ffine-tuning-vs-rag","两种让大模型适应特定场景的方法对比：Fine-tuning 修改模型权重，RAG 引入外部知识。大多数场景应该用 RAG。",[32,38,664,665],"模型微调","方法论","7woP_8rBJsgZtuRZpWqq8ZQ4Dg4j8-07DICupRLownE",1782316490733]