# Inkling: an open-weights multimodal MoE built to be adapted

> Satyajit Ghana — Head of Engineering @ Inkers Technology
> canonical: https://ai.satyajit.si/articles/inkling
> date: 2026-07-15
> tags: mixture-of-experts, multimodal, reinforcement-learning, attention

Most model launches lead with a leaderboard. Thinking Machines Lab's **Inkling** does the opposite: the
announcement states plainly that it is **"not the strongest overall model,"** and is instead **"designed
for broad adaptation through fine-tuning."** That framing is the right lens for everything below. Inkling
is an **open-weights**, multimodal **[mixture-of-experts](/articles/mixture-of-experts-from-scratch)**
foundation model — **975B total parameters, 41B active** — with text, image and audio in one stack and up
to a **1M-token** context. A smaller companion, **Inkling-Small (276B total / 12B active)**, ships in
preview. The pitch is a customizable *base*, not a frontier trophy.

What makes it worth a close read is the mechanics: an attention design tuned for long context, an
encoder-free multimodal path, a reinforcement-learning run whose reward scaled *log-linearly* while the
model's reasoning got *shorter* on its own, and a knob that lets you dial how many tokens the model spends
per query. Let's take them in turn — and keep the honest caveats in view throughout.

## The backbone: sparse experts, hybrid attention

Inkling is a **66-layer** decoder-only transformer. Two forms of sparsity run through it. In the
feed-forward path, every layer is a mixture-of-experts: **256 routed experts plus 2 shared experts**, with
**6 routed experts active per token**. A **sigmoid-based router** with an **auxiliary-loss-free
load-balancing** bias decides which six fire — the same "drop the aux loss, use a bias term" trick that
has become standard for keeping expert utilization even without a loss that fights the main objective. The
2 shared experts are always on, giving every token a common backbone of computation. Net effect: only
**41B of the 975B** parameters do work on any given token.

