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
| Output | Path | Notes |
|---|---|---|
| Launch log | logs/launch_<ts>.log | Background-launch wrapper output (contains the step: metric lines) |
| Training log | repos/harbor-verl-train/logs/<exp>.log | verl + Harbor integration log |
| Throughput log | repos/harbor-verl-train/logs/<exp>_vllm.log | filtered throughput-only log (dashboard skips it) |
| Trajectories | repos/harbor-verl-train/harbor_trials/<project>/<exp>/<trial>/litellm-trajectory.jsonl | per-trial agent traffic |
| Checkpoints | repos/harbor-verl-train/checkpoints/<project>/<exp>/global_step_N/ | actor FSDP shards, every save_freq steps |
These map to runtime_info.output — checkpoint_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.yamlis one-shot configuration and carries no run state). artifacts/index.yaml— one row per run (completed | interrupted | failed), written byscripts/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.