模型精调是指基于预训练大模型,通过监督学习、强化学习等方法对模型参数进行针对性优化,使其适配特定任务或领域(如垂直问答、个性化推荐等),从而提升模型在目标场景下的性能与效果的过程。
本文主要介绍火山方舟支持的精调训练类型及训练方法,同时详细介绍创建精调任务的全流程操作。
训练类型与选型指南
训练类型
- SFT精调:通过已标注好的数据对模型进行精调优化,以适应其特定的任务或领域。适用场景是有明确标注数据的情况,比如客服问答或者特定领域的任务。
- 直接偏好学习(DPO):通过偏好数据对模型进行直接策略优化,以适应其特定的任务或领域。适合有用户偏好数据的场景,比如推荐系统或者需要优化用户体验的任务。
- 继续预训练(申请使用):通过无标注的数据对专有预训练模型进行训练,完成训练后,可通过 SFT 精调继续调优。适用场景是拥有大量领域相关未标注数据,想先增强模型的领域知识,再微调。
- GRPO精调(申请使用):基于群组相对策略优化的强化学习方法,属于强化学习的一种。适用场景可能是多用户群体或需要考虑不同群组偏好的任务,比如个性化推荐或多领域适应。
方法 | 数据需求 | 训练成本 | 难度 | 核心优势 | 典型场景 |
---|
SFT 精调 | 大量标注数据(如问答对) | 中 | 简单 | 任务针对性强,效果可控 | 垂直领域问答(如医疗、法律) |
直接偏好学习DPO | 偏好对比数据(如 A/B 选择) | 中 | 中等 | 低成本拟合用户偏好,无需构建奖励模型 | 回答排序优化、用户体验提升 |
GRPO 精调 | 群组偏好数据 + 标注数据 | 高 | 复杂 | 多群体 / 目标平衡,动态适应 | 个性化推荐、多语言 / 用户画像场景 |
继续预训练 | 大量未标注领域数据 | 高 | 中等 | 增强领域知识,适配新场景 | 跨领域迁移(如通用→金融) |
训练方法
全量训练
通过更新基础大模型的全部参数进行精调,深度拟合特定任务数据(如医疗问答、代码生成)。优势是效果上限高,适合独立部署的模型单元或高吞吐的批量任务(batch job),但需消耗大量算力与存储资源,适合追求极致精度且资源充足的场景(如金融风控、医疗诊断)。LoRA
LoRA(低秩自适应) 是一种更高效低成本的模型精调技术,训练速度快、显存占用低(单卡可运行),精调后模型体积较小,支持量化压缩。适配按 token 付费的轻量化场景、模型压缩(边缘设备部署)及多任务快速迭代,是中小团队或资源有限场景的首选。
奖励规则(仅强化学习需要)
支持使用预置奖励函数或自定义奖励函数,并支持混合选择以下多个奖励规则并赋予权重,加和得到最终奖励。每种规则可选择多次。
- 预置函数:
- 字符串全等:信息抽取或者文本分类等任务,可以通过答案是否完全匹配来定义reward。
- 字符串包含:总结摘要类任务,可以通过和groundtruth比对关键信息是否包含来定义reward。
- 正则匹配:参考问答类型任务,输出可能是按某种格式输出,可以通过提取模型采样结果中的关键信息和参考答案匹配来定义reward。
- 长度惩罚:在某些任务中,我们可能不希望模型输出过于冗长的结果,那么我们可以用长度惩罚函数配合其他预置reward函数共同作用定义reward。
- 自定义函数
- 当预置函数无法满足要求时,可以通过自定义函数定义reward逻辑。比如,需要有Reward Model时,可以通过请求方舟模型作为Reward Model,得到输出结果解析成对应的reward。
- 创建自定义函数需开通函数服务,开通后按照产品计费文档计费,不使用则不产生费用。
支持模型列表
模型列表 | 训练类型支持情况 |
---|
SFT精调 | 直接偏好学习(DPO) | 继续预训练
(申请使用) | GRPO精调(申请使用) |
---|
LoRA | 全量训练 | LoRA | 全量训练 | 全量训练 | 全量训练 |
---|
doubao-1-5-pro-32k-250115 | ✅ | ✅ | ✅ | ✅ | 部分支持,请通过工单申请使用。 |
doubao-1-5-lite-32k-250115 | ✅ | ✅ | ✅ | ✅ |
doubao-pro-32k | ✅ | | | |
doubao-lite-32k | ✅ | | | |
创建精调任务
- 在模型精调页面,点击左上角 创建精调任务 按钮。

