拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Miles True On-Policy机制详解:如何保证推理与训练logprob比特级一致

Miles True On-Policy机制详解如何保证推理与训练logprob比特级一致【免费下载链接】milesMiles is an enterprise-facing reinforcement learning framework for LLM and VLM post-training, forked from and co-evolving with slime.项目地址: https://gitcode.com/GitHub_Trending/miles1/milesMiles 是一个面向企业的 LLM/VLM 强化学习后训练框架fork 自 slime 并与其协同演进。在 RL 训练中rollout 阶段由推理引擎SGLang生成 logprob训练阶段由训练引擎重新计算 logprob——两者若不一致就会引入训推偏差污染策略梯度。Miles 的True On-Policy 机制正是为此而生它让推理引擎与训练引擎的每一步前向运算做到比特级bitwise一致使两边的 logprob 严格相等从根源上消除训推偏差。什么是 True On-Policy为什么它重要传统 RL 后训练流水线里存在两套数值世界推理侧SGLang 负责 rollout 生成产出每条 token 的 logprob训练侧Megatron/FSDP 等训练后端重新前向计算 logprob用于计算 advantage、ratio 等损失。由于 attention 后端、GEMM 实现、算子融合、并行切分等细节不同两侧结果通常存在微小但非零的差异。Miles 通过 True On-Policy 让差异归零并给出可观测的验证指标指标未开启 True On-Policy开启后train/train_rollout_logprob_abs_diff非零恰好为 0快速上手一条命令启用 True On-PolicyMiles 将整套对齐逻辑封装成单个开关--true-on-policy新手只需两步# 最小示例推荐新手先跑这个 python examples/infra_features/true_on_policy/run_simple.py # 在真实训练脚本上开启 python scripts/run_qwen3_4b.py --train-backend fsdp --true-on-policy 小技巧加--mode debug_minimal可跳过评估并使用极短输出序列快速看到指标曲线——因为 True On-Policy 与输出长度、答案正确率无关非常适合快速验证。完整说明见 examples/infra_features/true_on_policy/README.md。实现原理5 个关键对齐点核心思想只有一句话让训练与推理中的每一个操作都 bitwise 相等。具体由 5 个组件协同完成#对齐组件作用1Flash Attention 3训练与推理统一使用 FA3 后端它在 prefill 与 decode 之间天然比特级一致2DeepGEMM矩阵乘用 DeepGEMM 实现其按确定性规则选择 tensor core 指令保证结果可复现3Batch-invariant 算子采用 Thinking Machines Lab 的 batch 无关算子使结果不随 batch 组成变化4torch.compile用编译融合小算子在提速的同时锁定数值路径5dtype 与算子细节对齐统一 op dtype、具体 kernel 等细节保证两侧同一份数学此外还有一组确定性环境配置例如CUBLAS_WORKSPACE_CONFIG:4096:8、NCCL_ALGORing等由启动计划自动注入无需手动设置。实测效果指标曲线如何解读官方实验在 Qwen3-4B-Base 上用 dapo-math-17k 微调max_new_tokens2048并在 AIME-2024 上评估max_new_tokens8192global batch size 为 64×16。曲线如下上图中 train–inference 差异曲线严格贴在 0 上证明训练与推理前向全链路数值等价。raw reward 与基线完全吻合说明开启 True On-Policy 不牺牲训练质量代价是 rollout 时间出现可接受程度的放缓。核心代码导读启动契约如何自动生成开启--true-on-policy后Miles 会根据模型档案与并行布局自动生成一整套跨仓库的对齐契约。关键模块miles/true_on_policy/config.pyTrueOnPolicyLaunchPlan由单个公开开关派生出全部参数包括--deterministic-mode、--true-on-policy-mode、--recompute-logprobs-via-prefill并生成 SGLang 侧--sglang-enable-deterministic-inference、--sglang-attention-backend fa3等参数miles/true_on_policy/contracts.py定义TrueOnPolicyContract规定内核契约与 logprob 契约如sglang_prefill即通过 prefill 重算 logprobmiles/true_on_policy/schema.py声明式 schema例如qwen3_dense_true_on_policy_v1同时绑定 FA3 后端与禁用序列并行等约束miles/true_on_policy/model_profiles.py模型能力档案当前支持 Qwen3-0.6B / Qwen3-4B / Qwen3-4B-Base / Qwen3-4B-Instruct-2507并校验 DP、TP、PP、Ulysses-CP 等并行布局是否可用miles/rollout/generate_utils/prefill_logprobs.pyrollout 侧通过 prefill 重算 logprob 的实现。这种单一开关 → 自动派生全量参数的设计避免了手工配置 20 多个确定性 flag 的出错风险也让新模型接入只需增加一份模型档案。小结True On-Policy 是 Miles 保证 RL 训练质量的关键机制让 SGLang 推理与训练引擎的 logprob严格相等实现方式是统一 FA3 DeepGEMM batch 无关算子 编译与确定性配置做到逐操作 bitwise 一致验证标准很简单train/train_rollout_logprob_abs_diff恰好为 0新手从python examples/infra_features/true_on_policy/run_simple.py开始体验即可。【免费下载链接】milesMiles is an enterprise-facing reinforcement learning framework for LLM and VLM post-training, forked from and co-evolving with slime.项目地址: https://gitcode.com/GitHub_Trending/miles1/miles创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门