The attention path is a **hybrid**: of the 66 layers, **55 are sliding-window (512-token) local and 11 are
global** — an interleaved **5:1 ratio** — with **64 query heads** tied to **8 KV heads**, over a **6144-dim**
residual stream. Five cheap local layers pass for every one exact global layer — the same local/global
bargain that makes long-context serving affordable in
[MiniMax's sparse attention](/articles/minimax-sparse-attention) and
[MiMo-V2-Flash](/articles/mimo-v2-flash).

Then a cluster of small but telling choices — the kind you only catch by reading the config, not the
launch post:

- **Relative position bias**, not [RoPE](/articles/how-llm-inference-works) (`d_rel=16`, `rel_extent=1024`)
  — a learned bias on relative distance, chosen for cleaner extrapolation past the trained length.
- **Short depthwise convolutions** (kernel size 4) in *several* places — after the key and value
  projections and on the residual branches — a cheap way to blend a little local context into each token
  before attention even runs. Convs-inside-a-transformer is a recurring "free lunch" for stability.
- An easy-to-miss one: a **separate RMSNorm on the token embeddings**, applied *before* the usual
  per-block RMSNorms (`use_embed_norm=true`). The residual stream is normalized at *entry*, not only inside
  each layer — extra insurance on embedding scale that most decoder-only stacks skip.

None of these are headline features; together they read as the fingerprint of a team tuning the backbone
for stable long-context training rather than chasing a benchmark. Scrub the stack to see both sparsities at
once — which layers are global, and which experts a token lights up:

<ArchitectureStack />

## Encoder-free multimodal

The multimodal design is deliberately minimal: **no separate vision or audio encoder**. Instead every
modality is turned into tokens the transformer reads directly. **Audio** becomes **discrete dMel
spectrogram** tokens; **images** are cut into **40×40-pixel patches** and lifted by a small **four-layer
hMLP** patch encoder; all modalities land in the **shared hidden space** and flow through the same experts
and attention. There's no bolted-on CLIP-style tower whose representation you have to align — the model
learns text, image and audio in one backbone. That is part of why it's pitched as an adaptation base:
fine-tuning touches one stack, not a federation of encoders.

## Controllable effort — the signature move

Inkling can vary how much it "thinks." The **system message plus a per-token cost** let you trade accuracy
for token spend: turn effort down and it answers tersely; turn it up and it reasons at length, approaching
its ceiling. The headline result is on **Terminal-Bench-2.1**, where the lab reports Inkling reaching
**Nemotron-3-Ultra-equivalent** accuracy at **roughly one-third the generated tokens**. Drag the effort
knob and read the tie line — the same score sits about **3× further right** on the reference curve:

<EffortCurve />

The efficiency framing matters more than any single point on the curve. A model that lets the *caller*
choose the accuracy/latency trade-off, per request, is a different product from one with a fixed thinking
budget — especially for the fine-tuning-and-deploy audience Inkling targets, who care about tokens-per-task
cost at scale. (The curve shape above is illustrative; the ~63.8% Terminal-Bench-2.1 plateau and the
~1/3-token match are the real, vendor-reported anchors.)

Here is the sweep as Thinking Machines plot it, which is the measurement the interactive above is drawn
from:

<Figure
  src="https://media.thesatyajit.com/ai/articles/inkling/fig1.png?v=34d1cc4ce3f89f35"
  alt="Three scatter panels — Terminal Bench 2.1, Humanity's Last Exam and IFBench — each plotting score against mean generated tokens on a linear axis. In every panel a blue line traces Inkling's effort sweep, rising steeply at low token counts and then flattening; GLM-5.2, Kimi K2.6, Nemotron 3 Ultra, Kimi K2.5 and GPT-OSS (high) are shown as single coloured dots at their default operating points. On Terminal Bench 2.1 Inkling's curve reaches Nemotron 3 Ultra's height at roughly a third of Nemotron's token count, while GLM-5.2 and Kimi K2.6 score higher than Inkling's plateau and do it at more tokens."
  caption="The effort sweep, 0.2 to 0.99, against mean generated tokens. The left panel is where the one-third-of-the-tokens claim comes from — Inkling's curve crosses Nemotron 3 Ultra's operating point well to its left. The post footnotes that the HLE panel reflects an earlier checkpoint running slightly below the final release. (Thinking Machines Lab, Inkling announcement post — the lab draws this chart in the page rather than publishing an image, so this is a capture of its own rendering.)"
/>

## The RL story: log-linear reward, self-shortening reasoning

Post-training leaned on **large-scale asynchronous [reinforcement learning](/articles/ring-zero-trillion-scale-rl)** —
**over 30 million rollouts**. Two findings stand out. First, the **aggregate held-out eval reward rose
log-linearly** across those rollouts, climbing from **0.264** at the SFT-initialised checkpoint to
**0.356** at release — a straight line on a log-rollouts axis, i.e. more RL compute kept paying off
predictably rather than saturating. Second, and more surprising: with **no brevity objective** in the
reward, the model's **chain-of-thought became more concise on its own**, "dropping grammatical overhead
while remaining comprehensible." Reasoning compression emerged as a side effect of optimizing for correct
answers. Drag the marker to watch reward climb as thought-length falls:

<RlScaling />

<Figure
  src="https://media.thesatyajit.com/ai/articles/inkling/fig2.png?v=5d07d625b9690765"
  alt="A line chart of aggregate eval reward against RL rollouts on a logarithmic x-axis running from zero to more than thirty million. A grey open circle marks the SFT initialization at 0.264, a series of blue dots marks intermediate RL checkpoints, and a green dot marks the released checkpoint at 0.356 at roughly 26 million rollouts. All points sit close to a single straight line."
  caption="The log-linear claim as the lab plots it: reward on a held-out aggregate of reasoning evals — AIME, HLE, GPQA and others — climbing from 0.264 at SFT initialization to 0.356 at release, with the checkpoints hugging a straight-line fit. The checkpoint around 6M rollouts is the one that sits clearly under the fit. (Thinking Machines Lab, Inkling announcement post.)"
/>

This connects back to controllable effort: a model whose reasoning is naturally terser is cheaper to run at
any accuracy target, and the effort knob then lets you push that further.

## Training and release

Pretraining ran on **45 trillion tokens** of mixed text, image, audio and video, optimized with **[Muon](/articles/muon-optimizer)
for the large matrix weights and Adam for everything else** (weight decay coupled to the squared learning
rate), on **NVIDIA GB300 NVL72** systems. Alongside the standard weights, Thinking Machines released
**[NVFP4](/articles/nemotron-nvfp4)** weights for Blackwell — the same 4-bit format NVIDIA used to train
Nemotron. The release is genuinely open: **weights on Hugging Face** (both standard and NVFP4), an **API on
Tinker plus Together, Fireworks, Modal, Databricks and Baseten**, day-one **vLLM / SGLang / llama.cpp**
integration, and a public **Playground**.

## Results — read them as vendor-reported

<Figure
  src="https://media.thesatyajit.com/ai/articles/inkling/fig3.png?v=3af39f7959a80b3e"
  alt="A ten-axis radar chart comparing Inkling against Nemotron 3 Ultra, GLM 5.2, GPT 5.6 Sol and Claude Fable 5 on a shared 0 to 100 scale. The axes are labelled with their category: HLE (no tools) and AIME 2026 for reasoning, SWE-bench Pro (Public) and Terminal Bench 2.1 for agentic coding, MCP Atlas for general agentic, SimpleQA Verified and AA Omniscience for factuality, AudioMC for audio, MMMU Pro for vision, and IFBench for chat. Inkling's solid blue polygon is the only one that extends along the AudioMC axis; on the two factuality axes and on SWE-bench Pro it sits inside Claude Fable 5 and GPT 5.6 Sol."
  caption="The lab's own summary chart, and a clear look at the comparison set the caveat below is about: five provider-selected models on ten provider-selected axes, all flattened onto one 0–100 scale. Inkling's unambiguous lead is the audio axis, where all four comparison models sit at the centre of the chart. (Thinking Machines Lab, Inkling announcement post.)"
/>

Here are the headline numbers from Thinking Machines' own suite (at high effort). Reasoning first:

<BenchBars
  title="Inkling — reasoning (vendor-reported, %)"
  unit="%"
  bars={[
    { label: "AIME 2026", value: 97.1, highlight: true },
    { label: "GPQA-Diamond", value: 87.2, highlight: true },
    { label: "HLE (with tools)", value: 46.0 },
    { label: "HLE (text only)", value: 29.7 },
  ]}
/>

And the agentic / coding side, where the effort story is most relevant:

<BenchBars
  title="Inkling — agentic & coding (vendor-reported, %)"
  unit="%"
  bars={[
    { label: "SWEBench-Verified", value: 77.6, highlight: true },
    { label: "BrowseComp", value: 77.1 },
    { label: "MCP-Atlas", value: 74.1 },
    { label: "Terminal-Bench-2.1", value: 63.8, highlight: true },
  ]}
/>

Multimodal and safety round it out: **VoiceBench 91.4%**, **MMAU 77.2%**, **MMMU-Pro 73.5%**,
**Global-MMLU-Lite 88.7%**; on safety, **FORTRESS Benign 95.9% / Adversarial 78.0%** and **StrongREJECT
98.6%**. Inkling-Small tracks the big model closely on several evals (HLE text-only **31.6%**, HLE with
tools **47.8%**).

<Callout type="warn">
  **Scope the numbers.** Every score here is **vendor-reported on Thinking Machines' own evaluation
  suite**, and the comparison set (GPT-5.6 Sol, Claude Fable 5, GLM 5.2, Nemotron-3-Ultra, and others) is
  **provider-selected** — so treat this as a self-report, not a neutral head-to-head. The "~1/3 the
  tokens," the log-linear RL scaling (0.264 → 0.356), and the emergent reasoning-compression claim are all
  **their measurements on their evals**: real and interesting, but not independently verified. And this is
  a **company blog and model card, not a peer-reviewed paper** — there is no external methodology to audit.
  The genuine mitigant is that it's an **open-weights** release, so the architecture and the claims become
  independently checkable over time in a way a closed model's never are.
</Callout>

## The take

Inkling's most refreshing feature is its honesty about what it is. Thinking Machines did not build the
model to top a leaderboard; they built a broad, open, multimodal base and tuned the *ergonomics of
adapting and running it* — controllable effort so callers own the accuracy/cost trade-off, a 5:1
local/global attention hybrid and relative positions so 1M-token context stays affordable, an encoder-free
multimodal path so fine-tuning touches one stack, and NVFP4 weights so it deploys cheaply on Blackwell. The
two research results worth remembering are the **log-linear RL reward** (evidence that the post-training
recipe kept scaling) and the **emergent reasoning compression** (shorter chains-of-thought with no brevity
reward) — both their own measurements, both the kind of thing open weights will let others probe. Judge it
not as "is this the best model" — the lab already answered no — but as a base you can take, fine-tune, and
serve. On that axis, an open 975B/41B MoE with these ergonomics is a substantial thing to hand the
community.

---

*Built on Thinking Machines Lab's [Inkling announcement](https://thinkingmachines.ai/news/introducing-inkling/)
and [model card](https://thinkingmachines.ai/model-card/inkling/), plus the
[Hugging Face release](https://huggingface.co/thinkingmachines/inkling). All benchmark and scaling figures
are vendor-reported; the interactive diagrams are illustrations of the mechanism, with real endpoints
noted inline. The three static figures are the announcement post's own charts, reproduced as published —
the Hugging Face repository ships no figures of its own, and the model card page carries none either.
Related reading:
[mixture-of-experts from scratch](/articles/mixture-of-experts-from-scratch),
[NVFP4 training](/articles/nemotron-nvfp4),
[MiniMax sparse attention](/articles/minimax-sparse-attention),
[MiMo-V2-Flash](/articles/mimo-v2-flash),
[trillion-scale RL](/articles/ring-zero-trillion-scale-rl),
[the Muon optimizer](/articles/muon-optimizer), and
[how LLM inference works](/articles/how-llm-inference-works).*