- 填写模型精调任务名称等基本信息。
- 任务名称(必填):本次精调任务命名,方便记录检索;支持1~200位可见字符,且只包含大小写字母、中文、数字、中划线、下划线。
- 任务描述:本次精调任务添加除名称以外的其他描述信息,方便多次迭代版本,重要信息记录;包含大小写字母、中文、数字、中划线、下划线。

训练配置
- 选择模型训练类型、选择模型版本等信息。
- 训练类型(必选):平台提供多种训练方法:SFT精调、继续预训练、直接偏好学习。
- 模型选择(必选):在弹出窗口中选择精调基于的基础模型(根据训练类型不同,支持的基础模型列表会有差异,详情参见支持模型列表)。
- 选择完模型后,控制台会出现训练方法和参数配置的选项,您可以参考训练类型与选型指南中的信息选型,并结合控制台界面参数解释进行配置。
- 训练方法(必选):GRPO精调仅支持 全量训练。
- 奖励规则(条件必选):在选择GRPO精调时必选。
可以选择“预置函数”和“自定义函数”。
- 预置函数中包含了几种常用的奖励规则函数,具体请参见控制台描述。

- 您也可以选择自定义函数,通过Python代码的方式编写规则。
点击 添加新函数 ,输入函数名称。

在reward.py中编辑自定义函数,完成后可以点击上方的 安装依赖 按钮准备好函数运行环境。
点击 下一步:代码发布,进入代码发布页面。

代码创建完成后,可以进行 测试、日志查看等操作,点击完成结束函数创建。

2. 支持添加多个奖励规则(包括预置函数和自定义函数)并赋予权重,计算奖励时加权求和得到最终奖励值。共支持添加5个规则,预置奖励函数可多次添加。

参数配置(必选):具体参数见控制台表单,平台有提供默认值作为推荐,用户可根据具体需求进行调整。以下是部分常用参数简介,更多参数及说明见控制台
参数 | 说明 |
---|
epoch | 训练神经网络时将整个训练数据集完整训练的次数,迭代轮数越多,训练时间越长。 |
batch_size | 每次迭代所使用的训练集样本数。 |
learning_rate | 权重参数更新的速度,它决定了每次更新时权重的调整程度。较大的学习率可能导致模型在训练过程中波动较大,收敛困难;较小的学习率可能导致收敛速度慢。 |
num_sampling | 在强化学习rollout过程每条训练集prompt所生成的采样数量。 |
save_every_n_steps | 控制产物保存间隔,每训练 n step 后以及每个epoch结束时,会执行产物保存逻辑。当产物数量超过「产出数量上限」后,较早的产物将被删除。 |
validate_every_n_steps | 控制验证逻辑执行间隔,每训练 n step 后以及每个epoch结束时,会执行验证逻辑。仅在配置验证集时生效。 |
产出数量上限(必选):训练过程中默认每个epoch产生一个产物(可通过save_every_n_steps/epoch 调整间隔),只保留最后n个不超过 产出数量上限 的产物最终产物将自动导出至模型仓库,其余产物可以在任务详情页的模型产出tab导出到模型仓库。

说明
根据前面对训练类型、模型选择的不同,训练方法和参数配置的选项可能会稍有差异,以控制台显示为准。
数据配置
- 在数据配置部分,导入需要训练的数据集。
- 训练集(必选):即Train Set,用于训练模型以及确定参数;控制台支持上传训练集文件、从TOS导中导入,或选择已经上传的数据集。
- 混入预置数据集:在用户上传的训练集数据中混入豆包模型的SFT(Supervised Fine Tuning,有监督微调)数据,混入比例表示混合后SFT数据占总数据量的比例,可调节范围:1-99%。
注意
打开此功能会增加训练数据量,可能会产生额外的训练费用,具体请见配置页面的训练费用预估。
- 验证集:Validation Set,模型训练过程中,用于确定网络结构以及调整模型的超参数。可以从训练集中随机分割一定比例作为验证集,也可以上传独立于训练集的数据集。
注意
验证集会跟训练集一起计算总 tokens 来计算训练费用,若验证集选择从训练集中按比例分割,则不会增加总 tokens 。
- 加密密钥类型(必选):可选 平台托管密钥 或 自定义密钥。
- **平台托管密钥:**平台会自动创建并管理,无法自行轮换或销毁。
- 自定义密钥:您可以在KMS自行创建、管理的密钥,计费参见密钥管理计费说明。

- 配置完成后,右侧栏会显示本次模型精调任务所需的训练费用预估。确认无误后,点击“提交精调任务”按钮创建精调任务。