Skip to main content
Describe a run in a TOML config, then pass it to flash train. Every run requires model and environment.id; SFT also requires a positive train.max_examples. algorithm defaults to sft. Run authenticated submit-time preflights with flash train config.toml --dry-run; it creates state=dry_run, allocates no GPU, and charges nothing.

Top level

[environment]

Environment code reads the secret normally:
[environment].pip is the worker install path for reward and environment dependencies. Do not rely on pyproject.toml, requirements.txt, or lockfiles inside the published environment artifact for managed training installs. Those files may describe your local development environment; runtime packages belong in this config list. Never put secret values in [environment.params]; it becomes part of the run spec. Every name you list under [environment].secrets must resolve to a value in your shell, .env, or .env.local when you submit. Reserved platform secret names such as FREESOLO_API_KEY, HF_TOKEN, GITHUB_TOKEN, RUN_ID, and HF_REPO are owned by Flash.

[train]

Server-side --dry-run resolves warm-start rank and alpha. Local --cost may warn and estimate with defaults.

SFT-specific

GRPO-specific

OPD-specific

OPD derives updates from epochs, retained prompts, and batch size unless positive max_steps sets an exact horizon. An SFT warm-start is recommended. There is no auxiliary EOS loss. For termination problems, use an SFT warm-start, verify teacher quality, set a hard prompt budget, add suitable stop_sequences, and inspect truncated_rollouts. The local --cost estimate may itemize teacher usage for diagnosis, but only GPU time is charged. advantage_clip and thinking_length_penalty_coef do not apply to OPD.

Structured outputs

structured_outputs constrains GRPO and OPD rollouts; SFT rejects it. Set exactly one JSON schema, regex, choice, or json_object constraint. Optional whitespace controls are documented in the guide. Combining constraints or using unsupported grammar forms is rejected. With thinking = true, reasoning remains free-form and the grammar begins after </think>. See Structured outputs.

[gpu]

Provider and exact-GPU constraints persist across retries and cost estimates. Use exact_type when hardware identity matters.

[worker_env] (advanced)

[worker_env] passes non-secret string values into the worker environment and is serialized into the run spec and artifacts. Use it only for harmless labels or feature flags. Secret-looking keys and values are rejected; runtime secrets belong in [environment].secrets. SEED, RUN_ID, HF_REPO, and FLASH_ARM are control-plane-owned and cannot be overridden here.

[wandb]

Optional Weights & Biases logging labels. These values are non-secret; set WANDB_API_KEY in your local environment when submitting a run to enable logging to your own W&B account.

Overrides & composition

Set any value at submit time without editing the file. The override flag is --set (repeatable, dotted keys):

Next steps

Training

See these fields in the run lifecycle.

Troubleshooting

Fix common config and run errors.