Start a serverless run
Runs use the serverless mode by default when serverless supports the model and the run’s LoRA rank and sequence length. To require the serverless mode, setscope to serverless:
scope="serverless", creating the run fails instead of falling back to the dedicated mode when serverless can’t take the run. See choose a mode for the environment variable and REST equivalents.
To check which models serverless supports, call Get server capabilities. Each model in the response has a serverless field.
When a run can’t use serverless
With the defaultscope, a run uses the dedicated mode instead when:
- Serverless doesn’t support the model.
- The run asks for a LoRA rank or sequence length that serverless doesn’t support for the model.
- The run reuses another run’s deployments.
availability_model capacity type apply only in the dedicated mode. To scale out a run with them, set scope to deployment.
When capacity is full
Serverless runs share a capacity pool that Baseten manages for you. When that pool is full, creating a training run or standalone sampler returns a429, and the SDK attempts the request up to ten times before raising LoopsCapacityError.
To resolve it, you can:
- Wait for capacity. Other runs finish and free their share, and the SDK’s retries cover the first few minutes.
- Free capacity in your organization. When the response reports
details.limitoforg_cap, your organization is at its limit of concurrent runs and samplers. Deactivate a run you no longer need. - Request more access. The Loops request form is how you get more concurrent runs, a larger model, or longer sequences.
- Give the run its own GPUs. Set
scopetodeploymentto run in the dedicated mode, which reserves a trainer and sampler for the run.
Billing
Serverless runs bill for prefill, cached prefill, sample, and train tokens at the per-model rates listed under Serverless Loops token pricing. These rates are separate from Model API token rates for the same base model. Time between training operations, such as time spent reading results or changing a reward function, doesn’t bill.Usage and logs
baseten loops usage reports dedicated GPU allocations. It doesn’t report serverless token usage or spend.
To inspect dedicated GPU allocations:
Run the following command with an authenticated Baseten CLI:
baseten loops usage.
Deployment logs cover dedicated runs. For more information about errors from serverless training and sampling calls, see Loops troubleshooting.
Finish a run
An idle serverless run incurs no token charges. Saved checkpoints remain available to download, deploy, or start a new run from. To end a run and its paired sampler: Save the checkpoints you need, then run the following command. Replace<run_id> with TrainingClient.run_id, and confirm when prompted:
Deactivated Loops run <run_id>.
For more information, see Deactivate a run.