> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baseten.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Training on Baseten

> Train models on managed GPUs with Loops or Training Jobs and deploy any checkpoint to production inference.

Baseten trains models on managed GPUs and deploys the resulting checkpoints to production inference on the same platform. Train directly with **[Loops](/loops/overview)**, a Python SDK for LoRA fine-tuning and RL on a curated set of base models, or bring your own container and training code with **[Training Jobs](/training/overview)**.

## Choose your path

* **Fine-tuning or running RL on a supported base model**: Loops provisions a dedicated trainer and paired sampler, and each training step is an API call from a Python loop you write. You bring the data; Baseten runs the infrastructure. Start with the [Loops overview](/loops/overview).
* **Already training elsewhere**: Your Axolotl config, TRL script, or custom loop runs unchanged in a container. Baseten provisions the GPUs, syncs checkpoints as your job saves them, and deploys any checkpoint as a production endpoint. That's [Training Jobs](/training/overview).

If you match both or neither, the paths differ in who drives. With Training Jobs, you hand Baseten a program: a batch job that runs to completion on hardware you declare. With Loops, your program calls Baseten: each training step is an API call to a live trainer, and a paired sampler serves the latest weights throughout. Loops covers LoRA fine-tuning and RL on a [curated model list](/loops/supported-models) and is in early access; [request access](https://www.baseten.co/talk-to-us/loops-signup/) for your workspace. Training Jobs runs any training code and is available to every workspace today.

|                | [Training Jobs](/training/overview)               | [Loops](/loops/overview)                                                                               |
| -------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| Training code  | Any container image                               | A Python training loop (`baseten-loops` SDK)                                                           |
| Models         | Any                                               | [Supported base models](/loops/supported-models) only                                                  |
| Hardware       | You declare GPUs in a Truss config                | Baseten picks GPUs for the base model                                                                  |
| Inference path | Deploy any synced checkpoint with one CLI command | Sampler serves new weights live during training; deploy checkpoints when ready                         |
| Lifecycle      | Job runs to completion and exits                  | Session stays live until you run [`truss loops deactivate`](/reference/cli/loops/loops-cli#deactivate) |
| Availability   | All workspaces                                    | Early access                                                                                           |
| Documentation  | [Jobs docs](/training/overview)                   | [Loops docs](/loops/overview)                                                                          |

## Next steps

<CardGroup cols={3}>
  <Card title="Loops quickstart" icon="rocket" href="/loops/quickstart">
    Train a step, sample from the tuned weights, and deploy a checkpoint.
  </Card>

  <Card title="Jobs quickstart" icon="rocket" href="/training/getting-started">
    Run your first training job and deploy the result.
  </Card>

  <Card title="ML Cookbook" icon="book" href="https://github.com/basetenlabs/ml-cookbook">
    Production-ready examples for frameworks and models.
  </Card>
</CardGroup>
