Q934项目实战与企业级真题解析通用与软实力AgentAlpha 社区真题库约 8 分钟更新 2026-09-29

微调和 Prompt 工程怎么取舍

微调和 Prompt 工程怎么取舍

P1 · general_interview · 🏢 美团

1️⃣ 考察意图

面试官想看你是否真正理解微调(Fine-tuning)和 Prompt 工程(Prompt Engineering)的底层差异,而非简单背诵“数据多就微调、数据少就 Prompt”。这是一道工程取舍题,刁钻点在于:候选人常忽略成本、稳定性、模型更新风险等非技术因素。答好了能展示你在实际项目中做技术选型的系统思维——能根据任务类型、数据规模、部署环境,给出可落地的决策框架,而非纸上谈兵。

2️⃣ 标准答

核心原则:Prompt 工程是零成本快速验证,微调是固化能力的高成本投资。取舍取决于三个维度:任务本质、数据资源、运维约束。

1. 任务本质:知识 vs. 行为

  • 需要学习新知识(如特定领域实体、私有格式输出)→ 微调。例如:医疗报告生成,模型需理解“ICD-10 编码”这种训练数据外的知识,Prompt 无法注入新事实,只能靠微调让模型记住。
  • 仅需调整行为或风格(如语气、输出结构)→ Prompt。例如:客服回复要“礼貌且简洁”,用 system prompt 加 few-shot 示例即可,微调反而可能过拟合。
  • 坑:很多人误以为 Prompt 能“教会”模型新知识,实际 LLM 的上下文窗口有限,长上下文下模型会“迷失在中间”(Lost in the Middle),知识注入效果极差。

2. 数据资源:数量与质量

  • 微调门槛:至少 500-1000 条高质量标注数据(LoRA 可降至 100 条,但需覆盖边缘 case)。数据质量比数量更重要——一条错误标签会污染整个 LoRA 权重。
  • Prompt 门槛:零数据成本,但需要精心设计示例。Few-shot 示例数量建议 3-5 个,太多会超过模型注意力瓶颈(如 GPT-4 在 10-shot 后性能反而下降)。
  • 工程取舍:微调后模型行为固化,适合高频稳定任务(如意图识别);Prompt 灵活但易受模型更新影响(如 GPT-4 升级后,旧 Prompt 可能失效)。实际落地中,我会先用 Prompt 跑 1000 条线上日志,看准确率是否达标(比如 >85%),不达标再考虑微调。

3. 运维约束:成本与风险

  • 成本:微调需要 GPU 算力(LoRA 微调 7B 模型约 2 小时/千条数据,成本约 $10-20),且需维护模型版本和部署流水线。Prompt 工程只需修改文本,秒级生效。
  • 模型更新风险:微调后的模型若基座升级(如 GPT-4 到 GPT-4o),需重新微调;Prompt 只需微调文本,但可能因模型行为变化而失效。我曾在项目中遇到:GPT-4 升级后,旧 Prompt 的 JSON 输出格式全乱,被迫紧急回滚。
  • 实际解法:先用 Prompt 做 MVP,验证业务价值;对关键子任务(如实体抽取)用 LoRA 微调,并定期用验证集监控漂移。例如:在客服意图识别中,我设计实验:分别用 Prompt(含 5-shot)和 LoRA 微调,在 100/500/2000 条数据下对比准确率。结果:100 条时 Prompt 胜出(82% vs 78%),2000 条时 LoRA 反超(94% vs 88%),且 LoRA 延迟仅增加 5ms。

4. 结合使用:分层策略

  • 第一层:用 Prompt 做粗粒度分类(如“是否属于客服问题”),快速过滤。
  • 第二层:对关键子任务(如“退款原因提取”)用微调模型,保证精度。
  • 第三层:用 Reranker(如 Cohere Rerank 3)对微调结果做二次排序,弥补微调在长尾 case 上的不足。

3️⃣ 答题模板(30 秒电梯版)

“这个问题我从任务本质、数据资源、运维约束三个层面回答。任务层面:需要新知识就微调,仅改行为就 Prompt;数据层面:微调需要千条高质量数据,Prompt 零成本但需精心设计 few-shot;运维层面:微调固化但成本高,Prompt 灵活但易受模型更新影响。总结一句:先用 Prompt 快速验证,再对关键子任务用 LoRA 微调,并定期监控漂移。”

