一句话结论
OpenAI 微调(Fine-tuning)是在基础模型上用你自己的「输入→输出」样例做二次训练,让它稳定学会你业务的专属风格、格式与知识;当提示词工程已优化到位、却仍要更强一致性或更低推理成本时,它就是下一步。
微调到底解决了什么
通用模型已经很强,但在三类场景里光靠提示词不够:
- 格式一致性:每次都要输出固定 JSON 字段、固定文案语气,提示词难以 100% 稳定;
- 成本与延迟:把大量示例塞进上下文会推高 token 费用,微调能把知识”烧”进权重,请求时只用短提示;
- 私有知识:合同模板、内部术语等敏感数据不必每次随请求上传。
微调不是 RAG 的替代品。知识频繁变动用 RAG(见 RAG 检索增强生成),风格/格式固定才用微调。
两种微调方法怎么选
| 方法 | 适合 | 数据形态 |
|---|---|---|
| 监督微调 SFT | 格式、语气、分类等”有明确标准答案”的任务 | 成对的 input/output 样例 |
| 偏好微调 DPO | 写作、摘要等”更好是主观的”任务 | preferred / rejected 成对样本 |
从 0 到上线的四步
- 准备数据集:每行一个对话样本,存为 JSONL(system/user/assistant 消息)。
- 上传文件:用 Files API 把训练集推到平台。
- 创建任务:指定基础模型与训练轮数(epochs)。
- 调用模型:训练完成后用返回的微调模型名直接聊天。
训练集长什么样
{"messages":[
{"role":"system","content":"你是用语统一的客服助手"},
{"role":"user","content":"怎么开发票?"},
{"role":"assistant","content":"进入「我的订单」→「申请开票」填写税号即可。"}
]}
触发一次微调任务(Python)
from openai import OpenAI
client = OpenAI()
client.fine_tuning.jobs.create(
model="gpt-4o-2024-08-06",
training_file="file-xxxxxxxx",
hyperparameters={"n_epochs": 3}
)
多少条数据才够?
简单格式任务几十条就可能见效;复杂风格/领域通常需要数百到数千条高质量样例。先从小集跑基线,用评测(evals)驱动迭代,比一次性堆量更有效。
常见问题
微调和提示词工程先选哪个?
先穷尽提示词工程:加示例、给清晰指令、用 Prompt Caching 降本。仍不满足格式/一致性再微调。
微调的数据隐私吗?
OpenAI 明确:微调接口进出数据归客户所有,不会用于训练其他模型;仍建议脱敏后再上传。
微调成本怎么算?
分训练费与推理费两部分。小数据集训练往往几美元,推理按微调模型单价计费;用短提示后单次调用更便宜。
微调能替代函数调用吗?
不能替代,二者正交。需要模型调用你的接口时仍走 Function Calling,微调负责让它更稳定地按你的格式产出。
想做更复杂的多步编排,可参考 OpenAI Agents API;需要私有知识实时检索则看 RAG。
查看 OpenAI 官方微调文档







评论 (0)