models / compare / gpt-oss-120b-vs-inkling
gpt-oss-120b vs Inkling
How gpt-oss-120b (OpenAI, August 2025) and Inkling (Thinking Machines Lab, July 2026) are built, drawn on the same November 2026 blueprint. They make different choices on 12 of 27 components. Select a component in either diagram to find it in the table.
--- frontier-llm@2026-11+++ gpt-oss-120b@2025-08+0~4−9
gpt-oss-120b
OpenAI, August 2025, 117B total, 5.1B active
--- frontier-llm@2026-11+++ inkling@2026-07+0~5−3
Inkling
Thinking Machines Lab, July 2026, 975B total, 41B active
Component by component
gpt-oss-120b and Inkling differ on 12 of 27 components.
| Blueprint component | gpt-oss-120b | Inkling |
|---|---|---|
Same as the blueprintEncoder-free. Images and video are cut into 40 × 40-pixel patches, 2 frames deep. A 4-layer hierarchical MLP (three linear + RMSNorm + GELU stages that fold space and time into channels, then a linear projection) maps each patch to one 6,144-dim token. 16 kHz audio becomes dMel frames: 80 mel bins, each quantized to 16 levels, embedded by lookup and summed per frame. | ||
Single residual streamOne d = 2,880 residual stream with pre-norm sublayers; no hyper-connections. | Single pre-norm residual streamOne d = 6,144 residual stream through 66 pre-norm blocks; no hyper-connections, branch outputs pass a short conv. | |
Same as the blueprintPer-head RMSNorm on q and k (head dim 128) in all 66 layers, applied to keys after their short convolution. Because q and k are normalized, the softmax scale is 1/d_h = 1/128 instead of 1/√d_h. | ||
Full RoPE with YaRN scalingRotary embeddings on all 64 head dims, θ = 150,000, stretched 32× with YaRN. | Learned relative-position bias (no RoPE)Each head adds a bias by backward distance: a query-dependent mix of 16 learned profiles, over 512 (local) or 1,024 (global) tokens. | |
Dense grouped-query attentionFull causal attention with 64 query heads sharing 8 KV heads, in every other block. | Global GQA with log-length scaling11 full-attention layers (every 6th, incl. the last): 64 Q / 8 KV heads, d_h = 128; logits scaled up logarithmically past 128K. | |
Same as the blueprintNo output gate. Each head instead has a learned sink logit added to the softmax denominator, so it can assign attention mass to nothing. | Short causal convolutions (SConv)Depthwise causal convs (kernel 4, with skip) on K, V and on both sublayer outputs before they rejoin the residual. | |
Softmax top-k routerA linear router picks the top 4 of 128 experts; softmax over those 4 logits gives the weights. | Sigmoid router with shared-expert sinkScores 256 routed + 2 shared experts; bias-steered top-6; weights normalized jointly over the 8 active experts, then ×8. | |
Same as the blueprintTwo shared SwiGLU experts of intermediate size 3,072 run on every token. Unlike the blueprint's ungated shared expert, each is weighted by its own router score, normalized jointly with the 6 routed scores. They stay in BF16 in the NVFP4 checkpoint. | ||
Same as the blueprint8 MTP layers ship in a separate file (mtp.safetensors). Each concatenates the previous hidden state with the next token's embedding and runs one decoder block with a dense MLP; MTP layers 1 and 3 use global attention, the other six sliding-window. Whether MTP was a pretraining loss is not stated. | ||
Same as the blueprintMuon for large matrix weights and Adam for all other parameters, with weight decay coupled to the square of the learning rate. Hyperparameter schedules draw on Thinking Machines' modular-manifolds research. Newton–Schulz settings are not published. | ||
Same as the blueprintThe 8 MTP layers act as drafters for speculative decoding, verified by the full model so outputs match plain decoding. Thinking Machines has not published acceptance rates. | ||
Same as the blueprintNo KV compression beyond the architecture: the released NVFP4 checkpoint leaves KV unquantized. The 11 global layers cost 44 KiB per token in BF16. The 55 sliding-window layers are capped at 512 tokens (about 220 MiB per sequence in BF16), plus small per-layer short-conv states. |