百炼在线策略蒸馏训练概述——基本概念、训练方式选型、端到端流程、环境准备与任务提交
文档 | 内容 |
|---|---|
纯蒸馏与 Reward 函数开发、数据格式、函数测试 | |
自定义 Rollout(传入 tools 参数产生结构化 tool_call)、Agentic Reward 开发 | |
提交方式、教师模型配置、超参数、环境变量、调参与避坑 | |
Tracing 接入、自定义指标、指标字典、效果判断、排查决策树 |
在线策略蒸馏基本概念及与微调、传统蒸馏的区别
在线策略蒸馏基本概念及与微调、传统蒸馏的区别
- 学生生成:学生模型生成一段输出
- 教师给分布:教师模型对输出每个 token 位置给出概率分布(即教师认为该位置各 token 出现的可能性)
- 算差异:学生模型对比自己的概率分布与教师分布,计算每个 token 位置的差异(KL 散度,衡量两个概率分布差异的指标)
- 更新靠拢:以此为损失更新参数,让每个 token 向教师模型靠拢
维度 | 微调(SFT) | 传统模型蒸馏 | 在线策略蒸馏(OPD) |
|---|---|---|---|
训练数据 | 人工标注 | 教师模型预生成输出 | 学生模型生成 |
指导方式 | 固定标签 | 教师模型完整输出 | 教师模型逐 token 概率分布 |
学生模型参与生成 | 否 | 否 | 是 |
纠错 | 无 | 无 | 逐 token 纠正 |
全流程概览
OPD 训练从环境准备到模型部署,共 5 步:
- 环境准备 — 安装 SDK、获取 API Key、完成授权
- 准备数据与代码 — JSONL 数据,纯蒸馏无需写函数
- 提交训练任务 — 传
teacher_model触发蒸馏,纯蒸馏零代码 - 训练状态观测 — 查看蒸馏损失、教师模型信号是否健康、验证集指标
- 发布与部署模型 — 最后 Checkpoint 自动发布,部署后通过 API 调用
工作机制
每轮训练数据流如下:
模型与训练单元
教师模型须为百炼已开通的模型,与学生模型同系列且能力更强。
- 华北2(北京)
- 新加坡
教师模型 | 学生模型 | 邀测标识 | 推荐训练单元 |
|---|---|---|---|
qwen3.5-122b-a10b | qwen3.5-27b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-397b-a17b | qwen3.5-27b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-122b-a10b | qwen3.5-2b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-27b | qwen3.5-2b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-35b-a3b | qwen3.5-2b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-397b-a17b | qwen3.5-2b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-122b-a10b | qwen3.5-35b-a3b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-397b-a17b | qwen3.5-35b-a3b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-122b-a10b | qwen3.5-4b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-27b | qwen3.5-4b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-35b-a3b | qwen3.5-4b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-397b-a17b | qwen3.5-4b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-122b-a10b | qwen3.5-9b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-27b | qwen3.5-9b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-35b-a3b | qwen3.5-9b | 邀测 | IV 型(MTU4)× 24 |
qwen3.5-397b-a17b | qwen3.5-9b | 邀测 | IV 型(MTU4)× 24 |
快速开始
以纯蒸馏基础样例完成全流程 5 步,零代码即可开训。纯蒸馏无需编写任何函数,仅由教师模型逐 token 指导学生模型训练。
环境准备
环境准备需完成以下几项:API Key、服务授权、SDK 安装、工作区目录、核心环境变量。
API Key 从百炼控制台 API-KEY 页获取,设为环境变量 DASHSCOPE_API_KEY。
服务授权 首次使用时,在模型调优控制台一键授权 ARMS(应用实时监控服务,承载 OpenTelemetry 指标上报)、函数计算(FC)、日志服务(SLS)三项云服务。OpenTelemetry 是开源可观测性数据标准,ARMS 为其提供托管与可视化,分别用于指标上报、函数运行、日志采集。
SDK 以示例目录附带的 wheel 文件为准安装(版本随示例更新,当前 1.27.5):
DASHSCOPE_API_KEY(必需):鉴权。FC_PYPI_LIB(必需):指定函数运行时安装的 SDK 包,填 wheel 相对路径(远端解析,本机绝对路径无法命中);纯蒸馏(functions=None)不涉及函数运行时,可跳过此项。FC_LAYER_USED(可选,默认 true):true 时在注册阶段依据 requirements.txt 构建 layer,跳过冷启动 pip 安装;false 时由远端运行时冷启动安装。
FC_PYPI_LIB 填实际 wheel 文件名(版本号随示例更新)。
提交前示例脚本会校验所装 SDK 的 AgenticRL.run 是否接受 teacher_model 参数,不接受则直接报错退出。其余环境变量(控制面端点、推理端点、日志级别等)见训练配置。
准备数据与代码
JSONL 每行一个样本,含 messages 与 rollout_extra 两个字段。messages 为对话输入(ChatML 格式),rollout_extra 存放参考答案或其他业务数据,供 Reward/自定义 Rollout 启用时消费。
rollout_extra 仅作数据透传不被消费。
提交训练任务
入口 AgenticRL().run(...),传 teacher_model 即触发蒸馏。run() 一步完成:注册函数到 FC → 上传训练数据 → 提交训练任务。纯蒸馏不注册函数。
最小提交代码示例
最小提交代码示例
dashscope rl run)提交,三种方式与字段逐项说明见训练配置。起步技巧
- 先选示例:纯文本输出任务从 Model OPD 示例入手;输出依赖 API 级 tool call 或多轮/自定义交互时从 Agentic OPD 示例入手。
- 先用精简数据:几十条 +
n_epochs=1验证链路后再换完整数据集,避免在完整数据集上消耗 MTU 后才发现配置错误。 - 超参保持默认:
learning_rate起点1e-6(蒸馏是微调模型已有能力而非重建,学习率过大易破坏输出格式),lr_scheduler_type用cosine;要调时一次只动一个变量,至少训练eval_steps × 3步再判断趋势。 - FAILED 先看日志:任务失败 → 日志页签查看末尾报错,或 SDK 调用
AgenticRL.logs(job_id="ft-xxx", lines=100)。
训练后流程
观测与判断效果
run() 返回的 job_id 是查询训练状态的唯一标识。模型调优控制台进入任务详情页,含指标、轨迹、产出、日志四个页签。
观测重点:
trace/distillation/valid_token_rate接近 1.0(教师模型信号完整)。actor/distillation/loss下降或趋稳(学生模型向教师模型靠拢)。- 启用 Reward 时加看
validation/data/reward/mean@1与trace/reward_metrics各维度相对基线上升。
发布与部署
训练完成后最后一个 Checkpoint 自动发布至我的模型。如需发布中间 Checkpoint,前往模型调优控制台产出页面手动操作。发布后的模型可在我的模型页面部署,部署完成后即可通过 API 调用。
适用场景
适用场景按能力复杂度逐级拓展:纯蒸馏是基础能力,Reward 与自定义 Rollout 是在其上按需叠加的进阶能力(引入额外组件与更复杂的训练/生成链路)。
- 纯蒸馏(基础):仅教师模型+数据,不写任何函数组件 → Model OPD 开发
- +Reward(进阶):加一个评分函数,在教师模型逐 token 指导基础上叠加任务奖励(按标准答案评分、按多维度指标评分) → Model OPD 开发
- +自定义 Rollout(进阶,Agentic OPD):输出依赖工具调用/多轮交互时自定义生成过程;可与 Reward 叠加,也可单独使用 → Agentic OPD 开发
后续步骤
- Model OPD 开发:函数开发完整细节(Rollout/Reward 函数、Tracing 接入)。
- Agentic OPD 开发:自定义 Rollout(传入 tools 参数、结构化输出)、Agentic Reward 开发。
- 训练配置:提交方式、字段逐项说明、超参与环境变量。
- 可观测配置:指标含义、轨迹查看、验收判据与排查决策树。
常见问题
何时选 OPD 而非 SFT
需逐 token 纠错、学生模型从自身生成中学习 → OPD;仅有固定标注、预算敏感且不要求在线纠错 → SFT。
没有 reward 能否判断训练有效
能。纯蒸馏靠 valid_token_rate 趋近 1.0 与 loss 下降趋稳判断教师模型信号是否被吸收,最终效果靠训练后独立评测(保留基线、同口径对比)。若需在训练中按任务目标在线优化,则叠加 Reward(Model OPD 的进阶用法),代价是需提供可计算的 Reward 函数。