Skip to content

Support and limits

MILES + OLMo-core is the recommended GRPO path for supported Olmo MoE models. Existing Core/vLLM and DeepSpeed/vLLM workflows remain available for dense-model training. This page summarizes what the MILES integration supports and its current limits. Support for one model, topology or feature does not imply support for every combination; check a new combination on a small run first. For starting settings see development defaults.

Area Available Limits
Researcher workflow Structured TOML, CPU plan/validate, committed-image launch, preparation, receipts/status, native passthrough help No named recipe catalog; express tasks or adopt an immutable manifest
MoE training Core MoE adapter with expert parallelism, router replay and router auxiliary-loss controls Trainer TP/PP/CP greater than one and microbatch sizes above one are rejected; full-model colocation is not supported
Dense Olmo 3 Separate Core/FSDP adapter with save, resume, HF export and serving reload Learning behavior is less explored than the MoE path
Hybrid MoE Checkpoint conversion, EP training and TP1 serving with Core-compatible rounding See hybrid MoE support
Async and replay Bounded policy lag with TIS, mixed-policy refresh, packing with replay Refresh keeps historical behavior probabilities; a resumed run does not reproduce the exact future samples
Packing and compute Document-isolated packing, activation recomputation, dynamic SwiGLU rows, guarded scoring-pass skip Auxiliary loss defaults to pack-local token averaging; see router auxiliary objectives
Serving Multiple TP1 engines, independent inference GPU counts, multi-node startup, radix and cache-aware routing TP>1 engines with cache/replay combinations are untested
Data and rewards Math, GSM8K, IF, function and stdio code execution, named judge rubrics The code executor is an external service
Checkpoints Synchronous native saves with rolling retention, topology/cursor validation, same-topology restore, final HF export, multi-node restart from the newest checkpoint Background saves, topology changes on restore and restarts of runs with a managed judge are not supported or untested
Health and recovery Separate health/generation connections, bounded HTTP retries, whole-group retry of failed generations No automatic trainer recovery or engine replacement; restart from a completed checkpoint
Publication Streamed fused tensors over NCCL or colocated IPC, startup weight audit Barrier is the low-level default; engine drain is experimental
Compiler caches Private local Triton caches with shared immutable generations and bounded best-effort publication Other compiler families and CUDA graphs are not persisted
Background evaluation Opt-in independent Beaker evaluator jobs that never pause rollout engines Best effort: milestones can be skipped, and failed submissions are not retried
On-policy distillation Experimental Megatron OPD with a managed SGLang teacher, sync or measured async rollout, optional EOPD loss One node; Megatron learner rather than Core; Core GRPO rejects miles.use_opd; GPU runtime qualification pending
Long sequences Prompt/response budgets and serving controls for 16K–64K contexts Trainer memory at long context depends on the model and topology; see long sequences

Differences from the Megatron implementation

Core owns its optimizer/checkpoint lifecycle and parallelism semantics; a native Megatron flag is not a substitute. See run controls for mappings and rejected settings, and the generated configuration reference for the accepted surface. Trainer offload, async checkpoint writing, token-per-expert checkpoint cadence, a named recipe catalog, some external judge modes and advanced parallel layouts are not implemented.