详细解释
SFT(Supervised Fine-Tuning,监督微调) 是让基模型从”能接上文”的语言模型,变成”听得懂指令”的助手模型的第一道工序。基模型(比如 Llama 3 70B base、Qwen 2 72B base)只学到了下一词预测能力——你问它”北京是哪个国家的首都”,它很可能接”,也是中国政治文化中心”,不会直接回答”中国”。SFT 就是通过喂给它几万到几十万条”(指令,期望回答)“成对的标注数据,教它学会以”回答式”的格式输出而不是”续写式”。
SFT 与 Instruction Tuning 的关系:两者经常混用但略有差别。Instruction Tuning 是更大的概念,强调”跨任务泛化的指令数据 + 零样本新任务迁移”的方法论;而 SFT 是训练手段本身:只要是(输入 X,输出 Y)对形式的微调,就叫 SFT。实际落地时,大家常说的 “做一版 SFT” = 用指令-回答对跑几轮 LoRA/全参微调。
典型 SFT 数据来源
| 数据类型 | 示例 | 作用 | 质量权重 |
|---|---|---|---|
| 高质量对话 | ShareGPT / UltraChat / WildChat 人工分享对话 | 教会模型”如何像人类一样说话” | 最高(决定助手味) |
| 指令遵循数据 | Alpaca、GPT-4-LLM、Flan 系列 | 教模型遵循 200+ 种任务格式 | 高(决定通用性) |
| 代码数据 | Stack Exchange、CodeAlpaca 百万级 | 写代码 / 修 bug | 高(逻辑推理相关) |
| 逻辑/数学推理 | GSM8K、MATH、Orca 推理链 | CoT 推理能力(先想后答) | 中高 |
| 企业私有场景 | 客服历史(脱敏后)/ 公司 FAQ / 产品文档问答 | 适配你自己的业务语气和领域术语 | 高(场景化) |
唯元智创 SFT 训练服务(零代码)
唯元智创 控制台支持自助创建 SFT 任务:上传 JSONL(messages 格式,system/user/assistant 三段)→ 选基座模型 → 选 LoRA rank(默认 16/32)→ 2-4 小时产出可部署的 Adapter。训练过程全程可视化 loss/LR 曲线,自动评估 20 条随机样本生成对比。训练完成后模型直接可在”模型商城 - 我的私有模型”里通过 /chat/completions 调用,计费与公有模型相同。
常见超参数速查表(建议收藏)
| 超参数 | 小模型(< 13B) | 大模型(>=33B) | 推荐优先调 |
|---|---|---|---|
| Epochs(训练轮数) | 2 至 3 | 1 至 2 | 第一个要调的,太多容易过拟合 |
| Batch Size(每步样本数) | 16 至 32 | 4 至 8 | 看卡显存,不够开 gradient accumulation |
| Learning Rate(学习率) | 1e-5 至 3e-5 | 5e-6 至 1.5e-5 | 太大发散、太小学不动 |
| LoRA rank r | 16 / 32 | 8 / 16 | 越大能力越强,文件越大 |
| LoRA alpha | r 的 2 倍(r=32 时 alpha=64) | r 的 2 倍 | 经验公式 alpha=2r |
| Max Length(训练序列长) | 2048 / 4096 | 8192 | 越长越好,但显存线性涨 |
常见问题
SFT 需要多少数据才够?
没有标准答案,取决于任务宽度。单一场景(比如你是做客服机器人,只回答自家 100 条常见问题):1000 到 3000 条高质量样本就明显超过 RAG;中等任务(要会写代码 + 会翻译 + 会摘要 + 会客服):1 万到 5 万条;做通用助手级(对齐到 ChatGPT 风格):10 万到 50 万条,且必须混入一定比例的 CoT 推理链数据。经验:数据质量 > 数据数量 100 倍,宁可 3000 条全是人审无噪音的,也别 10 万条爬来的乱数据,后者会把模型训废。
SFT 之后要不要接 RLHF/DPO?
SFT 时 system 指令放不放进训练样本里?
强烈建议放,而且要多样化。做法:每条样本随机挑选 3 到 5 种不同的 system 指令(比如”你是一个乐于助人的 AI 助手”/“请简明回答用户问题,不要多余废话”/“你是代码助手,先给出代码再解释”),再搭配 user+assistant 段。这么做是为了训练时让模型把”system 指令”当成真实的行为开关,而不是训练时永远没见过 system,线上加了就完全不理会。这也是很多新手 SFT 之后发现”加 System Prompt 没用”的根因——他们训练数据里一条都没写 system,只有 Q/A。