Tinker turns fine-tuning into a product for open LLMs
Thinking Machines Lab launched Tinker on October 1, 2025, a managed training API that lets you code SFT, RLHF, and DPO loops while it runs the clusters. See what that unlocks, how it compares, and how to start fast.

The week fine-tuning became a product
On October 1, 2025, Thinking Machines Lab turned a hard research practice into a clean piece of software. With Tinker, you write the training logic as a few lines of Python and their service handles the messy parts of distributed compute. In their launch note, Thinking Machines announced Tinker as a managed training API that favors control at the step level and portability at the model level. That framing matters because it shifts fine-tuning from something you beg the platform team to schedule to something a product team can ship on a sprint cadence.
This review walks through what shipped, why the interface is so small, where Tinker fits against other options, and how to build with it without inheriting a GPU operations problem. If you have followed the rise of domain agents and vertical stacks across our coverage of Harvey debuts the agent fabric and agentic analytics on the semantic layer, Tinker will feel like the missing power tool that plugs into that direction.
What shipped and why it is different
Tinker is not another one-click wizard that hides the training loop behind opaque presets. It is a small surface that exposes the core verbs of post-training while delegating execution to robust infrastructure. You bring the loss, the schedule, and the data. They bring the clusters, the scheduling, and the failure recovery.
At a glance, the product centers on LoRA adapters rather than full weight rewrites. That trade balances cost, portability, and speed. Start small on a compact Llama or Qwen model, validate that the task is information bottlenecked rather than capacity bottlenecked, then scale up by swapping a string. Because adapters are exportable, you keep model sovereignty and can run inference on your own vLLM fleet or a hosted provider without lock-in.
Tinker’s documentation leans into a cookbook style. It shows how to compose supervised loops, preference-learning loops, and RL loops directly with the primitives. The theme is consistent: training is code that you own, and the service turns that code into distributed execution without asking you to learn cluster orchestration.
The API idea in four verbs
At the interface, Tinker is intentionally small.
- forward_backward: compute and accumulate gradients for your chosen objective
- optim_step: apply the optimizer update
- sample: generate tokens for evaluation, rollouts, or agents
- save_state: checkpoint weights and training state for resuming or export
Those four verbs cover most post-training recipes. You can write a supervised loop with cross entropy, an RL loop with policy gradient variants, or a preference loop that compares pairs of model outputs. Under the hood, methods are async so you can keep the pipe full while the service batches, schedules, and multiplexes jobs across a shared fleet.
Two design choices are pivotal.
- Loss first, not pipeline first. Rather than enforce a fixed post-training stack, Tinker makes the loss function a first class citizen. You can pass a stock loss, or define a differentiable custom objective that the service will execute efficiently at scale.
- Async by default. Methods return futures so your script can overlap requests. That is not a mere implementation detail. It is how you turn a laptop orchestrator into a competitive training driver that keeps expensive accelerators busy.
The docs explicitly illustrate DPO-style preference learning through a custom loss path. If you are exploring pairwise preferences, start with the DPO guide on custom losses to see how the forward_backward_custom route computes exact gradients for your objective.
What Tinker is and what it is not
Tinker is a product for builders who want to keep control of training mechanics without hiring a GPU operations team. It is not a black box that abstracts away the science. The cookbook is an on ramp, not a ceiling, and the primitives are designed for modification rather than restriction.
- You get control over data, loss, and schedule. You do not manage the cluster, the nodes, or the communication layer.
- You can switch base models of the same family by updating a name. You still need good data and evals that reflect your business value.
- You can export adapters and use them with your inference stack of choice. That creates real portability instead of soft lock-in to a single serving vendor.
Pricing matters here. Tinker launched free to start, with usage based pricing planned, which lowers the barrier for experiments and lets teams experience value before budgeting. Academic and nonprofit grants arrived later in October to signal that they want classrooms and labs to treat Tinker like a standard instrument.
How it compares to what you already know
Fine-tuning open weight models now spans a few clear lanes. They sit on a spectrum from full automation to full control.
- Hugging Face AutoTrain. Optimized for convenience on supervised tasks. Job level configuration is friendly and end to end, but the loop is abstracted away and RL or preference optimization usually requires extra libraries and custom plumbing. It shines when you want a fast conventional fine-tune and do not need to write your own loss or rollouts.
- Together. A strong choice when you want managed training on large open models with proximity to high end inference. The interface centers on job submission rather than step level control. If you need to swap a custom objective mid run or experiment with nonstandard credit assignment, you will be building more glue code yourself.
- Google Cloud Vertex AI. Enterprise grade platform with pipelines, governance, and integrations across the rest of Google Cloud. It solves general enterprise needs well, but that breadth can be overhead if you want to live at the research edge where the loss function and schedule are the whole point.
Where Tinker fits: it feels closer to a library at the surface yet runs like a platform in the back. You treat training as code that you own. The service turns that code into durable distributed execution. If AutoTrain is a flight you book and Vertex AI is an airline alliance, Tinker is the cockpit with an autopilot that does not blink and a ground crew that keeps you airborne while you tweak the route.
For teams shipping agents, this style matches the trend we covered in Replit Agent 3 autonomous coding. When the loop is code, you can test, gate, and ship changes through the same CI machinery that already guards your application stack.
A practical builder playbook
If you want to run model customization in house, here is a concise playbook that works with Tinker today and generalizes to other stacks.
1) Scope the task and target a base model
- Define a narrow job with objective signals. For example, account reconciliation from bank statements, or structured citation extraction for legal briefs. Avoid fuzzy goals like generic helpfulness unless you plan to invest in large preference datasets.
- Start with a smaller model from the family you expect to ship. Llama 3.2 3B or 8B and Qwen 3 7B or 8B are practical starting points. Switching up late is easy with adapters, but first confirm that the task is information bottlenecked rather than capacity bottlenecked.
2) Build the data, not a mountain of it
- Curate 5k to 50k high signal examples for supervised fine-tuning where ground truth is reliable. Use templated synthetic data to cover long tail cases, but anchor the set in real artifacts to match tone and structure.
- For RLHF or DPO style training, create pairwise preferences on real outputs. Use trained graders as a first pass and spot check with domain experts. Keep instructions short and unambiguous. Write counterexamples that represent the failures you cannot tolerate.
- Track provenance with lightweight metadata: source, time, annotator ID, and policy version. That discipline pays off when you chase regressions.
3) Define evals that matter before you train
- Write two eval suites. Gatekeeping evals that fail the build when violated, and progress evals that correlate with business value.
- Gatekeeping examples include prohibited content leakage, hallucinated citations, and instruction following on templated forms.
- Progress examples include exact match accuracy on domain questions, latency under expected token budgets, and pass rates on tool augmented tasks.
- Automate evals to run on every saved checkpoint. Push scores to your metrics store so you can compare runs apples to apples.
4) Write the loop as code
A supervised loop in Tinker looks like this sketch.
service = tinker.ServiceClient()
train = service.create_lora_training_client(
base_model=\"meta-llama/Llama-3.2-8B\",
rank=32,
)
for batch in dataloader:
fut = await train.forward_backward_async(batch, loss_fn=\"cross_entropy\")
await fut
await train.optim_step_async()
ckpt = train.save_weights_and_get_sampling_client(name=\"acct-recon-v0\")
Preference learning and RL use the same shape with a custom loss.
# Pairwise DPO style loss via forward_backward_custom
loss_fn = make_dpo_loss(beta=0.1)
fut = await train.forward_backward_custom_async(batch_pairs, loss_fn)
await fut
await train.optim_step_async()
The point is not the exact code. The point is that you keep the loss and schedule under your control while the service handles parallelism and recovery.
5) Install safety gates in the loop
- Pre train filtering. Redact obvious sensitive fields in training data and maintain opt out lists for users and clients.
- In loop guardrails. Penalize unsafe completions with a reward shaping term during RL or add a KL term that pulls the policy toward a safe reference.
- Post train filters. Attach a classifier or a structured policy that filters outputs at inference time, especially for user generated prompts.
- Human controls. Require a signoff workflow on high risk model updates and log generations for red team review.
6) Integrate with your MLOps backbone
- Treat every training run as a tracked artifact: dataset hashes, code commit, hyperparameters, and environment.
- Emit metrics to your observability stack. Store checkpoints in versioned buckets and promote to serving only from a gated registry.
- Export LoRA adapters for your preferred serving layer, whether your own cluster or a hosted provider. Tinker emphasizes portability so you are not stuck on a single runtime.
7) Plan for continuous tuning
- Budget weekly or monthly cycles to ingest fresh data and preferences. Domain agents degrade if you do not refresh for distribution shifts.
- Schedule A or B comparisons that test old and new adapters on shadow traffic before full rollout.
Why this changes power dynamics
Until now, many teams either paid for generic inference on giant models or ran weeks long projects to make a custom model work. Tinker turns post-training into a product decision you can make this sprint. That shift shows up in three places.
- Model sovereignty. You can own weights that capture your data and brand voice. By exporting adapters and running them on your stack, you avoid serving lock-in and support multi cloud or on prem needs.
- Speed to market. A small team can iterate on RLHF and DPO style objectives in days rather than quarters because the infrastructure surface is stable and the loop is code you own.
- Smarter GPU spend. Rather than pay mostly for generic inference on overpowered models, you can reallocate budget to short, targeted training bursts that lift the right sized model to your task frontier.
If you are building production agents, these properties compound with the design patterns we documented in Harvey debuts the agent fabric and the execution focus seen in Replit Agent 3 autonomous coding. Training becomes a lever in your product operations rather than a quarterly special project.
Forecast: a rebalancing of the stack
Expect a visible shift in budgets over the next four quarters.
- From generic inference to targeted training. Teams will reserve a larger fraction of GPU hours for bursts of supervised and preference based tuning that lift smaller models to task level parity. Inference remains vital, but training becomes the multiplier that lets you descend the model size curve without losing accuracy.
- From monolithic agents to domain agents. Builders will compose agents that are explicitly tuned for a domain and a tool set, each with a lightweight adapter. The composition layer will route tasks to the right specialist, and each adapter will keep learning.
- From platform lock-in to portable weights. As more services standardize on exportable adapters and checkpoints, the locus of value returns to data curation, evaluation harnesses, and deployment engineering. That is good for buyer leverage and good for safety transparency.
Risks and mitigations
- Overfitting to the eval. If you train to a narrow progress score you can regress on unmeasured behaviors. Mitigation: maintain held out adversarial sets and rotate dynamic challenge suites.
- Safety drift under RL. Aggressive reward shaping can create clever shortcuts. Mitigation: combine reward models that target helpfulness with structural penalties that bound divergence from a safe reference, and keep a post train filter in the serving path.
- Cost surprises. Async training that does not keep the pipe full wastes cycles. Mitigation: prefetch batches, submit the next forward_backward before awaiting the previous result, and monitor utilization.
What this means for startups and enterprises
Startups gain a tool that lets a two person team run serious customization on a practical budget. Differentiate on data and interaction design rather than wrangling nodes and collective communication configs. Prototype a task specific agent end to end, collect preferences from design partners, and ship a tuned 8B or 32B model that beats generic giants on your job to be done. The result is sharper unit economics and a moat that sits in your data and eval harness.
Enterprises gain alignment between training and governance. Because loops are code and weights are exportable, it becomes straightforward to meet audit requirements, attach safety gates, and integrate with existing CI or CD, secret management, and incident response. A central platform team can standardize the loop, approve loss functions, and let business units bring their own datasets. This mirrors the playbooks in other functions, where platform teams provide paved roads and product teams ship on them.
A note on model families and scale
Tinker starts with popular open families like the Llama 3 series and the Qwen series, including large mixture of experts variants such as Qwen3-235B-A22B. That coverage makes sense for two reasons. First, these ecosystems already have robust tokenizers, tooling, and community knowledge. Second, the adapter strategy means you can test on small members of a family and move up without rewriting your loop.
The overall lesson is to let the task shape the scale. Use the smallest model that can hit your governance gates and progress metrics. If you need more capacity, increase rank or move to a larger base. You will spend less and move faster than treating a giant general model as your starting point.
Getting started checklist
- Pick a narrow task with clear signals and write five gatekeeping evals that would block a release.
- Assemble 5k to 50k examples with provenance metadata. Add a small preference dataset if your task benefits from pairwise feedback.
- Draft a training script with explicit loss and schedule. Keep the surface small and the variables named. Plan where to plug in custom losses.
- Decide where weights will live, how they move through staging, and how a release gets promoted. Tie this to your incident response plan.
- Put a weekly training and eval job on the calendar for the next month. The habit is what makes the capability real.
Bottom line
Tinker takes the essential parts of post-training and puts them behind a clean, durable interface. You write the learning signal. You own the model decisions. You can operate at the edge of research without inheriting a capital projects footprint. Competing platforms will respond by opening their loops or leaning harder into one click workflows. Either way, the center of gravity is moving toward builders who treat training as code and ship adapters that express the unique shape of their domain. That is the real breakthrough here. Not another model card, but a reliable way to bend good models toward your problem quickly, safely, and on your terms.








