Inkling: Our Open-Weights Model - Thinking Machines Lab
Inkling: Our Open-Weights Model
Jul 15, 2026
Try on Tinker
Model card
Hugging Face
Our mission is to build AI that extends human will and judgment. We have developed a platform that lets anyone customize models, previewed an AI system built for interactive collaboration, and published novel research. Today we are advancing our mission by releasing a model we trained from scratch with the full weights available, so that people can make it their own.
Our model, called Inkling, reasons natively over text, images, and audio, balances cost against performance with variable and efficient thinking effort, and is trained to exhibit safe behavior across modalities. It is not the most performant model available today, closed or open. We describe Inkling’s scores on a wide range of benchmarks below, along with effort/performance curves. We trained Inkling for solid capabilities across the board rather than state-of-the-art performance in a single area, to serve as a foundation for the models we will train in the future.
Inkling is a mixture-of-experts transformer with 975B total parameters, 41B active parameters. It supports a context window of up to 1M tokens. It was pretrained on 45 trillion tokens of text, images, audio and video. It is the first in a family of models of different sizes. We are sharing a preview of Inkling-Small alongside it, a lighter-weight model with 12B active parameters trained with a similar recipe that achieves strong performance with even lower cost and latency.
We want to make customization accessible for more use cases, so Inkling is available for fine-tuning on Tinker today. Picking the right base model to fine-tune is a qualitative judgment that combines measurable benchmarks with the unique feel of a model that comes from playing with it. To enable the latter we’re adding the Inkling Playground in the Tinker console: a developer-facing interface for chatting with Inkling.
To show what customization means in practice, we asked Inkling to fine-tune itself. Using Tinker, the model wrote its own fine-tuning job, ran it, and evaluated the result:
inkling@tinker: self-finetuning
Build · inkling · tinker-prod
~/news/introducing-inkling/<br>1.33.7
who are you?
I’m Inkling, an AI assistant running thinkingmachines/Inkling. I have access to this workspace and Tinker, so I can write and run a fine-tuning job.
How can I help with the model?
Build · inkling
Build · inkling · tinker-prod
~/news/introducing-inkling/<br>1.33.7
Build · inkling
fine tune yourself with Tinker to be a lipogram model where you never use the letter e in your responses. then switch to the updated you.
I need to handle the full loop: create a training dataset and objective, fine-tune the current model on Tinker, evaluate it against the base model, and switch to the improved weights.
Build · inkling · tinker-prod
~/news/introducing-inkling/<br>1.33.7
+ """Lipogram: no 'e' or 'E' in any output."""<br>+ OBJECTIVE = "A lipogram model that avoids using the letter e in all answers."<br>+ GEN_SYS = (<br>+ "You are a lipogram assistant. You must write all answers without using the letter 'e' or 'E'. "<br>+ "Avoid that symbol totally. Write long, natural, grammatical answers using only words that lack 'e'. "<br>+ )<br>+ THRESHOLD = 10.0<br>+ USE_TEACHER = False<br>+ def score(prompt, answer) -> float:<br>+ if 'e' in answer or 'E' in answer:<br>+ return 0.0<br>+ return 10.0<br>Wrote · self-finetune/objective.py · +70
Build · inkling · tinker-prod
~/news/introducing-inkling/<br>1.33.7
tinker_cookbook.utils.ml_log:618 [INFO] Logging to: /work/clark/monorepo3/self-finetune/runs/objective/train_log<br>tinker.lib.public_interfaces.service_client:78 [INFO] ServiceClient initialized for session 0a59a204-4d9f-5d26-bd5d-db047ea34224<br>tinker.lib.public_interfaces.service_client:162 [INFO] TrainingClient initialized for model 0a59a204-4d9f-5d26-bd5d-db047ea34224:train:0<br>tinker_cookbook.supervised.train:388 [INFO] Training for 32 batches x 3 epochs = 96 steps<br>tinker_cookbook.supervised.train:536 [INFO] Starting epoch 0<br>tinker_cookbook.supervised.common:197 [INFO] Weight reduction: 'mean' (token-mean loss)<br>tinker_cookbook.utils.ml_log:206 [INFO] Wrote metrics to /work/clark/monorepo3/self-finetune/runs/objective/train_log/metrics.jsonl<br>Build · inkling · running
Build · inkling · tinker-prod
~/news/introducing-inkling/<br>1.33.7
PASS. The pipeline finished after ~27 minutes. objective_improved=true;
Checkpoint: tinker://0a59a204-4d9f-5d26-bd5d-db047ea34224:train:0/weights/final
Now switching to the improved version.
Skill “self-update-weights”
$ uv run self-finetune/self_update.py --checkpoint tinker://0a59a204-4d9f-5d26-bd5d-db047ea34224:train:0/weights/final
STAGED self-update → tinker-prod<br>END YOUR TURN; supervisor will relaunch the new checkpoint.<br>Build · checkpoint staged
Build · 0a59a204-4d9f-5 · tinker-prod
~/news/introducing-inkling/<br>1.33.7
Build · 0a59a204-4d9f-5
what should I do when my team...