Miles v0.1 · 干货攻略

  • 链接:https://x.com/_akhaliq/status/1932500627265006730(X 帖已失效,核心来源为官方文档)
  • 分类:x-tips
  • 来源:X @_akhaliq
  • 作者:Jay
  • 更新:2026-09-12
  • 仓库:radixark/miles

这是什么

Miles 是 RadixArk 开源的企业级大模型 RL 后训练框架(v0.1 发布于 2026 年 8 月 18 日),定位与 OpenAI 的训练+推理协同思路类似,但完全开源。Miles 从 THUDM/slime 分叉而来,与 slime 保持共同演进。

核心架构:SGLang 负责高吞吐 rollout 生成 + NVIDIA Megatron-LM 负责可扩展分布式训练 + Ray 负责集群编排 + PyTorch 作为统一数值层。LICENSE 为 Apache-2.0,商业可用。


为什么值得关注

解决什么问题

大模型 RL 后训练早已不是"跑个 PPO 就行"的单进程问题。万亿参数 MoE 模型、多节点集群、异步 agentic rollout、低精度训练——这些合在一起,是一个分布式系统问题,不是算法问题。

Miles 的出现就是为了把这个链条打通:

  • Rollout 与训练解耦:异步 RL,rollout worker 持续生成,不被 trainer 卡住
  • 权重同步快:P2P RDMA,1T 参数模型权重更新读秒级
  • MoE 对齐:R3(Rollout Routing Replay)解决 MoE 专家路由在 rollout 和 training 之间的 mismatch
  • 全栈覆盖:算法(GRPO/GSPO/PPO/SFT/On-Policy Distillation)+ 推理(SGLang)+ 训练(Megatron-LM)+ 编排(Ray)一条链

谁在用

RadixArk 描述为"企业级",在 LMSYS 博客和 PyTorch Blog 均有官方背书。当前已支持 DeepSeek-V4、Kimi-K3、GLM-5.2、Inkling、Nemotron 3 Ultra 等模型的 day-0 支持(即模型发布当天就能跑 RL),以及 K2.6 和 Qwen3.5。


核验过程

官方来源

  1. GitHub README (radixark/miles) - Apache-2.0 license 确认 - 完整 feature list - v0.1 发布时间锚定为 2026/08

  2. LMSYS Blog — Miles v0.1: Production-level Post-training (lmsys.org) - RL 循环三阶段(Rollout → Training → Weight Update)详细说明 - 三种 eval 模式(shared-engine / dedicated / external) - Agentic environments 机制

  3. PyTorch Blog — Miles: A PyTorch-Native Stack (pytorch.org) - 四层架构拆解(SGLang + Megatron-LM + Ray + PyTorch) - Ray actor 模型做 long-running job supervision - MoE-aware rollout/training alignment

  4. 官方文档 (miles.radixark.com) - 硬件需求表(GB300/GB200/B300/B200 → Production;H200/H100 → CI guarded;A100 → Supported 但 FP8 功能禁用) - Quick Start 完整命令(8x H100 + 500GB disk + Docker) - pip 安装方法

  5. GitHub API (api.github.com/repos/radixark/miles) - Forked from THUDM/slime 确认 - License 字段: Apache-2.0

  6. AI/TLDR 综述页 (ai-tldr.dev) - 2,685 stars 锚定在 X 帖发布时;当前 live 页显示 2.2k - 技术报告由 12 位作者撰写,2026-09-08 发布

交叉验证结论

说法 来源 结论
SGLang + Megatron-LM 双引擎 GitHub README + PyTorch Blog ✅ 确认
Apache-2.0 license GitHub API + AI/TLDR ✅ 确认
v0.1 发布于 2026/08 LMSYS Blog + GitHub ✅ 确认
Day-0 支持 Kimi-K3, DeepSeek-V4 GitHub README ✅ 确认
支持 GRPO/GSPO/PPO/REINFORCE++ GitHub README ✅ 确认
支持 On-Policy Distillation GitHub README + LMSYS Blog ✅ 确认
MXFP8/NVFP4 低精度训练 GitHub README + LMSYS Blog ✅ 确认
P2P RDMA 权重同步 PyTorch Blog ✅ 确认
2,685 GitHub stars(原帖数字) AI/TLDR 锚定时间点 ⚠️ 彼时准确,当前 live 为 2.2k
AMD MI300X/MI350X 支持 官方文档 ✅ 确认(ROCm)

上手步骤

方式一:Docker(推荐)

# 拉取镜像
docker pull radixark/miles:latest

# 启动容器(NVIDIA GPU)
docker run --rm \
  --gpus all \
  --ipc=host \
  --shm-size=32g \
  --ulimit memlock=-1 \
  --ulimit stack=67108864 \
  --network=host \
  -it radixark/miles:latest /bin/bash

AMD MI350/MI355:

