SuperAPI AI 工具集

miles-rl-training

智能体与模型

查看项目

更新于 10-15 13:05

技能介绍

miles 是一个高性能、面向企业级的大规模模型后训练强化学习(RL)框架,作为 slime 的生产就绪分支构建,主要应对 MoE 训练稳定性、低精度训练以及训练与推理对齐等关键挑战。

用途与适用场景 miles 适用于以下需求:训练 1TB 以上的 MoE 模型(如 DeepSeek V3、Qwen3-MoE);进行 FP8 或 INT4 量化感知训练(QAT);实现训练与推理之间逐位一致的对齐;通过投机 RL 获得最大吞吐量;以及需要生产级稳定性与企业支持。资料同时给出了替代方案建议:若需要研究级原始版本,选择 slime;若需要灵活的后端切换,选择 verl;若需要 PyTorch 原生抽象,选择 torchforge。

主要能力与特性 低精度训练方面,miles 提供统一 FP8(推理与训练端到端 FP8)、INT4 QAT(可在单机显存上运行 1TB 模型,例如 H200),以及 Rollout Routing Replay(R3)用于 MoE 的逐位专家对齐。 性能优化方面,包含投机 RL(借助在线 SFT 草稿模型实现 25% 以上的 rollout 加速)、零拷贝权重同步(CUDA IPC 零拷贝映射)、部分 Rollout(回收未完成的轨迹)。 训练-推理对齐方面,提供 TIS/MIS(截断/掩码重要性采样,用于离策略校正)以及内核级优化(FlashAttention-3、DeepGEMM 集成)。

使用方式 安装:推荐使用 Docker,命令为 docker pull radixark/miles:latest,然后 docker run --rm --gpus all --ipc=host --shm-size=16g -it radixark/miles:latest /bin/bash。也可从源码安装:git clone https://github.com/radixark/miles.git、cd miles、pip install -r requirements.txt、pip install -e .。 快速开始:miles 继承 slime 的配置系统,基础训练命令为 python train.py --advantage-estimator grpo --model-name qwen3-30b-a3b --hf-checkpoint /path/to/qwen3-30b-a3b-hf --rollout-batch-size 512 --n-samples-per-prompt 8。 工作流一(大型 MoE 训练):前置条件包括支持 FP8 的 H100/H200 GPU、MoE 模型(DeepSeek V3、Qwen3-MoE)、带 miles 的 Docker 环境。环境设置:export NVTE_FP8_BLOCK_SCALING_FP32_SCALES=1、export CUDA_DEVICE_MAX_CONNECTIONS=1。配置训练命令包含 --actor-num-gpus-per-node 8、--rollout-num-gpus 8、--hf-checkpoint /path/to/deepseek-v3、--advantage-estimator grpo、--tensor-model-parallel-size 8、--expert-model-parallel-size 4、--prompt-data /path/to/data.jsonl、--num-rollout 3000;验证检查包括模型无错误加载、路由决策一致、损失值无 NaN/Inf。 工作流二(投机 RL 训练):投机 RL 的工作原理是草稿模型生成候选 token、目标模型并行验证、草稿模型通过在线 SFT 更新以跟踪策略。通过 SGLang 支持 EAGLE 投机解码,相关参数包括 --sglang-speculative-algorithm EAGLE、--sglang-speculative-num-steps 3、--sglang-speculative-eagle-topk 1、--sglang-speculative-num-draft-tokens 4、--sglang-speculative-draft-model-path /path/to/draft-model 等。可选开启在线 MTP 训练:--mtp-num-layers 1、--enable-mtp-training、--mtp-loss-scaling-factor 0.2,并注明在线 MTP 训练需要带 MTP 权重的 torch dist checkpoint(从 HuggingFace 转换时添加 --mtp-num-layers 1)。预期加速:标准 rollout 为基线,投机 RL 快 25-40%,配合部分 rollout 可再提升 10-15% 吞吐量。 配置参考:miles 继承 slime 全部参数,集群资源、Megatron 并行等参数沿用 slime;投机解码与在线 MTP 训练为 miles 特有参数,具体 CLI 标志可能变化,需查阅 miles 仓库获取最新配置。

核心机制说明 统一 FP8 流水线:端到端 FP8 采样与训练,消除量化导致的不一致,从而避免 MoE 模型 RL 崩溃。R3:在 SGLang 推理期间记录专家路由决策(存入 sample.rollout_routed_experts),在 Megatron 训练期间重放而非重新计算,确保训练与推理选择相同专家。INT4 QAT:支持 1TB 以上模型单机部署(如 H200),资料给出内存节省对比:70B 模型 BF16 为 140GB、INT4 为 45GB;235B 为 470GB 对 150GB;671B 为 1.3TB 对 420GB,约为 3.1 倍降低。训练-推理对齐:通过 Flash Attention 3、DeepGEMM、Thinking Machines Lab 的批次不变内核以及 torch.compile 集成,实现训练与推理之间“恰好 0 KL 散度”。

常见问题与解决 FP8 训练崩溃(损失爆炸、NaN):使用块缩放 export NVTE_FP8_BLOCK_SCALING_FP32_SCALES=1、降低学习率 --lr 5e-7、确保 MoE 路由在训练/推理间一致。投机草稿漂移(接受率随时间下降):启用在线 MTP 训练以保持草稿模型对齐、减少投机步数 --sglang-speculative-num-steps 2、使用 CPU 备份 --sglang-enable-draft-weights-cpu-backup。训练-推理不匹配(策略发散、奖励崩溃):使用 TIS 做离策略校正 --use-tis --tis-threshold 0.9、校验 SGLang 与 Megatron 的 log probs 是否匹配、为 MoE 模型启用 R3。

支持模型 DeepSeek R1、V3、V3.2(完整 MoE 支持);Qwen 2、2.5、3(含 MoE);Llama 3、3.1、3.3、4(仅 Dense);Gemma 2、3、3N(仅 Dense);GLM 4.5、4.6、4.7(仅 Dense);MiniMax M2、M2.1(完整 MoE 支持)。

限制与说明 资料中对价格、收费、企业支持的具体条款、部分 CLI 标志的细节等未提供明确信息,暂未提供。部分特性标注为“文档中记录但具体 CLI 标志可能变化”,实际使用应以 miles 仓库最新配置为准。