Tinker: a training API for researchers and developers - Tinker Documentation

Tinker: a training API for researchers and developers

Tinker lets you focus on what matters in LLM post-training — your data and algorithms — while we handle the heavy lifting of distributed training.

You write a simple loop that runs on your CPU-only machine, including the data or environment and the loss function. We figure out how to make the training work on a bunch of GPUs, doing the exact computation you specified, efficiently. To change the model you're working with, you only need to change a single string in your code.

Tinker gives you full control over the training loop and all the algorithmic details. It's not a magic black box that makes fine-tuning "easy". It's a clean abstraction that shields you from the complexity of distributed training while preserving your control.

Here's how the division of responsibilities works in practice:

You focus on You write We handle
Datasets and RL environments
Your custom training data
Simple Python script
Runs on your CPU
Efficient distributed training of large models
Qwen3.5-397B, Kimi K2.6
Training logic
Your loss functions, training loop, and evals
API calls
forward_backward()
optim_step()
sample()
save_state()
Reliability
Hardware failures handled transparently

Features

What the Tinker service currently supports:

A quick look at functionality

Tinker's main functionality is contained in a few key functions:

Back to top