Skip to content

高频面试题

如何结合 RAG 和 Fine-tuning 来提升提示词效果?

面试官问这题,是想看你有没有把“Prompt 写不好”背后的知识、能力、风格和流程问题拆开处理。

适合阶段:AI 应用架构 / RAG 面试核心能力:方案选型 · 数据闭环 · 成本权衡

面试官角度分析,想考什么

  • 什么问题靠 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. 选择顺序

一般建议:

  1. 先用 Prompt 和结构化输出把任务说清楚。
  2. 如果缺知识或需要引用,上 RAG。
  3. 如果大量样本显示同类行为反复不稳,再考虑 Fine-tuning。
  4. 所有改动都进入评估闭环。

Fine-tuning 应该是数据积累后的工程选择,不是调 Prompt 调累了之后的情绪选择。

面试官追问3个问题

追问一:为什么不把知识直接 Fine-tuning 进模型?

  • 考察点:知识更新和可追溯性。
  • 回答方向:动态知识适合 RAG,因为可更新、可引用、可删除;Fine-tuning 更适合稳定行为和风格。

追问二:RAG 已经有了,Prompt 还重要吗?

  • 考察点:是否理解生成阶段约束。
  • 回答方向:重要。RAG 只给材料,Prompt 决定如何使用材料、如何拒答、如何引用和如何输出。

追问三:微调数据从哪里来?

  • 考察点:数据闭环。
  • 回答方向:来自线上失败样本、人工修正、高置信标注和离线评估集;要清洗、去重、分层,并保留验证集防止过拟合。

扩展知识

判断是否需要 Fine-tuning 的信号

  • 已有足够高质量输入输出样本。
  • Prompt 已经清晰,但模型仍反复在同类模式上出错。
  • 任务稳定,规则短期不会频繁变化。
  • 线上收益能覆盖训练、评估和维护成本。

RAG 和 Prompt 的配合关键

  • 检索片段要少而准。
  • 每个片段最好带来源、时间和可信度。
  • Prompt 要明确资料优先级。
  • 输出要能区分“资料支持”和“模型推断”。

基于 MIT 协议开源