thinking-machines-lab / tinker-cookbook
- воскресенье, 9 ноября 2025 г. в 00:00:03
Post-training with Tinker
We provide two libraries for the broader community to customize their language models: tinker and tinker-cookbook.
tinker is a training SDK for researchers and developers to fine-tune language models. You send API requests to us and we handle the complexities of distributed training.tinker-cookbook includes realistic examples of fine-tuning language models. It builds on the Tinker API and provides common abstractions to fine-tune language models.TINKER_API_KEY.pip install tinkertinker-cookbook in a virtual env either with conda or uv. For running most examples, you can install via pip install -e ..Refer to the docs to start from basics. Here we introduce a few Tinker primitives - the basic components to fine-tune LLMs:
service_client = tinker.ServiceClient()
training_client = service_client.create_lora_training_client(
base_model="meta-llama/Llama-3.2-1B", rank=32,
)
training_client.forward_backward(...)
training_client.optim_step(...)
training_client.save_state(...)
training_client.load_state(...)
sampling_client = training_client.save_weights_and_get_sampling_client(name="my_model")
sampling_client.sample(...)See tinker_cookbook/recipes/sl_loop.py and tinker_cookbook/recipes/rl_loop.py for minimal examples of using these primitives to fine-tune LLMs.
To download the weights of any model:
rest_client = service_client.create_rest_client()
future = rest_client.download_checkpoint_archive_from_tinker_path(sampling_client.model_path)
with open(f"model-checkpoint.tar.gz", "wb") as f:
f.write(future.result())Besides these primitives, we also offer Tinker Cookbook (a.k.a. this repo), a library of a wide range of abstractions to help you customize training environments.
tinker_cookbook/recipes/sl_basic.py and tinker_cookbook/recipes/rl_basic.py contain minimal examples to configure supervised learning and reinforcement learning.
We also include a wide range of more sophisticated examples in the tinker_cookbook/recipes/ folder:
These examples are located in each subfolder, and their README.md files will walk you through the key implementation details, the commands to run them, and the expected performance.
Tinker cookbook includes several utilities. Here's a quick overview:
renderers converts tokens from/to structured chat message objectshyperparam_utils helps calculate hyperparameters suitable for LoRAsevaluation provides abstractions for evaluating Tinker models and inspect_evaluation shows how to integrate with InspectAI to make evaluating on standard benchmarks easy.This project is built in the spirit of open science and collaborative development. We believe that the best tools emerge through community involvement and shared learning.
We welcome PR contributions after our private beta is over. If you have any feedback, please email us at tinker@thinkingmachines.ai.
If you use Tinker for your research, please cite it as:
Thinking Machines Lab, 2025. Tinker. https://thinkingmachines.ai/tinker/.
Or use this BibTeX citation:
@misc{tml2025tinker,
author = {Thinking Machines Lab},
title = {Tinker},
year = {2025},
url = {https://thinkingmachines.ai/tinker/},
}