Results & Artifacts
Where a run writes its outputs and how they are recorded
A training run writes checkpoints, metrics, and logs under artifacts/, and records a summary back into config.yaml.
On-disk layout
artifacts/
├── model/<run>/ # one directory per run (training.output_dir)
│ ├── checkpoint-<step>/ # saved every save_steps
│ ├── trainer_log.jsonl # live per-step metrics (primary live source)
│ ├── trainer_state.json # full log_history incl. eval points
│ ├── train_results.json # final-loss / runtime summary
│ ├── all_results.json # performance summary (samples/s, FLOPs)
│ └── training_loss.png # loss curve
├── logs/<run>_<timestamp>.log # console log
├── data/lf_data/ # converted training data + dataset_info.json
└── index.yaml # append-only run historyA relative training.output_dir resolves to artifacts/model/<basename>; an absolute path is used as-is.
Recorded back into config.yaml
After a successful run, scripts/train.sh rewrites only the runtime_info.output block of config.yaml, preserving comments and formatting elsewhere:
| Output | Source |
|---|---|
checkpoint_path | Latest artifacts/model/<run>/checkpoint-<step>/ |
training_metrics.final_loss | train_results.json |
training_metrics.train_runtime | train_results.json |
training_metrics.total_steps | trainer_state.json |
artifacts.train_results / train_loss_plot / training_log | run output paths |
training_curves | wandb run id, when available |
Keeping inputs and outputs in one block config avoids drift from a separate outputs.yaml that is not checked in for this block.
Run history
Each run launched through scripts/start.sh is archived on exit by scripts/archive_run.sh, which appends an entry to artifacts/index.yaml. Read config.yaml → runtime_info.output for the latest run and artifacts/index.yaml for the full history. See Status.
Handoff
runtime_info.output.checkpoint_path is the block's primary handoff to downstream consumers (rl, eval). See Inputs & Outputs for the full contract.