Prerequisites
- The Python project and
BASETEN_API_KEYfrom the quickstart. - uv and Python 3.12 or later.
Turn a dataset into training data
Each training example becomes aDatum: input tokens plus loss targets that mask the prompt and supervise the answer, with the same label shift the quickstart uses. For chat data, render the conversation with the tokenizer’s chat template and treat the final assistant message as the answer.
Install the dataset library in your project:
train_dataset.py:
train_dataset.py
Run the training loop
Each iteration is one training step over a batch: oneforward_backward() on a list of Datum, then one optim_step(). Append:
train_dataset.py
Save a resumable checkpoint
As in the quickstart, save the resumable state and the sampler weights:save_state() preserves training and optimizer state, while save_weights_for_sampler() publishes the adapter for sampling and deployment. Append:
train_dataset.py
load_state_with_optimizer() with the saved state.path.
Sample from the checkpoint
Create a sampling client from the returned sampler checkpoint, then generate a completion without creating an inference deployment. The serverless client stays pinned to that checkpoint; publish again and create a new client to sample later weights. Append:train_dataset.py
Output
Shut down the run
Closing the SDK clients releases local connections and stops the training client’s keepalive. An idle serverless run incurs no token charges. To end the run and its paired sampler explicitly, use the printed run ID. With the Baseten CLI installed, end the run:-
Deactivate the run, and confirm when prompted:
-
Check that the run’s
status.nameisINACTIVE:
Deploy the checkpoint
The sampler checkpoint is ready to serve. The deployment loads the adapter on the base weights, downloads the base weights with thehf_access_token in workspace secrets, and bills for its GPU while it’s live. With the Baseten CLI installed, list the run’s checkpoints and deploy the one you want:
Next steps
- Deploy a checkpoint: Serve the returned sampler checkpoint as an inference endpoint.
- Hyperparameters: Apply a learning-rate schedule to this training loop.
- Loss functions: Swap
cross_entropyforimportance_sampling,ppo, and other objectives when you move past SFT.