主题
高频面试题
如何结合 RAG 和 Fine-tuning 来提升提示词效果?
面试官问这题,是想看你有没有把“Prompt 写不好”背后的知识、能力、风格和流程问题拆开处理。
面试官角度分析,想考什么
- 什么问题靠 Prompt,什么问题靠 RAG,什么问题靠 Fine-tuning?
考察边界意识,而不是把所有问题都塞进提示词。 - RAG 和 Fine-tuning 能不能互相替代?
考察对知识更新、行为风格、领域能力和成本的理解。 - 组合方案怎么设计?
考察能否把检索、提示词、模型后训练和评估闭环串起来。 - 什么时候不应该 Fine-tuning?
考察数据规模、维护成本和收益判断。
可直接抄走的 30 秒参考答案
text
我会先区分问题类型:Prompt 解决任务表达、格式和约束;RAG 解决模型不知道或需要引用的外部知识;Fine-tuning 解决稳定的行为模式、领域风格和重复任务。实际项目里通常先用 Prompt 做清晰模板,再用 RAG 注入可信资料,最后把高频失败样本沉淀成微调数据。三者不是替代关系,而是分别作用在任务层、知识层和模型行为层。面试回答详解,知其所以然
这道题的关键是先拆问题。很多团队说“Prompt 效果差”,其实可能是知识缺失、任务模式不稳定、输出格式不稳或模型能力不足。
1. Prompt 适合解决什么
Prompt 最适合解决任务表达和运行时约束:
- 明确角色、任务、输入和输出格式。
- 指定回答边界、拒答条件和引用要求。
- 注入当前用户上下文、工具说明和业务流程。
- 通过 Few-shot 示例引导少量格式或风格。
Prompt 的优势是改动快、成本低、可灰度。缺点是上下文有限,复杂规则堆多了会变脆。
2. RAG 适合解决什么
RAG 适合补充外部知识:
- 企业私有知识库。
- 高频更新的产品规则、价格、政策和文档。
- 需要引用来源的问答。
- 长尾知识覆盖。
RAG 的重点不是“把更多文档塞给模型”,而是检索到正确、精简、可信的上下文,再用 Prompt 约束模型基于资料回答。
3. Fine-tuning 适合解决什么
Fine-tuning 更适合固化稳定模式:
- 固定语气和风格。
- 特定领域的表达习惯。
- 重复出现的分类、抽取、改写模式。
- 某类工具调用或结构化输出习惯。
它不适合频繁变化的知识。把产品政策、库存、价格训进模型,维护成本会很高,而且更新不及时。
4. 一个组合架构
text
用户输入
-> 意图识别和安全检查
-> RAG 检索相关资料
-> Prompt 模板组装任务、资料、约束和输出格式
-> 模型生成
-> 结构校验 / 事实核验 / 引用检查
-> 失败样本回流到评估集,必要时进入微调数据池在这个架构里,Prompt 是编排层,RAG 是知识层,Fine-tuning 是模型行为层。
5. 选择顺序
一般建议:
- 先用 Prompt 和结构化输出把任务说清楚。
- 如果缺知识或需要引用,上 RAG。
- 如果大量样本显示同类行为反复不稳,再考虑 Fine-tuning。
- 所有改动都进入评估闭环。
Fine-tuning 应该是数据积累后的工程选择,不是调 Prompt 调累了之后的情绪选择。
面试官追问3个问题
追问一:为什么不把知识直接 Fine-tuning 进模型?
- 考察点:知识更新和可追溯性。
- 回答方向:动态知识适合 RAG,因为可更新、可引用、可删除;Fine-tuning 更适合稳定行为和风格。
追问二:RAG 已经有了,Prompt 还重要吗?
- 考察点:是否理解生成阶段约束。
- 回答方向:重要。RAG 只给材料,Prompt 决定如何使用材料、如何拒答、如何引用和如何输出。
追问三:微调数据从哪里来?
- 考察点:数据闭环。
- 回答方向:来自线上失败样本、人工修正、高置信标注和离线评估集;要清洗、去重、分层,并保留验证集防止过拟合。
扩展知识
判断是否需要 Fine-tuning 的信号
- 已有足够高质量输入输出样本。
- Prompt 已经清晰,但模型仍反复在同类模式上出错。
- 任务稳定,规则短期不会频繁变化。
- 线上收益能覆盖训练、评估和维护成本。
RAG 和 Prompt 的配合关键
- 检索片段要少而准。
- 每个片段最好带来源、时间和可信度。
- Prompt 要明确资料优先级。
- 输出要能区分“资料支持”和“模型推断”。