Skip to main content
Training uses a ready spec and its rewards. Start from an evaluation baseline.

1. Choose a model

Use a returned base_model_slug. Each entry describes that model’s supported options, bounds, and defaults. A computed default has default_kind="computed" and a null default; leave the option unset to let the server calculate it.

2. Start

Training and evaluation take RunOptions fields through options; a standalone evaluation accepts a subset. Omit options, or pass {}, to use the selected model’s defaults. Only set options advertised by that mode’s list_options response; training and evaluation can have different bounds. batch_size counts eligible task groups per optimizer step, and group_size counts trajectories within a group. For a short test run, lower both; default concurrency scales with them. Nothing here caps total trajectories, so plan a budget before you start. See training options for every setting and reduce trajectory spend for the ones that control token use.

3. Watch progress and pick a checkpoint

An ID means the run was accepted. A pending run with zero completed steps is waiting; increasing step counts show progress. Watch attempted and graded trajectories as well. If trajectories accumulate without an update, inspect their endings and reward components; cancel a test run that has exceeded its planned budget. Check completed steps and checkpoints before concluding that training updated the model. See termination reasons for which endings training admits. For a small test run, inspect trajectories and group counts:
no_signal_groups counts completed groups with identical rewards, which give zero advantage in group-relative training. When these groups are filtered out, training needs additional trajectories to fill the batch. After the run succeeds, inspect its rewards and choose a checkpoint. list_held_out_rewards returns the validation reward for each step:
Check round_completed, and completed_samples against expected_samples, before comparing validation means. The agent’s Training tab shows run progress and checkpoints. Evaluate that checkpoint before you deploy it.

4. Resume from a checkpoint

The checkpoint must match the selected base model. Use parent_checkpoint_id for both resumed training and checkpoint evaluation. Resuming restores the optimizer, LR schedule, and global step; set load_weights_only to true to start from the checkpoint’s weights with fresh training state.

Training options

Pass these keys in options. The defaults below apply to every supported model unless noted; list_options reports the bounds and defaults for the model you select. A default written as null → a value is computed when you leave the option unset. With the default batch_size of 32 and group_size of 8, that resolves to 512 concurrent training trajectories and a minimum of 4 eligible trajectories per group.

Optimization

The learning rate rises linearly to learning_rate over lr_warmup_steps, holds until step lr_warmup_steps + lr_hold_steps, then follows a cosine curve down to learning_rate × lr_min_ratio at the final step.
Learning rate by training step: a linear rise to the base rate by step 15, flat until step 150, then a cosine curve down to 10% of the base rate at the final step of a 400-step example. A default 100-step run ends during the flat section.Learning rate by training step: a linear rise to the base rate by step 15, flat until step 150, then a cosine curve down to 10% of the base rate at the final step of a 400-step example. A default 100-step run ends during the flat section.
With the defaults, decay starts at step 150, so a default 100-step run ends at the base rate. To use the decay, set num_steps above 150 or lower lr_hold_steps.

Training filters

Reward 0 applies to training only; the recorded trajectory reward stays as logged. See termination reasons.

Trajectories

Sampling

Validation during training

Reduce trajectory spend

Training is asynchronous: trajectories keep running up to max_concurrent_trajectories, including while an optimizer step is in progress. Each step trains on batch_size complete groups that pass filtering. Groups whose trajectories all pass, all fail, or tie carry no learning signal, so by default they are discarded after using tokens.
  • Concurrency. The default oversamples by 2×. Lower max_concurrent_trajectories to spend less on trajectories the trainer may not use, but keep it above batch_size × group_size so collection stays ahead of training.
  • Staleness. Trajectories that started more than max_staleness steps before the current step are discarded: running ones are cancelled and finished ones are skipped. Lower values keep training closer to on-policy but discard more work. 0 cancels every trajectory still running when a step finishes.
  • Validation. With the defaults, a 100-step run validates 101 times on up to 50 tasks, about 5,000 extra trajectories. Set val_interval_steps to 5 or 10, lower val_num_tasks, or set val_interval_steps to 0 and evaluate checkpoints after training.