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。
核验过程
官方来源
-
GitHub README (radixark/miles) - Apache-2.0 license 确认 - 完整 feature list - v0.1 发布时间锚定为 2026/08
-
LMSYS Blog — Miles v0.1: Production-level Post-training (lmsys.org) - RL 循环三阶段(Rollout → Training → Weight Update)详细说明 - 三种 eval 模式(shared-engine / dedicated / external) - Agentic environments 机制
-
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
-
官方文档 (miles.radixark.com) - 硬件需求表(GB300/GB200/B300/B200 → Production;H200/H100 → CI guarded;A100 → Supported 但 FP8 功能禁用) - Quick Start 完整命令(8x H100 + 500GB disk + Docker) - pip 安装方法
-
GitHub API (api.github.com/repos/radixark/miles) - Forked from THUDM/slime 确认 - License 字段: Apache-2.0
-
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)实验性探索 → 考虑直接用 OpenRLHF 或 veRL
- 仅做 SFT 不需要 RL → 直接用 LLaMA Factory / Axolotl
- Windows 环境 → 无官方支持
一句话结论
Miles = SGLang + Megatron-LM + Ray 全异步 RL,一条生产级命令跑通万亿参数大模型后训练,硬件门槛高但上限也是最高的。