Skip to main content
The Together AI platform records metrics at every training and evaluation step. You can pull them during a job to watch loss curves live, or after the job completes to compare runs.

Poll until the job is done

A fine-tuning job moves through the states: pending → queued → running → uploading → completed. Queue wait is typically under an hour but varies with platform load. Once a job is running, multiply the duration of the first epoch by n_epochs to estimate remaining training time. Use this loop to poll until the job reaches a terminal state, then fetch the metrics. The terminal states are completed, error, and cancelled. If you launched the job with early stopping, the terminal status is still completed even when training ended ahead of n_epochs. The response sets early_stopped=true and exposes the winning checkpoint via early_stopping_best_step and early_stopping_best_metric.
Expected job durations: A small LoRA job on an 8B model with under 1,000 examples typically completes in 10 to 30 minutes after queue. A full job on a 70B model with hundreds of thousands of examples can take several hours. Save your job ID: you can poll from any session without re-uploading data.

Cancel or delete a job

Cancel a running job if you started it by mistake or no longer need it. You’re billed only for the steps that completed before cancellation.
Delete a finished job to remove it along with the files it produced.
Deleting a job can’t be undone. It destroys every file the job produced, including intermediate and final checkpoints.

Retrieve metrics

The list_metrics call returns every recorded step. The CLI renders ASCII charts by default; pass --json to get raw output.

Filter by step or time

All filter parameters are optional. Omit them to retrieve every recorded step.

Downsample with resolution

For long runs, pass resolution to cap the response at a fixed number of uniformly sampled training steps. Eval metrics are always returned in full regardless of this setting.

Sample output

Training and eval steps are returned as separate objects. Training steps contain train/* keys, eval steps contain eval/*. When both fire at the same step, both objects appear:

Parameters

Available metrics

Every job reports train/global_step, train/loss, train/grad_norm, train/learning_rate, and timestamp. When you supply validation_file and set n_evals > 0, the response also includes eval/loss and other validation metrics.

Preference-tuning jobs

A DPO job emits everything above and adds reward and divergence metrics to the same list_metrics payload. They show up as extra train/* keys during training and, when evaluation is enabled, matching eval/* keys:
  • Reward and accuracy: The reward assigned to the preferred and non-preferred responses, plus the share of examples where the preferred reward is higher.
  • KL divergence: How far the trained model’s output distribution has drifted from the reference model.
  • Per-side log probabilities: Separate values for the preferred and non-preferred outputs, useful for debugging stalled runs.
Retrieval, filtering, and downsampling work the same way regardless of method. For what these values mean and how to interpret them during a run, see DPO metrics.

Stream to Weights & Biases

Pass wandb_api_key when creating the job to mirror these metrics to your W&B workspace in real time. See the quickstart for the call structure.