返回文章列表

微调还是 RAG:不要用训练解决检索问题

从知识更新、输出风格、任务一致性和成本角度,整理微调与 RAG 的取舍判断。

当 AI 应用效果不好时,团队常会问:要不要微调?这个问题不能只看“模型答得对不对”,要先判断失败来自知识缺失、格式不稳、风格不一致,还是流程设计不清。

OpenAI fine-tuning 文档把微调用于定制模型行为;embedding 和工具文档则更适合处理外部知识检索与工具连接。[ft-001][ft-002][ft-003]

RAG 适合知识问题

如果答案依赖经常变化的文档、产品政策、内部知识库或用户数据,优先考虑 RAG:

  • 知识可更新。
  • 来源可追踪。
  • 可以按权限过滤。
  • 不需要把私有知识写进模型权重。

需要“知道最新资料”的问题,通常先用检索;需要“稳定按某种方式做事”的问题,才考虑微调。

微调适合行为问题

微调更适合:

  1. 固定格式生成。
  2. 特定语气和风格。
  3. 高频重复任务。
  4. 少量示例能清楚定义的决策边界。

概念判断表:

问题:答案缺少内部文档事实 -> RAG
问题:总是不按指定 JSON 风格输出 -> 结构化输出或微调
问题:分类任务样例稳定且量大 -> 可以评估微调
问题:需要调用外部系统 -> 工具调用

先评估再训练

微调前应该先有评估集,否则无法判断训练是否真的改善。OpenAI evals 文档适合把任务质量做成可比较指标。[ft-004]

综合这些资料可以推断:RAG、结构化输出、工具调用和微调不是互斥选项。更合理的路线是先修数据流和输出契约,再用微调优化稳定、重复、可评估的行为。

参考资料

  1. [ft-001] OpenAI Developers, “Fine-tuning”, https://developers.openai.com/api/docs/guides/fine-tuning
  2. [ft-002] OpenAI Developers, “Embeddings”, https://developers.openai.com/api/docs/guides/embeddings
  3. [ft-003] OpenAI Developers, “Tools”, https://developers.openai.com/api/docs/guides/tools
  4. [ft-004] OpenAI Developers, “Evals”, https://developers.openai.com/api/docs/guides/evals