当前位置: 首页 > news >正文

on-policy distillation

定义

On-Policy Distillation是一种融合强化学习(On-Policy RL) 与知识蒸馏(Knowledge Distillation) 的模型训练范式,核心是让学生模型在自己生成的轨迹中学习,并由教师模型提供逐 token 密集监督,解决传统离线蒸馏的分布不匹配与RL反馈稀疏问题。

On-Policy(同策略):训练数据完全来自学生模型当前策略生成的轨迹(rollout),即 “学生自己做、自己学”。
Distillation(蒸馏):用一个更强的教师模型(Teacher) 指导更小 / 更弱的学生模型(Student),让学生对齐教师的输出分布。
On-Policy Distillation:学生先生成自己的输出序列,教师对这些序列逐 token 打分 / 给分布,学生再反向更新以缩小与教师的差异。

训练流程(三步闭环)

  1. 采样(Rollout):学生模型基于当前策略,对一批输入生成完整输出序列(轨迹)。
  2. 教师监督(Teacher Supervision):教师模型对学生生成的每个 token,输出其条件概率分布(逐 token 指导)。
  3. 更新(Update):学生最小化与教师在学生轨迹分布上的差异(常用反向 KL 散度),完成参数更新。

伪代码

def on_policy_distill_step(student, teacher, tokenizer):# 1. 学生自己生成轨迹(on-policy data)traj = generate_on_policy_batch(student, tokenizer, batch_size=rollout_batch_size)mask = (traj != tokenizer.pad_token_id).long()# 2. 把traj喂给学生 & 教师,得到traj上的logitsstudent_out = student(input_ids=traj, attention_mask=mask)student_logits = student_out.logits[:, :-1, :]  # 对齐 shiftwith torch.no_grad():teacher_out = teacher(input_ids=traj, attention_mask=mask)teacher_logits = teacher_out.logits[:, :-1, :]# 3. 标签与有效位置labels = traj[:, 1:]valid_mask = mask[:, 1:].reshape(-1)# 4. On-policy 蒸馏损失:Reverse KL 散度# Loss = E_student [ log π_student - log π_teacher ]student_logp = F.log_softmax(student_logits, dim=-1)teacher_logp = F.log_softmax(teacher_logits, dim=-1)# 只在有效 token 上计算loss = ((student_logp - teacher_logp).gather(-1, labels.unsqueeze(-1)).squeeze(-1)* valid_mask).mean()return loss
http://www.jsqmd.com/news/567870/

相关文章:

  • 探索Neosgenesis:多智能体系统的测试与优化实践指南
  • 2026年三防漆厂家推荐排行榜:三防漆喷涂/涂覆/加工/代工,PCB板与电路板专业防护解决方案深度解析 - 品牌企业推荐师(官方)
  • CLN17闭环电机驱动器:高性能开源解决方案
  • 什么时候Agent能自己写skill?从极客视角看AI智能体自主进化与实在Agent落地实践
  • FPGA新手避坑指南:用Xilinx MIG IP核驱动DDR3内存的完整配置流程(以MT41J256M16为例)
  • 2026年选酸雾净化箱,避开这5大误区,至少能省3万块! - 2026年企业推荐榜
  • 【DAY34】基于 IMX6ULL 的嵌入式系统底层开发:中断、时钟与定时器配置
  • 如何为AMD 780M APU解锁2-3倍AI性能?ROCmLibs-for-gfx1103终极优化指南
  • 如何高效使用SMUDebugTool:专业AMD Ryzen硬件调试与性能优化完全指南
  • ECE R79转向系统法规:从ACSF到ESF,智能驾驶的合规之路
  • cpo_fmd分解,冠豪猪优化算法(Crested Porcupine Optimization
  • FPGA时序约束实战:Set_Clock_Sense的精准控制与路径优化
  • 2026年,如何选择一家真正靠谱的智能水电气集中供料系统供应商? - 2026年企业推荐榜
  • 5个技巧教你突破百度网盘限制,高效获取资源的实用指南
  • SDMatte企业级落地方案:中小设计团队批量处理商品图,替代PS通道抠图的低成本路径
  • “多电机速度同步控制系统设计的sim程序与文章”
  • 深入解析Skywalking:企业级分布式追踪与性能监控实战指南
  • Vue3+Three.js实战:拆解Xtreme1点云标注工具的技术架构
  • Java基础实战:用快马平台快速构建学生成绩管理系统巩固核心知识
  • 嵌入式开发必看:MIPI C-PHY与D-PHY实战对比(附参数计算)
  • Qwen3-14B镜像效果:代码生成+注释补全+单元测试编写一体化
  • 别再吹牛了,% Vibe Coding 存在无法自洽的逻辑漏洞!
  • AI Agent与传统RPA工具有什么本质区别?2026深度解析企业级智能体进化路径
  • 基于STM32F103主控与BMP085气压计、HMC5883L磁力计的九轴DMP解算与卡尔曼...
  • 数据恢复小白也能搞定!ReclaiMe Pro保姆级教程:从安装到找回误删文件(含RAID恢复)
  • 从VGG到ResNet:我是如何用PyTorch复现经典,并理解‘残差’如何拯救了深度学习的
  • comsol 双层结构曲界面声场仿真 聚焦探头(焦距60mm,晶片直径14mm)辐射声场在双层...
  • 收藏!Java开发者学大模型(LLM)不用转算法,2026最新学习指南(小白友好)
  • 把代码交给云端:Claude Code on the web 能帮开发者省下多少事?
  • 手把手教你用STM32CubeMX+Keil5玩转蓝桥杯G431开发板(附完整配置截图)