mrkeyoor.com_
Fri 04 Sept 16:54 UTC
AI Toolsevaluationupdated 04 Sept 2026

miles review

Miles is a framework for improving large language and vision models with reinforcement learning after their initial training. It coordinates response generation, scoring, model updates, checkpoints, and recovery across expensive GPU machines so research teams do not have to assemble those parts themselves.

trackingstars / 7d
Verdict

Our Miles install took 33 seconds and the build passed in 18 seconds, but its tests stopped after 9 seconds because Python could not import torch, so teams should verify the full training image before trusting the lighter source install. Use Miles when an 8-GPU starting point, patched training stack, and Megatron-scale controls match work you already operate. Smaller experiments should begin with a less demanding trainer.

We ran it

Lab card: what happened when we ran milesScreenshot of miles (miles.radixark.com)
Install✓ · 33s35 packages · 37 MB
Build✓ · 18s
Tests✗ · 9sran, no count parsed
Known vulns0(pip-audit)
Repo2043 files~275,700 lines of source · 23.4 MB · 20 CI workflows · tests dir

Answers from our run

Does miles build from source?

Dependencies installed in 33 seconds (35 packages), and the build succeeded in 18 seconds. We cloned commit a6d743f into a clean Debian container with 3 CPUs and no project-specific setup.

Do miles's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does miles have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use miles?

Developers looking for a laptop experiment: the official quick start requires 8 H100, H200, or B-series GPUs and at least 500 GB of free disk.

What are the alternatives to miles?

verl, NeMo RL, slime. Our Miles install took 33 seconds and the build passed in 18 seconds, but its tests stopped after 9 seconds because Python could not import torch, so teams should verify the full training image before trusting the lighter source install.

Setup1/5Source builds, but real use starts at 8 GPUs and 500 GB
Docs5/5Detailed install, recipe, backend, networking, and recovery guidance
Community4/52,481 stars with same-day pushes and active issue discussion
Maturity3/5Deep operations work, though v0.1 is the first tagged release

Who it’s for

Model teams training large language or vision models across several GPUs or nodes.
Researchers who need GRPO, PPO, supervised fine-tuning, or on-policy distillation in one codebase.
Infrastructure groups already using SGLang, Megatron-LM, Ray, and high-speed GPU networking.
Teams willing to start from supplied model recipes and tune one cluster variable at a time.

Who it’s NOT for

Developers looking for a laptop experiment: the official quick start requires 8 H100, H200, or B-series GPUs and at least 500 GB of free disk.
Operators whose container policy forbids broad device access: the documented AMD command uses --privileged, direct device mounts, and relaxed seccomp settings.
FSDP users who need LoRA or tensor, pipeline, context, or expert parallelism: the training-backend guide says those capabilities are unavailable there.
Teams depending on the documented OPD top-k path without their own numerical review: open issue 2362 argues that its reward is action-independent and does not distill the teacher as intended.
Anyone expecting a routine source install: the installation guide warns that Miles depends on patched SGLang, Megatron-LM, and CUDA kernels and recommends Docker.

Setup reality

Our sandbox install succeeded in 33 seconds, adding 35 packages and using 37 MB. The build passed in 18 seconds. Tests stopped with exit 4 after 9 seconds because importing miles.rollout.data_source raised ModuleNotFoundError: No module named 'torch'. Pip-audit found 0 known vulnerabilities.

A useful training run needs model and dataset downloads, Docker with GPU access, Ray, SGLang, and either Megatron-LM or FSDP2. The documented starter job calls for 8 GPUs and 500 GB free disk. Weights must be converted for Megatron, while experiment tracking can use a W&B API key.

The recommended images require host networking, 32 GB shared memory, raised limits, and direct GPU access. Multi-node jobs need InfiniBand, RoCEv2, or Slingshot. FSDP skips checkpoint conversion but gives up LoRA and several parallelism modes; patched dependency commits make a hand-built environment easier to misconfigure.

Miles starts where an 8-GPU training job becomes an operations problem

Miles coordinates the two halves of reinforcement-learning post-training. SGLang generates candidate answers, a reward function scores them, and either Megatron-LM or PyTorch FSDP2 updates the model. The supplied recipes cover GRPO, GSPO, PPO, REINFORCE++, supervised fine-tuning, and on-policy distillation. This is infrastructure for teams changing model weights, not an API wrapper for people who only want to call a model.

The codebase matches that scope. Our checkout contained 2,043 files and about 275,700 lines of source in 23.4 MB. Miles also routes requests across generation engines, moves updated weights back into them, saves distributed checkpoints, and can recover a failed SGLang engine during a run. Those pieces are valuable when the alternative is maintaining several internal services, but they give a new operator many failure boundaries to understand.

The official first run needs 8 GPUs and 500 GB free disk

The quick start assumes one node with 8 H100, H200, or B-series GPUs, Docker GPU access, and at least 500 GB of free disk. It downloads a Qwen model plus training and evaluation data, converts Hugging Face weights into Megatron's sharded format, then starts a local Ray cluster. Keeping the original model directory is required because SGLang still reads its tokenizer and configuration.

