Appearance
背景
面对领域特定的任务时,实践者在将 LLM 适配到自己的用例时有三个基本杠杆可以动用:提示工程(Prompt Engineering)、检索增强生成(Retrieval-Augmented Generation, RAG) 和 微调(Fine-Tuning)。这三种方式代表了根本不同的方法——一个修改输入,一个修改检索上下文,一个修改模型权重本身。
理解它们之间的权衡是 LLM 应用开发中最基础的决策。选择不当会浪费时间、金钱,或让性能白白流失。本页面提供一个结构化的对比分析来指导这一决策。
策略定义
提示工程 —— 通过编写更好的提示词、指令和少样本示例来引导模型行为,无需更改任何代码或权重。这是最便宜、最快的杠杆。技术包括系统提示、角色指令、思维链(Chain-of-Thought)和上下文示例。
检索增强生成(RAG) —— 在推理时,从外部知识库检索文档并将其注入模型的上下文窗口。模型本身保持冻结;只有上下文发生变化。完整指南参见 Retrieval Augmented Generation。
微调 —— 通过在领域特定数据上训练来更新模型权重,改变模型的内部表示和行为。包括全量微调(所有权重)和参数高效方法(如 LoRA,仅调整适配器权重)。详见 Fine-tuning。
多维度对比表
| 维度 | 提示工程 | RAG | 微调 |
|---|---|---|---|
| 知识整合 | 非常有限——依赖模型的参数化知识 + 上下文中的少样本示例 | 出色——动态、基于检索到的文档 | 一般——将知识嵌入权重,但训练后为静态 |
| 行为修改 | 有限——可引导语气/格式,但无法改变模型的核心行为 | 弱——检索不改变模型行为 | 强——可从根本上改变输出风格、格式、拒绝模式 |
| 实现复杂度 | 无——零代码,纯文本 | 中等——需要嵌入管道、向量数据库、检索逻辑 | 高——需要训练管道、GPU、数据集整理 |
| 成本(每 token vs 前期) | 可忽略——无基础设施或训练成本 | 中等——嵌入 + 向量数据库 + 每次查询更高的 token 消耗 | 前期成本高——训练需 GPU 小时;每 token 推理成本较低 |
| 延迟影响 | 无——与基础模型相同 | 检索步骤增加延迟(通常 10–200ms) | 无——与基础模型相同(或用更小的微调模型更快) |
| 数据需求 | 3–10 个上下文示例 | 知识库需 100+ 份文档 | 500–10,000+ 标注样本以获得高质量结果 |
| 可维护性 | 非常容易——仅需编辑文本 | 中等——维护嵌入管道、更新文档 | 困难——每次数据/行为更新都需重新训练 |
| 幻觉影响 | 无缓解——依赖模型的参数化知识 | 强缓解——回答基于检索上下文;AI Hallucination 率显著下降 | 轻度缓解——模型可能记住事实,但在训练分布之外仍可能产生幻觉 |
| 可测试性 | 容易——固定提示下具有确定性 | 中等——检索质量有波动;需分别测试检索和生成 | 困难——行为变化是涌现的;评估需要仔细留出验证集 |
| 定制深度 | 仅表层 | 中等——定制知识但不改变行为 | 深度——为你的领域重构模型内部 |
详细分析
提示工程:第一道杠杆
提示工程始终是正确的起点。它不需要任何基础设施,不需要训练数据,通过精心编写的指令通常就能达到 80% 的期望效果。系统提示、角色扮演和少样本示例等技术在摘要、分类和简单信息提取等任务中效果显著。
适用场景: 你需要快速迭代,任务定义清晰,且模型的基础知识足够。也适用于在投入 RAG 或微调基础设施之前快速验证用例原型。
局限性: 提示工程有天花板。你无法仅靠提示词教会模型新的事实、改变其基本行为模式或保证一致的输出格式。长提示还会消耗大量 token 并可能削弱指令遵循能力。
RAG:知识密集型任务的最优解
当任务依赖于事实、文档或随时间变化的半结构化数据时,RAG 表现出色。通过将回答扎根于检索到的上下文,RAG 提供了引用来源、降低了 AI Hallucination,并能够利用模型在训练期间从未见过的知识源。
适用场景: 客户支持(基于产品手册)、法律文档分析、研究助手,以及任何事实准确性和可验证性比风格一致性更重要的应用。RAG 天然适合与 AI Agents 和 Model Context Protocol (MCP) 配合使用,以提供工具支持的知识。
相对于微调的关键优势: RAG 的知识通过更改文档库即可更新——无需重新训练。对于频繁更新的领域(如产品文档、监管规则),这是决定性的运维优势。
微调:行为与风格变更的最优解
微调改变的是模型如何思考,而不仅仅是它知道什么。这使得它成为输出行为比事实回忆更重要的任务的正确选择——例如格式遵循、人格一致性、语气控制,或降低已允许任务中的拒绝率。
适用场景: 需要遵循组织特定编码规范的代码生成、需要严格格式化的医疗记录摘要、需要一致品牌声音的面向客户的聊天机器人,或专门的分类任务。
成本权衡: 微调前期成本高昂(GPU 小时、数据集整理),但可以通过让较小的模型达到大模型的性能来降低每 token 成本。一个微调后的 7B 模型在狭窄任务上可以超越 GPT-4,而推理成本仅为后者的一小部分。关于高效部署微调模型的指导,参见 Model Inference & Deployment。
决策框架
推荐的决策流程遵循从低到高复杂度的递进路径:
从这里开始
│
▼
仅靠提示工程能解决吗? ───► 能 → 使用提示工程 ✅
│ 不能
▼
任务是否依赖特定知识 │
或频繁更新的信息? ───► 是 → 使用 RAG ✅
│ 否 │
▼ ▼
任务是否需要一致的 如果知识有帮助,
输出格式、风格或行为? 也考虑使用 RAG
│
▼ 是
│
使用微调 ✅
│
▼
既需要知识又需要行为?
│
▼
三者组合使用(见下文)经验法则: "先试提示工程 → 如果任务偏重知识则试 RAG → 如果需要行为/风格变更则试微调。"
组合策略
大多数生产系统会协同使用全部三种策略。它们并非互斥——每种策略解决不同维度的问题:
| 层级 | 策略 | 作用 |
|---|---|---|
| 系统指令 | 提示工程 | 设定行为、角色、语气 |
| 检索上下文 | RAG | 提供事实、依据、引用 |
| 模型权重 | 微调 | 强制输出格式、领域风格、底层行为 |
真实案例:
客户支持聊天机器人: 提示工程定义客服人格和对话流程。RAG 检索产品文档、退货政策和账户特定数据。微调让模型学会遵循严格的 JSON 响应模式并避免编造政策细节。
代码生成工具: 提示工程提供任务描述和语言约束。RAG 检索相关库文档、API 签名或内部代码片段。微调确保生成的代码遵循组织的风格指南、命名约定和架构模式。
医疗摘要: 提示工程指导模型按临床记录结构输出。RAG 从 EHR 数据库中拉取患者病史、化验结果和药物相互作用信息。微调让模型掌握医学术语、缩写约定和合规要求(HIPAA 安全输出)。
常见误区
在 RAG 就够用的情况下过度投入微调。 微调需要 GPU 时间、精心的数据集整理和持续维护。如果你的任务主要是回答文档集中的问题,RAG 几乎总是更好的首选投资。
低估提示工程的上限。 许多团队在没有穷尽提示工程选项的情况下就直接跳到 RAG 或微调。一个精心设计的系统提示加上 3–5 个精心挑选的少样本示例,在基准任务上可以媲美简单的 RAG 管道。先把提示词打磨到位。
在向上升级之前没有迭代优化 RAG 质量。 如果你的 RAG 管道检索质量差(错误的 chunk、糟糕的嵌入、缺失的文档),微调无法修复它——而且你将无法判断问题出在检索还是生成上。独立衡量检索召回率。关于选择检索后端的指导,参见 Embedding Models / Vector Representations。
忽视耦合效应。 任何一项策略的变更都可能影响其他策略。一次改变输出风格的微调运行可能会破坏精心调好的 RAG 提示。将提示词、检索配置和适配器权重作为一个整体进行版本管理。
认为微调可以减少幻觉。 如果训练数据包含矛盾或模型过拟合到虚假模式,微调实际上可能增加幻觉风险。RAG 是更可靠的幻觉缓解策略。
与 RAG vs 长上下文的关系
本对比(RAG vs 微调 vs 提示工程)与 RAG vs Long Context 问题是正交的。RAG vs 长上下文回答的是:既然我需要注入知识,是应该检索还是把所有内容塞进长上下文窗口? 而 RAG vs 微调 vs 提示工程回答的是:我应该使用哪种基本策略(或组合)来将模型适配到我的任务?
你可以处于这个 2×2 矩阵中的任意一格:
| 短上下文足够 | 需要长上下文 | |
|---|---|---|
| 需要知识 | 纯 RAG | RAG + 长上下文 或 仅长上下文 |
| 需要行为 | 微调 + 提示工程 | 微调 + 提示工程 + RAG |
| 两者都需要 | 三者组合 | 三者组合 + 长上下文考量 |
两个决策框架是互补的。首先决定是否需要 RAG、微调或提示工程(本页面)。如果选择了 RAG,再通过 RAG vs Long Context 对比决定使用哪种 RAG 变体。
来源
- Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (NeurIPS 2020) —— RAG 奠基性论文
- Hu et al., LoRA: Low-Rank Adaptation of Large Language Models (ICLR 2022) —— 参数高效微调
- Wei et al., Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (NeurIPS 2022) —— 提示工程的重要进展
- Borgeaud et al., Improving Language Models by Retrieving from Trillions of Tokens (ICML 2022) —— RETRO,大规模检索
- OpenAI, GPT-4 Technical Report (2023) —— 上下文学习能力
- LangChain RAG Evaluation Guide —— RAG 质量评估实践指南
- Anthropic Prompt Engineering Guide —— 提示工程最佳实践