sft

Training

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 history

A 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:

OutputSource
checkpoint_pathLatest artifacts/model/<run>/checkpoint-<step>/
training_metrics.final_losstrain_results.json
training_metrics.train_runtimetrain_results.json
training_metrics.total_stepstrainer_state.json
artifacts.train_results / train_loss_plot / training_logrun output paths
training_curveswandb 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.yamlruntime_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.

On this page