Skip to main content
Miles emits per-rollout metrics to stdout and (optionally) Weights & Biases. SGLang and Ray write their own logs to their default directories. For per-GPU phase timelines and token level trajectory inspection, see the Miles Dashboard.

What gets logged by default

Each rollout iteration emits a structured row to stdout (illustrative shape — exact fields depend on backend and config):
When --use-wandb is set, metrics also go to wandb under the train/, rollout/, and perf/ namespaces (see miles/utils/wandb_utils.py).

Enabling wandb

Available flags: --use-wandb, --wandb-project, --wandb-group. WANDB_API_KEY should be supplied via Ray’s env_vars rather than baked into the launch script.

What to watch

Panel names follow what loss.py and the rollout logger emit; Miles’s wandb metrics live under train/, rollout/, perf/, multi_turn/, passrate/ namespaces.

Custom loggers

Replace the default rollout logger with your own to push to internal systems:

Profiling

Built-in PyTorch profiler

The PyTorch profiler is wired into Miles via miles/utils/profile_utils.py. Flags differ by backend: Megatron — choose which sub-loop to profile:
FSDP — additionally exposes the standard FSDPArgs window:
Open the trace in chrome://tracing or Perfetto.

Where the log files live

Router endpoints

The router exposes a small FastAPI surface used internally by Miles: