这是让 LLM 做你想要的事情的三种方式,在不同的层次上工作:prompting 塑造行为,RAG 注入知识,fine-tuning 改变模型。
三种方法
- Prompt engineering — 通过 prompt 中的指令、context 和示例来塑造模型的行为。模型本身没有改变;你只是更好地进行沟通(system prompts、few-shot examples、output format)。最便宜和最快;你的首选方案。
- RAG (retrieval-augmented generation) — 在查询时,检索相关文档(来自 vector store、database 或搜索)并将其插入 prompt。模型从提供的 context 中回答。最适合知识外部、私有或不断变化的情况。
- Fine-tuning — 继续在你自己的示例上训练模型,调整其权重。这融入了一致的风格、格式或狭隘的技能。功能强大但成本高且静态 — 知识在训练时被冻结。
对比
| Prompt engineering | RAG | Fine-tuning | |
|---|---|---|---|
| 改变 | Prompt | Prompt(+ retrieval) | Model weights |
| 最适合 | 行为、格式、语气 | 最新/私有事实 | 一致的风格、狭隘的任务 |
| 知识的新鲜度 | N/A | 实时(重新索引数据) | 在训练时冻结 |
| 成本/工作量 | 最低 | 中等(基础设施) | 最高(训练 + 数据) |
| 更新 | 编辑文本 | 更新索引 | 重新训练 |
决策指南
- 从prompting开始 — 先免费解决它。
- 需要模型不知道或会变化的事实(文档、价格、内部数据)?使用 RAG。
- 需要大规模的可靠风格/格式或专业任务,而 prompting 不够一致?Fine-tune。
- 这些可以结合:一个带 RAG 和好 prompt 的 fine-tuned 模型在生产中很常见。
为什么这很重要
使用错误的工具很昂贵:人们经常尝试 fine-tune 来添加知识(RAG 做得更好更便宜)或修复行为(prompting 可以处理)。知道prompting 塑造行为,RAG 提供知识,fine-tuning 改变模型让你可以选择最便宜的有效方法 — 并有意地结合它们,而不是意外地组合。