That workflow is far removed from the 35-package environment that occupied 37 MB in our basic install. The recommended NVIDIA container uses host networking, 32 GB of shared memory, exposed GPUs, and raised memory-lock and stack limits. Its AMD counterpart mounts GPU devices, adds the video group, relaxes seccomp, and runs privileged. Security teams should review those flags before the image reaches a shared cluster.

The project warns that source installations often go wrong when SGLang or Megatron-LM is installed at the wrong patched commit. Docker is the documented answer. Multi-node training then adds a fast interconnect such as InfiniBand, RoCEv2, or Slingshot. This is reasonable for its intended scale, yet it means that a successful Python installation says almost nothing about whether a real job is ready.

What happened when we ran it

Our sandbox installed Miles in 33 seconds, added 35 packages, and used 37 MB on disk. The build succeeded in 18 seconds. Pip-audit reported 0 known vulnerabilities in that installed set. These are encouraging repository checks, though they did not exercise a GPU, pull a model, start Ray, or run a reinforcement-learning workload.

The test command failed with exit code 4 after 9 seconds. Pytest stopped while loading tests/conftest.py: the import chain reached miles/rollout/data_source.py, which imports torch, and Python raised ModuleNotFoundError: No module named 'torch'. The log establishes the missing module and nothing more, so we cannot say whether the intended test procedure needed another dependency group or a different image.

The repository has a tests directory and 20 CI workflow files, despite our local suite never reaching collection. It has no Dockerfile at the repository root, although the current tree contains Docker material under docker/ and the project publishes recommended images. The practical release gate is straightforward: run the full test command inside the exact GPU image and patched dependency set intended for training.

Megatron carries the scale while FSDP keeps Hugging Face models familiar

Megatron is the default and the only backend that splits a model with tensor, pipeline, context, expert, and expert-tensor parallelism. It also supports LoRA and disk-backed optimizer handling. The price is an offline conversion from Hugging Face weights into torch_dist checkpoints plus architecture flags and model-specific recipes. Teams spanning racks will probably accept that bill because those controls are why they are considering Miles.

FSDP2 trains the Hugging Face implementation directly and avoids the conversion step, but the documented limits matter. There is no LoRA, tensor parallelism, pipeline parallelism, context parallelism, or expert parallelism. The 23.4 MB checkout therefore contains two paths with different checkpoint formats and capabilities, not interchangeable switches for the same run. Choose the backend before building automation around checkpoints or model adaptation.

Colocation adds another meaningful choice. It lets training and rollout share the same GPUs by moving each side out of memory while the other works. Fully asynchronous rollout cannot use that layout because generation and training need separate GPUs at the same time. Disaggregated runs also need a weight-transfer method, with network broadcast, point-to-point RDMA, and disk deltas documented for different cluster designs.

A first tagged release is moving fast enough to demand pinning

GitHub recorded a push on September 4, 2026, and the first versioned release, v0.1.0, arrived on August 18. The repository had 2,481 stars and 953 combined issues and pull requests when fetched. A separate search found 125 open issues, including current design discussions and a detailed report about the OPD top-k reward path. That is active maintenance, not a quiet queue.

Rapid work is visible in the 20 CI workflows and the long stream of refactoring pull requests. It also raises upgrade risk for clusters built around patched SGLang, Megatron-LM, CUDA kernels, and model recipes. Pin the Miles commit, container digest, model files, dataset revision, and backend configuration for any run that must be reproduced. A moving latest image is a poor record of an expensive experiment.

Miles makes sense when distributed model training is already your day job. Its documentation is unusually candid about hardware, checkpoint conversion, parallelism limits, memory movement, and networking. The failed source-suite startup keeps us from granting the light install much weight, while the 8-GPU quick start rules out casual evaluation. Treat it as cluster software, test the chosen image end to end, and use a smaller trainer when the model fits on ordinary hardware.

Alternatives

ProjectWhat it isPick it when
verl gh↗A reinforcement-learning training framework built around a flexible controller and distributed workers.pick this instead when you want another established distributed RL stack and prefer its HybridFlow programming model.
NeMo RLNVIDIA's toolkit for scalable reinforcement learning of language models.pick this instead when your training stack is already centered on NVIDIA NeMo and its recipes.
slime gh↗The SGLang-based post-training framework from which Miles was forked.pick this instead when you want the upstream design Miles grew from and do not need Miles-specific operations work.

What people are saying

  1. [github-trending] radixark/miles

Sources

  1. Miles README
  2. Miles installation guide
  3. Miles quick start
  4. Miles training backends
  5. Miles v0.1.0 release
  6. OPD top-k reward report

More ai tools reviews

MathModelAgent · Hands-On-AI-Engineering · ML-From-Scratch · OpenCluely · text-to-cad · Paddle · the whole board →