微调还是 RAG:不要用训练解决检索问题
从知识更新、输出风格、任务一致性和成本角度,整理微调与 RAG 的取舍判断。
当 AI 应用效果不好时,团队常会问:要不要微调?这个问题不能只看“模型答得对不对”,要先判断失败来自知识缺失、格式不稳、风格不一致,还是流程设计不清。
OpenAI fine-tuning 文档把微调用于定制模型行为;embedding 和工具文档则更适合处理外部知识检索与工具连接。[ft-001][ft-002][ft-003]
RAG 适合知识问题
如果答案依赖经常变化的文档、产品政策、内部知识库或用户数据,优先考虑 RAG:
- 知识可更新。
- 来源可追踪。
- 可以按权限过滤。
- 不需要把私有知识写进模型权重。
需要“知道最新资料”的问题,通常先用检索;需要“稳定按某种方式做事”的问题,才考虑微调。
微调适合行为问题
微调更适合:
- 固定格式生成。
- 特定语气和风格。
- 高频重复任务。
- 少量示例能清楚定义的决策边界。
概念判断表:
问题:答案缺少内部文档事实 -> RAG
问题:总是不按指定 JSON 风格输出 -> 结构化输出或微调
问题:分类任务样例稳定且量大 -> 可以评估微调
问题:需要调用外部系统 -> 工具调用先评估再训练
微调前应该先有评估集,否则无法判断训练是否真的改善。OpenAI evals 文档适合把任务质量做成可比较指标。[ft-004]
综合这些资料可以推断:RAG、结构化输出、工具调用和微调不是互斥选项。更合理的路线是先修数据流和输出契约,再用微调优化稳定、重复、可评估的行为。
参考资料
- [ft-001] OpenAI Developers, “Fine-tuning”, https://developers.openai.com/api/docs/guides/fine-tuning
- [ft-002] OpenAI Developers, “Embeddings”, https://developers.openai.com/api/docs/guides/embeddings
- [ft-003] OpenAI Developers, “Tools”, https://developers.openai.com/api/docs/guides/tools
- [ft-004] OpenAI Developers, “Evals”, https://developers.openai.com/api/docs/guides/evals