docker pull rlsys/miles:MI350-355-latest
docker run --rm \
  --device /dev/dri --device /dev/kfd \
  --group-add video --ipc=host --shm-size=32g \
  --cap-add SYS_PTRACE --security-opt seccomp=unconfined \
  --privileged \
  -it rlsys/miles:MI350-355-latest /bin/bash

方式二:从源码安装

git clone https://github.com/radixark/miles.git
cd miles
pip install -r requirements.txt
pip install -e . --no-deps

⚠️ Miles 固定了 SGLang 和 Megatron-LM 的特定 commit,Docker 方式可避免版本冲突。

验证安装

python -c "import miles; print('Miles import OK')"
nvidia-smi

Quick Start:跑 GRPO on Qwen3-4B

前置条件:单节点 8x H100/H200/B-series,500GB 可用磁盘,Docker with GPU access。

# Step 1: 下载模型和数据集
hf download Qwen/Qwen3-4B --local-dir /root/models/Qwen3-4B
hf download --repo-type dataset zhuzilin/dapo-math-17k --local-dir /root/datasets/dapo-math-17k
hf download --repo-type dataset zhuzilin/aime-2024 --local-dir /root/datasets/aime-2024

# Step 2: 转换 HuggingFace checkpoint → Megatron torch_dist 格式
cd /root/miles
MODEL_ARGS_LINE="$(python3 miles/utils/external_utils/model_args_utils.py qwen3-4B)" || exit 1
read -ra MODEL_ARGS <<< "${MODEL_ARGS_LINE}"
PYTHONPATH=/root/Megatron-LM python tools/convert_hf_to_torch_dist.py \
   ${MODEL_ARGS[@]} \
   --hf-checkpoint /root/models/Qwen3-4B \
   --save /root/models/Qwen3-4B_torch_dist

# Step 3: 启动训练
python scripts/run_qwen3_dense.py --model-name Qwen3-4B

日志稳定后会看到:

rollout 0: {'rollout/raw_reward': 0.32, ...}
step 0: {'train/loss': 0.0021, 'train/pg_loss': 0.0018, ...}

rollout/raw_reward 持续上升即表示 RL 正常收敛。

Checkpoint 每 20 个 rollout 自动保存,路径在 /root/shared_data/checkpoints

切换训练后端

Miles 支持两种训练后端,默认走 Megatron-LM(支持最大规模模型)。如需用 HuggingFace 原生实现训练:

# scripts/run_qwen3_dense.py 中指定
training_backend = "fsdp2"  # 替换默认的 "megatron"

支持的 RL 算法

算法 用途
GRPO 通用 RL(Quick Start 默认)
GSPO 特殊策略优化
PPO 经典 on-policy
REINFORCE++ 策略梯度变体
SFT 有监督微调
On-Policy Distillation 知识蒸馏

坑与适用边界

⚠️ 硬件门槛高

  • Quick Start 最低要求 8x H100/H200/B-series,A100 用户会遇到 FP8 功能禁用(无 FP8 则无法用 MXFP8/NVFP4 低精度优化)
  • 多节点训练需要 InfiniBand / RoCEv2 / Slingshot 互联(单节点 NVLink 够用)
  • AMD ROCm 仅验证了 MI300X / MI325 / MI350 / MI355,其他 AMD 卡未测

⚠️ 环境复杂性

Miles 是一个全栈系统,涉及 SGLang + Megatron-LM + Ray 三个复杂系统的协同。官方明确建议用 Docker 以避免依赖版本冲突。裸机安装需要处理 CUDA 版本、FlashAttention-3、DeepGEMM、Apex 等层层依赖。

⚠️ Checkpoint 格式转换

Rollout 引擎读取 HuggingFace 格式,训练引擎(Megatron-LM)读取自己的 torch_dist 格式。转换只需一次,但注意保留原始 HuggingFace 目录别删。

⚠️ 磁盘空间

500GB 最低要求,trillion-parameter 模型 checkpoint 体积可达数百 GB。提前规划存储路径(--output-dir)。

✅ 适用场景

  • 多节点万亿参数 MoE 模型的 RL 后训练
  • 需要 GRPO/PPO/SFT + On-Policy Distillation 的生产级训练
  • 需要 day-0 支持最新 frontier 模型(DeepSeek-V4、Kimi-K3 等)
  • 需要 fault tolerance 的长时间训练任务

❌ 不适用场景

  • 单卡或小集群(<8 GPU)实验性探索 → 考虑直接用 OpenRLHFveRL
  • 仅做 SFT 不需要 RL → 直接用 LLaMA Factory / Axolotl
  • Windows 环境 → 无官方支持

一句话结论

Miles = SGLang + Megatron-LM + Ray 全异步 RL,一条生产级命令跑通万亿参数大模型后训练,硬件门槛高但上限也是最高的。