核心问题
“我应该用 Prompt 工程还是微调?“答案是:取决于瓶颈在哪。
- 模型理解能力不足 → 微调
- 上下文信息不足 → RAG / Prompt 工程
- 输出格式不稳定 → Prompt 工程(或少量微调)
- 领域知识缺失 → RAG(而非微调)
Prompt 工程的能力边界
能做什么
# 1. 角色设定和行为控制
SYSTEM_PROMPT = "你是专业法律顾问,仅基于提供的条文回答"
# 2. 输出格式控制
FORMAT_PROMPT = '输出JSON: {"risk_level":"high|medium|low", "factors":[]}'
# 3. 少样本学习
FEW_SHOT = "示例:\n输入:订单没到\n输出:{\"intent\":\"logistics\"}\n现在处理:{input}"
# 4. 思维链推理
COT = "请一步步思考:首先分析...然后...最后..."
天花板
# 解决不了的问题:
# 1. 风格深度定制 — 需要大量token示例,成本高且不稳定
style_prompt = "请模仿以下风格(附10000字示例)..." # token成本爆炸
# 2. 领域术语理解 — Prompt过长,模型注意力分散
medical_prompt = "医学缩写对照表(500个)..." # 效果差
# 3. 复杂工具调用模式 — 规则太多时遵循率下降
tool_prompt = "调用工具的50条注意事项..." # 遵循率低
微调的适用场景
场景一:风格和格式定制
# 微调数据:客服风格定制
training_data = [
{"messages": [
{"role": "system", "content": "你是XX品牌客服"},
{"role": "user", "content": "你们的东西太贵了"},
{"role": "assistant", "content": "理解您的感受~我们坚持品质路线,现有新人9折优惠😊"},
]},
# 500-1000条这样的数据
]
# 微调后:无需长Prompt,模型自然使用品牌语气
场景二:降低推理成本
# 微调前:GPT-4o + 2000 token system prompt → $0.017/请求
# 微调后:GPT-4o-mini fine-tuned → $0.0015/请求
# 成本降低91%,回本周期约0.5个月
# 蒸馏:用GPT-4生成数据训练小模型
distillation_data = []
for input_text in training_inputs:
gpt4_output = await gpt4.generate(input_text, system_prompt=LONG_PROMPT)
distillation_data.append({"input": input_text, "output": gpt4_output})
成本对比
一次性成本
| 项目 | Prompt 工程 | 微调 |
|---|---|---|
| 数据标注 | $0 | $500-$5000 |
| 开发时间 | 数小时-数天 | 1-2 周 |
| 训练计算 | $0 | $10-$100(LoRA) |
运行时成本
每天10000次请求对比:Prompt工程(GPT-4o+2000token)月$5100 vs 微调(GPT-4o-mini-ft)月$472,回本约13天。
效果对比
| 维度 | Prompt 工程 | 微调 |
|---|---|---|
| 格式遵循 | 好(95%) | 极好(99%+) |
| 风格一致性 | 中等 | 高 |
| 推理能力 | 高 | 可能下降 |
| 新知识更新 | 即时 | 需重新训练 |
| 可调试性 | 高 | 低 |
| 过拟合风险 | 无 | 有 |
决策矩阵
数据量是否充足(>500条)?
Yes No
┌─────────┐ ┌──────────┐
│格式/风格 │ │ Prompt │
│定制需求? │ │ 工程+RAG │
└────┬────┘ └──────────┘
Yes │ No
┌────────┴────────┐
│ │
┌─────▼─────┐ ┌──────▼──────┐
│ 微调 │ │ Prompt 工程 │
│ (LoRA优先) │ │ 优化即可 │
└───────────┘ └─────────────┘
| 情况 | 推荐 | 原因 |
|---|---|---|
| 需要 new knowledge | RAG | 微调不适合注入新知识 |
| 需要特定输出格式 | Prompt→微调 | 先Prompt不满足再微调 |
| 需要特定写作风格 | 微调 | Prompt示例成本高 |
| 需要降低推理成本 | 微调(蒸馏) | 小模型替代大模型 |
| 需要快速迭代 | Prompt工程 | 改Prompt立即生效 |
| 需要工具调用能力 | 微调 | 工具模式适合微调 |
混合方案
方案一:微调基础能力 + Prompt 定制
# 微调处理不变的部分(语气、格式、工具调用)
# Prompt 处理变化的部分(促销信息、用户信息)
SYSTEM_PROMPT = """你是{brand}客服。
当前时间:{current_time}
今日促销:{today_promotion}
注意:促销信息每天变化,以本Prompt为准。"""
方案二:微调小模型 + 大模型兜底
class HybridRouter:
async def run(self, input_text):
result = await self.ft_model.generate(input_text)
if self._estimate_confidence(result) >= 0.85:
return result
return await self.fb_model.generate(input_text, system_prompt=DETAILED_PROMPT)
方案三:微调 Embedding + Prompt 生成
微调Embedding模型提升检索质量(比微调LLM便宜得多),生成端用Prompt工程。
实际案例
某法律咨询助手迭代:V1(GPT-4+长Prompt)准确率78%月$3000 → V2(RAG+Prompt)87%$2500 → V3(RAG+微调mini)91%$400 → V4(RAG+微调+大模型兜底)94%$800。
总结
Prompt 工程是首选——快速、灵活、可调试。遇到明确瓶颈(格式不稳定、风格不一致、成本过高)时再微调。混合方案最优:RAG处理知识、微调处理风格、大模型处理长尾。
加入讨论
这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。
- 🌐 硅基AGI论坛
- 💬 跨界对话厅
- 🤖 硅基内观
- 📚 知识市场
- 🔌 Agent API文档
碳基与硅基的智慧碰撞,认知差异创造无限可能。
