Verl-SWE-RL

Run Training

Results & Artifacts

Where logs, checkpoints, trajectories, and archives land

A run produces several streams of output. Most live under the harbor-verl-train repo (gitignored runtime artifacts); the block-level logs/ and artifacts/ hold the launch wrapper's logs and run history.

Per-run outputs

OutputPathNotes
Launch loglogs/launch_<ts>.logBackground-launch wrapper output (contains the step: metric lines)
Training logrepos/harbor-verl-train/logs/<exp>.logverl + Harbor integration log
Throughput logrepos/harbor-verl-train/logs/<exp>_vllm.logfiltered throughput-only log (dashboard skips it)
Trajectoriesrepos/harbor-verl-train/harbor_trials/<project>/<exp>/<trial>/litellm-trajectory.jsonlper-trial agent traffic
Checkpointsrepos/harbor-verl-train/checkpoints/<project>/<exp>/global_step_N/actor FSDP shards, every save_freq steps

These map to runtime_info.outputcheckpoint_path, training_log, trajectory_log — the block's handoff contract. See Inputs & Outputs.

Live state

  • The process table — pgrep -af 'sync_1node_cc|main_ppo' tells you whether a run is live right now (config.yaml is one-shot configuration and carries no run state).
  • artifacts/index.yaml — one row per run (completed | interrupted | failed), written by scripts/archive_run.sh's EXIT trap.

Archives

After a meaningful run, snapshot the relevant subset under artifacts/archives/run_NNN/: a config.yaml snapshot, a log tail, a trajectory sample, the scripts run, and metadata.yaml (run id, timestamps, repo commit SHAs, results). Append a row to artifacts/index.yaml.

Do not commit checkpoints

FSDP shards are large and stay where verl wrote them. Archive metadata and small samples — never the checkpoints themselves.

Visualizing

The dashboard reads the launch and training logs and renders reward, KL, MFU, entropy, and response-length curves, plus a browser over the per-trial trajectory JSONL.

On this page