Thinking Machines Lab · released 2026-07-15
Inkling
What Inkling’s own documents say it is built from — every method with the sentence that describes it.
Curator’s note975B total / 41B active sparse MoE, Apache 2.0: 66-layer decoder-only transformer routing each token to 6 of 256 experts plus 2 shared experts (DeepSeek-V3-inspired), 1M context, pretrained on 45T tokens of text/image/audio/video, native image and audio input, variable thinking effort (evals reported at effort=0.99), shipped in BF16 and NVFP4. The lab's first from-scratch open-weights model and the first US entry in this list. Verified 2026-07-26: no arXiv technical report exists, so the first-party model card is the closest architecture document; thinkingmachines.ai/inkling/ is a ~800-char landing page and is not listed. Inkling-Small (276B total / 12B active) was previewed in the launch post but has no weights yet — see `watch`.
Against the consensus recipe
Its documents state 3 of the 15 methods the field agrees on.
The recipe from the overview: the methods the most labs adopt, per stage. A missing one is something the documents do not say, not something the model lacks.
Data curation
- Agentic data synthesis pipelinenot in its documents
Training objective
- Multi-Token Predictionnot in its documents
- KL alignment lossnot in its documents
Model architecture
- Mixture of Expertscore
- Hybrid Attentioncore
- Multi-Token Predictionnot in its documents
Optimization
- Muonnot in its documents
- Expert Parallelismnot in its documents
- Cosine decaynot in its documents
Post-training
- Group Relative Policy Optimizationnot in its documents
- Supervised fine-tuningnot in its documents
- Multi-Teacher On-Policy Distillationnot in its documents
Inference & serving
- Configurable reasoning effortused
- Speculative decodingnot in its documents
- FP8 KV-cache quantizationnot in its documents
Checked in its code
Its code shows 8 of the 19 architecture features checked — 6 of them are not stated in its documents.
Documents say what a lab chose to describe; the modeling code says what the checkpoint runs. Each feature below was put to a code verifier, and only the config values and source lines it cited that were found in the files are shown, linked to the line.
Read from vLLM (__init__.py, model.py, configs.py, attention.py, layernorm.py, fa4_rel_attention.py, qkvr_prep.py, sconv_swa_attn.py, sconv.py, short_conv.py, logits_processor.py, mlp.py, moe.py, lamport.py, norm.py, mtp.py) and config.json at revision 828496eeae, by anthropic/claude-sonnet-5 on 2026-09-25.
| Feature | Code | Its documents | Evidence |
|---|---|---|---|
| Grouped-query attention | in its code | used | Both the global-attention layers (64 query heads / 8 KV heads) and the sliding-window layers (64 query heads / 16 KV heads) use grouped-query attention via the qkvr projection sized by num_kv_heads. text_config.num_attention_heads = 64text_config.num_key_value_heads = 8text_config.swa_num_key_value_heads = 16 |
| Multi-head latent attention | not in its code | not stated | There is no low-rank KV latent projection (no kv_lora_rank/q_lora_rank in config, and attention.py projects K/V directly with per-head width, not a shared latent). |
| Sliding-window attention code only | in its code | not stated | Layers marked local (per local_layer_ids) use a sliding window of size sliding_window_size (512) via the FA4 window_size tuple. text_config.sliding_window_size = 512text_config.local_layer_ids = [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 24, 2… |
| Interleaved sliding-window and global attention code only | in its code | not stated | local_layer_ids selects most layers (0,1,2,3,4,6,...) as sliding-window while the remaining layers (5,11,17,23,29,35,41,47,53,59,65) attend globally, an interleaved fixed pattern. text_config.local_layer_ids = [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 24, 2…text_config.num_hidden_layers = 66 |
| Indexer-selected sparse attention (DeepSeek Sparse Attention) | not in its code | not stated | No indexer-based top-k token selection mechanism (no index_topk/index_n_heads config or code) is present; attention is dense within the (possibly windowed) causal region. |
| Linear-attention or state-space layers alongside full attention | not in its code | not stated | All token-mixing layers are softmax attention (global or sliding-window) plus short convolutions on residual streams; there is no linear-attention/SSM mixer layer type. |
| Gated DeltaNet layers | not in its code | not stated | No gated delta-rule recurrent mixer is implemented; the short convolution (sconv) is a plain depthwise causal conv1d with residual add, not a delta-rule/decay-gated state update. |
| Mamba-2 layers | not in its code | not stated | No Mamba-2 SSD selective state-space blocks are implemented; mamba2_cache_params exists only as a stub returning a conv-only cache shape with temporal size (0,0,0), and there is no mamba_num_heads or ssm_state_size in config. |
| Learnable attention sink | not in its code | not stated | No learned per-head sink logit is added to the attention softmax denominator anywhere in the attention kernel; the only 'sink' concept here is the MoE shared-expert sink, unrelated to attention. |
| Gated attention output | not in its code | not stated | The attention output goes directly from the FA4 kernel to the output projection wo_ud with no sigmoid gating multiplication applied to it. |
| QK normalization | code unclear | not stated | Queries and keys are each RMS-normalized per head (q_norm, k_norm) before the attention dot product. |
| Partial RoPE | not in its code | not stated | No RoPE is applied at all in this attention implementation (position signal comes from a relative-bias projection r_out/rel_logits, not rotary embeddings), so there is no partial-RoPE mechanism. |
| YaRN RoPE scaling | not in its code | not stated | No rope_scaling config key or YaRN-related code exists anywhere in this model; positional signal uses a learned relative-bias projection instead of RoPE. |
| Layers without positional encoding (NoPE) | code unclear | not stated | The model has no RoPE at all (uses relative bias instead), so the NoPE-layers concept (some attention layers with RoPE, others without) does not clearly apply and cannot be resolved from the given code. |
| Mixture of experts | in its code | core | Feed-forward layers past dense_mlp_idx route each token to a top-k subset of 256 routed experts chosen by a sigmoid gate. text_config.n_routed_experts = 256text_config.num_experts_per_tok = 6 |
| Shared expert code only | in its code | not stated | MoE layers include 2 shared 'sink' experts that every token passes through, implemented in InklingSinkExperts and added to the routed output. text_config.n_shared_experts = 2text_config.shared_expert_sink = true |
| Auxiliary-loss-free load balancing (selection bias) code only | in its code | not stated | The router adds a per-expert selection bias (use_gate_bias / self.bias) to the sigmoid scores used only for top-k selection, not for output weighting, matching aux-loss-free bias-based balancing. text_config.use_gate_bias = true |
| Multi-token prediction layers code only | in its code | not stated | The config declares 8 MTP next-token prediction depth layers, and a dedicated InklingMTP module builds and loads them as separate transformer blocks. mtp_config.num_nextn_predict_layers = 8 |
| SwiGLU feed-forward code only | in its code | not stated | Both dense and shared-expert MLPs compute SiLU(gate(x)) * up(x) via silu_and_mul_triton / F.silu-based gating, consistent with hidden_act=silu. |
model architecture 20
token mixer 4
softmax attention 2
sliding window attention 1
grouped-query attention 1
hybrid layer stacking 1
channel mixer 6
mixture of experts 6
positional encoding 2
normalization & residual 1
optimization 4
optimizer 1
training precision 1
training stability 1
training parallelism 1
data curation 4
filed at the root 2
post-training 10
filed at the root 1
supervised fine-tuning 3
reinforcement learning algorithm 3
reward modelling 1
policy distillation 1
rollout & RL infrastructure 1
inference & serving 9
decoding strategy 1
reasoning control 2
KV cache management 1
inference quantization 1
serving parallelism 1
inference kernel 1
agentic scaffolding 2
software implementation 1
infrastructure service 1
evaluation 7
filed at the root 2
evaluation harness 2
human & real-world evaluation 3
unfiled 18
Further reading
Picked by hand, not extracted: where to read more, not evidence for anything on this page.
- Inkling architecture card — LLM Architecture Gallery explainer sebastianraschka.com
Sources
The curated document list for this model. "not fetched" means the URL is recorded but its text was not read in the current run.
| Document | Kind | Publisher | Status |
|---|---|---|---|
| thinkingmachines.ai/news/introducing-inkling | official blog | Thinking Machines Lab | read |
| thinkingmachines.ai/model-card/inkling | model card | Thinking Machines Lab | read |
| huggingface.co/thinkingmachines/Inkling | model card | Thinking Machines Lab | read |
| huggingface.co/thinkingmachines/Inkling-NVFP4 | model card | Thinking Machines Lab | read |
| github.com/thinking-machines-lab/tinker-cookbook | code repo | Thinking Machines Lab | read |
| recipes.vllm.ai/thinkingmachines/Inkling | vendor docs | vLLM | read |
| openrouter.ai/thinkingmachines/inkling | vendor docs | OpenRouter | read |
| sebastianraschka.com/blog/2026/inkling-architecture-benchmark-notes.html | third party analysis | Sebastian Raschka | read |
| artificialanalysis.ai/articles/thinking-machines-has-released-inkling-t… | third party analysis | Artificial Analysis | read |
| simonwillison.net/2026/Jul/16/inkling | third party analysis | Simon Willison | read |
| techcrunch.com/2026/07/15/thinking-machines-amps-up-its-bet-against-one… | news | TechCrunch | read |