4️⃣ 高频追问 & 应对

追问 1:如果数据只有 50 条,但任务要求高精度(如法律合同条款识别),你怎么选?

50 条数据不足以支撑微调,我会优先用 Prompt 加 few-shot,并引入外部知识库(如检索增强 RAG)。具体:用 BM25 检索相似条款作为上下文,再让模型基于示例输出。如果效果仍不达标,考虑用 GPT-4 的 API 做数据增强(生成 500 条合成数据),再用 LoRA 微调。注意:合成数据需人工校验,否则会引入噪声。

追问 2:微调后模型在验证集上准确率 95%,但线上 A/B 测试发现某些 case 表现变差,怎么排查?

这是典型的“分布偏移”问题。我会先对比验证集和线上数据的特征分布(如实体类型、句子长度),看是否线上有未覆盖的 case。然后做错误分析:将线上失败 case 聚类,看是微调过拟合了训练数据中的噪声,还是 Prompt 的 few-shot 示例与微调模型冲突。解法:用 LoRA 微调时保留基座模型的原始权重,只更新 adapter,这样可快速回滚;同时用线上日志构建增量训练集,做持续微调。

追问 3:如果基座模型从 GPT-4 换成开源模型(如 Llama 3),你的取舍策略会变吗?

会。开源模型微调成本更低(可本地部署),但 Prompt 工程效果可能不如 GPT-4(因为指令遵循能力弱)。策略调整:优先用 Prompt 验证任务可行性,若效果差(比如准确率 <70%),直接上 LoRA 微调,因为开源模型微调后能明显提升领域能力。另外,开源模型更新风险低(版本可控),但需自己维护部署和监控。

5️⃣ 避坑 · 常见错误答法

  • ❌ “微调比 Prompt 好,因为能定制模型。” → ✅ 微调不是万能药:如果任务只需改输出格式(如 JSON 转 Markdown),Prompt 成本更低且更灵活。微调会固化模型,后续改需求需重新训练。
  • ❌ “Prompt 工程就是写几个例子,很简单。” → ✅ Prompt 工程需要系统设计:包括 system prompt 的指令优先级、few-shot 示例的多样性、输出格式约束(如 JSON Schema),以及对抗攻击(如 prompt injection)防护。一个坏 Prompt 可能导致 10% 的准确率下降。
  • ❌ “数据多就微调,数据少就 Prompt。” → ✅ 还要看任务类型:如果数据多但任务简单(如情感分类),Prompt 可能够用;如果数据少但任务需要新知识(如医疗诊断),微调(用 LoRA 加数据增强)可能更优。

6️⃣ 简历呼应

  • 如果你有 RAG 项目:从“Prompt 工程 + 检索增强”切入,说明如何用 Prompt 做粗粒度过滤,再用微调模型做精排。例如:在文档问答中,先用 BM25 检索 top-10 文档,再用微调后的 BERT 做 rerank。
  • 如果你只做过传统 NLP:用“特征工程 vs. 模型训练”类比:Prompt 工程像特征工程(快速迭代),微调像训练全连接层(需大量数据)。强调你理解两者在成本、稳定性上的 trade-off。
  • 如果你是校招无项目:聚焦论文复现:比如用 LoRA 微调 Llama 3 做情感分类,对比 Prompt 的 few-shot 效果,并分析数据量对性能的影响。可提 Hugging Face 的 PEFT 库和 OpenAI 的 Prompt 最佳实践。
  • 《LoRA: Low-Rank Adaptation of Large Language Models》(Hu et al., 2021)
  • 《Prompt Engineering Guide》(DAIR.AI 开源指南)
  • 《Lost in the Middle: How Language Models Use Long Contexts》(Liu et al., 2023)
  • 《Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet》(Anthropic, 2024)
  • 《RAG vs. Fine-tuning: Pipelines, Tradeoffs, and a Case Study》(LlamaIndex 博客)

—— 本场面试完 ——

我们不做玩具级 Demo 教学。训练营的作业是开源项目和论文——我们想陪伴你,做出能改变生活、最后改变世界的项目。