Skip to main content
Flash trains a LoRA adapter on a curated catalog of base models. Set the base model with one line in your config, then list the live catalog from the CLI:

Catalog

Every catalog model supports SFT, GRPO, and OPD, accepts image inputs for training and serving (see Image inputs), and is hybrid-reasoning: it runs with or without an explicit reasoning step, which you turn on with thinking = true. The catalog is the whole set of trainable models. A model outside it is rejected when the config is parsed, before any GPU is rented, and there is no config key that opts into an uncatalogued id. The error lists the supported ids.

Serving prices

Serving is billed per token after deployment, at the per 1M token rates below. Cached prompt tokens are prompt tokens served from the automatic prefix cache; see Billing for when it applies.

Context window and LoRA rank

Every model trains and serves at a 32768-token context - a LoRA trained longer than it is served would learn positions inference never uses. flash train enforces that cap and the per-model max LoRA rank above at submit: a config whose max_context_tokens exceeds the cap, whose GRPO/OPD prompt plus max_completion_tokens cannot fit, or whose lora_rank exceeds the max rank, is rejected.

Choosing a model

Start small

Use Qwen/Qwen3.5-0.8B or 2B to validate your setup and data cheaply. Get a run working before you scale.

Scale up for quality

Move to Qwen/Qwen3.5-4B or 9B once the task is wired up and you want stronger results. Larger models cost more per run.

Pick a model, then train

Set model in your config and submit a run.