验证 集 loss 不能 当 生成 任务 的 终 审: 火山 方舟 有 监督 微调 先看 50 到 100 条
火山方舟做 SFT 先用 50 到 100 条看真实评估有没有收益。确定性任务看训练和验证 loss 是否一起降,生成任务以真实评估集为准。案例里的准确率写成 X1、X2,页面没有真实数字。

验证集 loss 不能当生成任务的终审:火山方舟有监督微调先看 50 到 100 条
火山方舟是字节跳动的大模型服务平台。文档《有监督微调最佳实践》页面上的最近更新时间是 2026 年 11 月 4 日。有监督微调(SFT)用带标准输出的例子改模型。文档建议在提示词已经很复杂、格式仍不稳,或想缩短提示词以加快线上推理时再做。
先小样本,再按任务加量
训练集是 JSONL,一行一个 JSON。详细字段另见格式总览,这一页不重复列。
不必一上来堆数据。先用 50 到 100 条做 SFT,看真实评估有没有收益。有收益再拿一部分当种子扩充;没有收益先查质量。扩到稳态时,文案、剧本、续写这类生成任务大约 2 千到 3 千条;参考问答大约 2 千到 1 万条;文本分类大约 1 千到 3 千条,类别多或任务难可能要 1 万条以上。扩充可以用提示词加少量示例让模型出候选,再拿人工标注样本对风格和精度,不合格就改提示词重来。
质量看四件事:有没有盖住已知 badcase;提示词和输出是否像真实场景;问答是否具体;来源优先历史数据、专家标注和业务日志。数据质量比数量重要,先洗掉错误、冗余和歧义。
混入预置数据,是在用户集之外再加一部分豆包基座用过的 SFT 数据,用来减轻通用能力掉下去。比例太高会冲淡领域能力,太低又补不住。经验值大约 15% 到 30%,要靠实验改。
先用小模型加 LoRA 验证
全量精调改全部参数。LoRA 只改低秩适配层,文档写大多数场景效果可以到全量的 98% 以上,这是经验说法,不是本页实测表。建议先用 Doubao-lite 加 LoRA 看数据和实验设得对不对,有效再换大模型看规模是否还成立。已经精调过的模型可以增量训练。
延迟敏感且 pro 测不过,用 lite。输入加输出超过 4k token、删字会伤语义,用 Doubao-pro-32k;不到 4k 用 4k 版本。角色扮演用 character 模型。同一系列优先最新版本。
轮数和学习率按任务分
epoch 一般 2 到 5。训练集 loss 降、验证集 loss 升,就是过拟合,该停。两边都在慢降,还没收敛,可以继续。文案、小说这类生成任务,loss 看不出风格,经验上可以把轮数放到 5 到 10。
LoRA 缩放因子固定 1.0。文档给了一个从旧任务估新学习率的式子:旧 alpha 除以旧 rank 的平方根,再乘旧学习率。式子只用于起步,还要看验证集 loss 和业务效果。LoRA 学习率建议 1e-5 到 5e-5,全量 SFT 建议 1e-5 到 2e-5。预热参数二选一,初期 loss 不降可以加大 warmup step rate。保存更多 checkpoint 方便挑选,但会拉长训练。
确定性任务看 loss,生成任务看业务集
在精调任务的「训练观测」里看指标。确定性任务,比如分类、抽取,标注唯一,看训练集和验证集 loss 是否一起降,多轮之后是否收敛。生成任务,比如问答、文案、角色扮演,验证集 loss 用的是 token 级 KL,和业务要求不一定对齐,可能出现验证集 loss 没怎么降、业务指标却上去。所以训练集 loss 只作参考,终审用真实评估集,例如相关性、流畅度、满意度。
产物导出到模型仓库后,才能做量化、体验、评测、在线推理和批量推理。
案例里的准确率是占位符
意图识别案例先建线上标准评估集。提示词优化后的基准写成 X1%,分不清相似但相反的意图,加 few-shot 又会拉长提示词。于是标了 400 多条线上流量做 SFT,评估集准确率写成 X2%,再增量微调。文案案例按行业分层抽样,评测集占 5%,通过率同样写成 X1%、X2%。未通过集中在某些行业,原因是那些行业的训练数据差,清洗后重做。页面没有给出 X1、X2 的真实数字。
要多样性,推理时可以把 temperature 和 top_p 调到 1.0,或者同一条 prompt 配多条同样合格的 response。few-shot 必须和目标是同一维度,渠道或风格对不上会干扰学习。
字节跳动,火山方舟,有监督微调最佳实践,2026-11-04,https://www.volcengine.com/docs/ark/supervised-fine-tuning-best-practices
觉得有用,转给同事
微信扫码
用微信扫一扫,在手机上打开后即可转发。