Thinking Machines Lab has released Inkling-Small, an open weights Mixture-of-Experts model with 276B total parameters and 12B active. That is about a quarter the size of Inkling, which carries 975B total and 41B active parameters. The model was trained on NVIDIA GB300 NVL72 systems. It reasons natively over text, images and audio. The context window reaches 1M tokens, and thinking effort is adjustable. Weights ship under Apache 2.0 on Hugging Face.
Is it deployable
Yes, and the quantized checkpoint is why. Per the model card, the BF16 checkpoint needs at least 600 GB of aggregated VRAM. That is met by 4x NVIDIA B300 or 8x NVIDIA H200. The NVFP4 checkpoint drops that floor to 180 GB. It runs W4A4 on a single B300, which requires SM100+, or W4A16 on two H200s. Supported runtimes are SGLang, vLLM, TokenSpeed, Unsloth and Hugging Face.
That single-GPU path moves a 276B model out of frontier-lab territory. Startups can self-host on one rented B300 instance. Mid-size enterprises with existing H200 capacity can serve it without new hardware. Regulated sectors gain a private-weights option: financial services, healthcare operations, insurance, telecom and public sector. Applicable workloads include coding agents, terminal automation, and document and chart understanding. Audio widens that to call-center analytics, voice interfaces and meeting summarization.
Architecture
Inkling-Small is a 42-layer decoder-only transformer with a sparse MoE feed-forward backbone. Each token routes to 6 of 256 experts, plus 2 shared experts active on every token. Attention is a hybrid of local and global layers. The model is encoder-free and natively multimodal. Images are divided into 40×40-pixel patches and transformed using a four-layer hMLP. Audio is represented as dMel spectrograms. Both pass through a lightweight embedding layer and are processed jointly with text tokens. Numerics support covers BF16, MXFP8 and NVFP4. Audio input is WAV at 16 kHz, ideally under two minutes. Output is text only.
Inkling-Small began training after its larger counterpart. That let the research team revise the pre-training data mix and the machine learning recipe. The research team post-trained an earlier checkpoint, Inkling-Small (preview), in part using on-policy distillation with Inkling as the teacher. From that checkpoint, it continued scaling agentic coding RL for two weeks.
Benchmark results
The smaller model surpasses its teacher on reasoning and agentic coding. On Humanity’s Last Exam (text only) Inkling-Small scores 31.6%, ahead of Inkling’s 29.7%. SWE-bench Verified is 80.2% versus 77.6%, using a bash-only harness. Terminal-Bench 2.1 reaches 64.7% at best harness. Toolathlon Verified is 54.4%, against Inkling’s 45.5%. GPQA Diamond is 89.5%, AIME 2026 is 95.5%, and IFBench is 82.2%. ARC-AGI-2 rises to 40.1% from Inkling’s 36.5%.
SimpleQA Verified falls to 20.6% from Inkling’s 43.9%, and the AA Omniscience index drops to -9.0 from 2.1. Tau 3 Banking is 15.5% versus Inkling’s 23.7%. All evaluations ran at effort 0.99 and temperature 1.0, with a 256K max-token trajectory limit on coding evals. External scores are sourced from Artificial Analysis, Scale AI and ARC Prize.
Multimodality, epistemics and safety
Multimodal scores stay close to Inkling at lower cost. MMMU Pro is 74.0%. CharXiv RQ is 77.4%, rising to 81.3% when the model uses Python to crop, zoom and inspect charts programmatically. Audio MC is 54.9%, MMAU is 77.0%, and VoiceBench is 90.1%.
On epistemics, calibration was trained with RL against proper scoring rules on a large corpus of real-world forecasting questions. ForecastBench without search gives a Brier Index of 61.3 ± 0.46, ahead of Inkling’s 60.1 ± 0.54. On safety, StrongREJECT is 98.4%, FORTRESS adversarial is 71.6%, and FORTRESS benign is 96.9%. Thinking Machines Lab concluded the model presents no material uplift beyond the existing open-weight ecosystem. It recommends layering downstream moderation such as Llama Guard on consumer-facing deployments.
Both models are available on Tinker with a limited-time discount. Text, image and audio chat run on Tinker Playground.
Interactive explainer
The embed below breaks the release into four interactive parts. Tab one animates how sparse routing activates 8 of 258 experts per layer. Tab two ranks Inkling-Small against comparable open weights models on ten benchmarks. Tab three traces how the three input modalities converge into one decoder. Tab four sizes the hardware each checkpoint format requires.
<section class="panel" id="p2" role="tabpanel">
<h2>Where Inkling-Small wins, and where it does not</h2>
<p class="sub">Pick a benchmark. Scores are pass@1 percentages at effort 0.99, temperature 1.0, as published by Thinking Machines Lab.</p>
<div class="chips" id="bchips"></div>
<div class="bars" id="bars"></div>
<p class="cap" id="bnote"></p>
</section>
<section class="panel" id="p3" role="tabpanel">
<h2>Text, images and audio enter the same decoder</h2>
<p class="sub">Inkling-Small is encoder-free. Each modality is projected into one shared hidden space, then processed jointly. Output is text only.</p>
<div class="modes">
<button class="chip" aria-pressed="true" data-m="text">Text in</button>
<button class="chip" aria-pressed="false" data-m="image">Image in</button>
<button class="chip" aria-pressed="false" data-m="audio">Audio in</button>
</div>
<div class="flow" id="flow"></div>
<div class="evals" id="mevals"></div>
<p class="cap" id="mnote"></p>
</section>
<section class="panel" id="p4" role="tabpanel">
<h2>What it takes to run the weights yourself</h2>
<p class="sub">Thinking Machines Lab ships two checkpoint formats. Pick one to see the aggregated VRAM floor and the GPU configurations that meet it.</p>
<div class="opts">
<button class="chip" aria-pressed="true" data-d="bf16">BF16 checkpoint</button>
<button class="chip" aria-pressed="false" data-d="w4a4">NVFP4 · W4A4</button>
<button class="chip" aria-pressed="false" data-d="w4a16">NVFP4 · W4A16</button>
</div>
<div class="vram"><span class="v" id="dv">600 GB</span><span class="k">minimum aggregated VRAM</span></div>
<div class="scale" id="dscale"><i id="dfill"></i></div>
<div class="ticks"><span>0</span><span>150 GB</span><span>300 GB</span><span>450 GB</span><span>600 GB</span></div>
<div class="gpus" id="dgpus"></div>
<p class="cap" id="dnote"></p>
<p class="cap">Supported runtimes: SGLang, vLLM, TokenSpeed, Unsloth, or Hugging Face. Numerics: BF16, MXFP8, NVFP4. License: Apache 2.0.</p>
</section>
<footer>
<span>Sources: <a href="https://thinkingmachines.ai/news/inkling-small/" target="_blank" rel="noopener">Release post</a> · <a href="https://thinkingmachines.ai/model-card/inkling-small/" target="_blank" rel="noopener">Model card</a></span>
<span class="brand">Marktechpost</span>
</footer>
</div>
<script>
(function(){
var $=function(s){return document.querySelector(s)};
var $$=function(s){return Array.prototype.slice.call(document.querySelectorAll(s))};
/* tabs */
$$(‘.tab’).forEach(function(t){
t.addEventListener(‘click’,function(){
$$(‘.tab’).forEach(function(x){x.setAttribute(‘aria-selected’,’false’)});
t.setAttribute(‘aria-selected’,’true’);
$$(‘.panel’).forEach(function(p){p.classList.remove(‘on’)});
$(‘#’+t.dataset.p).classList.add(‘on’);
resize();
});
});
/* ———- 1. routing ———- */
var grid=$(‘#egrid’), srow=$(‘#srow’), i;
for(i=0;i<256;i++){var d=document.createElement(‘span’);d.className=’e’;grid.appendChild(d)}
for(i=0;i<2;i++){var s=document.createElement(‘span’);s.className=’e’;srow.appendChild(s)}
var sl=document.createElement(‘span’);sl.className=’shared-lbl’;sl.textContent=’2 shared experts, always on’;srow.appendChild(sl);
var cells=$$(‘#egrid .e’), shared=$$(‘#srow .e’), timer=null, layer=0;
function clearAll(){cells.forEach(function(c){c.classList.remove(‘hot’)});shared.forEach(function(c){c.classList.remove(‘hot’)})}
function step(){
layer++;
if(layer>42){stop();return}
clearAll();
var picked={},n=0;
while(n<6){var r=Math.floor(Math.random()*256);if(!picked[r]){picked[r]=1;cells[r].classList.add(‘hot’);n++}}
shared.forEach(function(c){c.classList.add(‘hot’)});
$(‘#layerN’).innerHTML=layer+’ <small>/ 42</small>’;
}
function stop(){clearInterval(timer);timer=null;$(‘#go’).disabled=false;$(‘#go’).textContent=’Route a token’}
$(‘#go’).addEventListener(‘click’,function(){
if(timer)return;
layer=0;$(‘#actBar’).style.width=’4.3%’;$(‘#go’).disabled=true;$(‘#go’).textContent=’Routing…’;
step();timer=setInterval(step,140);
});
$(‘#reset’).addEventListener(‘click’,function(){
stop();layer=0;clearAll();$(‘#layerN’).innerHTML=’1 <small>/ 42</small>’;$(‘#actBar’).style.width=’0%’;
});
setTimeout(function(){$(‘#actBar’).style.width=’4.3%’},400);
/* ———- 2. benchmarks ———- */
var models=[
{n:’Inkling-Small’,c:’me’},
{n:’Inkling’,c:’teacher’},
{n:’DeepSeek V4 Flash’,c:”},
{n:’Qwen3.5-397B-A17B’,c:”},
{n:’MiMo V2.5′,c:”},
{n:’Minimax M2.7′,c:”},
{n:’Nemotron 3 Ultra’,c:”}
];
var B=[
{k:’SWE-bench Verified’,v:[80.2,77.6,79.0,76.4,71.0,79.9,70.7],note:’Inkling-Small and Inkling use a bash-only harness; external scores are self-reported.’},
{k:’Terminal-Bench 2.1′,v:[64.7,63.8,61.8,51.3,63.7,55.4,56.4],note:’Best harness. Contaminated solutions found via web search were scored 0.’},
{k:’HLE (text only)’,v:[31.6,29.7,32.1,27.3,25.2,28.1,26.6],note:’Inkling-Small edges past its larger sibling Inkling at 29.7%.’},
{k:’GPQA Diamond’,v:[89.5,87.2,89.4,89.3,84.9,87.4,86.7],note:’Graduate-level science questions; the top open-weights cluster is tight here.’},
{k:’AIME 2026′,v:[95.5,97.1,95.8,93.3,93.6,87.7,94.2],note:’Competition math. Inkling and DeepSeek V4 Flash stay ahead.’},
{k:’IFBench’,v:[82.2,79.8,79.2,78.8,67.1,75.7,81.4],note:’Instruction following, where Inkling-Small leads this comparison set.’},
{k:’Toolathlon Verified’,v:[54.4,45.5,50.9,40.7,49.1,47.5,34.3],note:’Tool use. A near 9-point gain over Inkling on the same task suite.’},
{k:’CritPt’,v:[8.3,5.4,7.1,1.7,3.7,0.6,3.1],note:’Research-level physics. Absolute scores stay low for every open-weights model.’},
{k:’SimpleQA Verified’,v:[20.6,43.9,34.1,26.0,16.1,13.5,32.4],note:’Factual recall is the clear regression: Inkling scores more than twice as high.’},
{k:’Tau 3 Banking’,v:[15.5,23.7,22.9,13.4,6.6,8.9,13.8],note:’Domain agentic task where Inkling-Small trails Inkling and DeepSeek V4 Flash.’}
];
var bc=$(‘#bchips’), bars=$(‘#bars’);
B.forEach(function(b,idx){
var c=document.createElement(‘button’);
c.className=’chip’;c.type=’button’;c.textContent=b.k;
c.setAttribute(‘aria-pressed’,idx===0?’true’:’false’);
c.addEventListener(‘click’,function(){
$$(‘#bchips .chip’).forEach(function(x){x.setAttribute(‘aria-pressed’,’false’)});
c.setAttribute(‘aria-pressed’,’true’);draw(idx);
});
bc.appendChild(c);
});
function draw(idx){
var b=B[idx];
var rows=models.map(function(m,i){return{n:m.n,c:m.c,v:b.v[i]}}).sort(function(x,y){return y.v-x.v});
bars.innerHTML=”;
rows.forEach(function(r){
var el=document.createElement(‘div’);
el.className=’row ‘+r.c;
el.innerHTML='<div class="name">’+r.n+'</div><div class="track"><i class="fill"></i></div><div class="num">’+r.v.toFixed(1)+’%</div>’;
bars.appendChild(el);
});
var max=rows[0].v;
requestAnimationFrame(function(){
$$(‘#bars .fill’).forEach(function(f,i){f.style.width=(rows[i].v/max*100)+’%’});
});
$(‘#bnote’).innerHTML='<b>Note:</b> ‘+b.note;
resize();
}
draw(0);
/* ———- 3. modalities ———- */
var M={
text:{
steps:[‘UTF-8 text’,’Token embedding’,’Shared hidden space’,’42-layer MoE decoder’,’Text out’],
blue:false,
ev:[‘HLE text only <b>31.6%</b>’,’GPQA Diamond <b>89.5%</b>’,’IFBench <b>82.2%</b>’],
note:’Context window reaches 1M tokens; thinking effort is adjustable from minimal to xhigh.’
},
image:{
steps:[‘Image 40–4096 px’,’40×40 px patches’,’4-layer hMLP’,’Shared hidden space’,’42-layer MoE decoder’,’Text out’],
blue:false,
ev:[‘MMMU Pro <b>74.0%</b>’,’CharXiv RQ <b>77.4%</b>’,’CharXiv with Python <b>81.3%</b>’],
note:’The model can crop, zoom and inspect images programmatically with Python, which lifts CharXiv RQ from 77.4% to 81.3%.’
},
audio:{
steps:[‘WAV @ 16 kHz’,’dMel spectrogram’,’Embedding layer’,’Shared hidden space’,’42-layer MoE decoder’,’Text out’],
blue:true,
ev:[‘Audio MC <b>54.9%</b>’,’MMAU <b>77.0%</b>’,’VoiceBench <b>90.1%</b>’],
note:’Audio clips work best under about 2 minutes. Audio MC of 54.9% is well ahead of the omni models compared in the release post.’
}
};
function paint(k){
var m=M[k], f=$(‘#flow’); f.innerHTML=”;
m.steps.forEach(function(s,i){
if(i){var a=document.createElement(‘span’);a.className=’arrow’;a.textContent=’u2192′;f.appendChild(a)}
var n=document.createElement(‘div’);
n.className=’node’+(m.blue?’ blue’:”);
n.innerHTML='<div class="t">Step ‘+(i+1)+'</div>’+s;
f.appendChild(n);
});
var nodes=$$(‘#flow .node’), arrows=$$(‘#flow .arrow’);
nodes.forEach(function(n,i){setTimeout(function(){
n.classList.add(‘lit’); if(arrows[i-1])arrows[i-1].classList.add(‘lit’);
},120*i)});
$(‘#mevals’).innerHTML=m.ev.map(function(e){return ‘<span class="ev">’+e+'</span>’}).join(”);
$(‘#mnote’).innerHTML='<b>Note:</b> ‘+m.note;
resize();
}
$$(‘[data-m]’).forEach(function(b){
b.addEventListener(‘click’,function(){
$$(‘[data-m]’).forEach(function(x){x.setAttribute(‘aria-pressed’,’false’)});
b.setAttribute(‘aria-pressed’,’true’);paint(b.dataset.m);
});
});
paint(‘text’);
/* ———- 4. deployment ———- */
var D={
bf16:{gb:600,label:’600 GB’,q:false,
gpus:[‘<b>4×</b> NVIDIA B300′,'<b>8×</b> NVIDIA H200′],
note:’The full-precision checkpoint. Cluster-scale hardware, and the reference point for quality.’},
w4a4:{gb:180,label:’180 GB’,q:true,
gpus:[‘<b>1×</b> NVIDIA B300′],
note:’W4A4 additionally requires SM100+ architecture. This is the single-GPU path for a 276B model.’},
w4a16:{gb:180,label:’180 GB’,q:true,
gpus:[‘<b>2×</b> NVIDIA H200′],
note:’W4A16 keeps activations at higher precision and runs on two H200s.’}
};
function setD(k){
var d=D[k];
$(‘#dv’).textContent=d.label;
$(‘#dscale’).className=’scale’+(d.q?’ q’:”);
$(‘#dfill’).style.width=(d.gb/600*100)+’%’;
$(‘#dgpus’).innerHTML=d.gpus.map(function(g){return ‘<span class="gpu">’+g+'</span>’}).join(”);
$(‘#dnote’).innerHTML='<b>Note:</b> ‘+d.note;
resize();
}
$$(‘[data-d]’).forEach(function(b){
b.addEventListener(‘click’,function(){
$$(‘[data-d]’).forEach(function(x){x.setAttribute(‘aria-pressed’,’false’)});
b.setAttribute(‘aria-pressed’,’true’);setD(b.dataset.d);
});
});
setD(‘bf16’);
/* ———- auto-resize ———- */
function resize(){
try{
var h=document.getElementById(‘tml-wrap’).offsetHeight+40;
parent.postMessage({tmlInklingHeight:h},’*’);
}catch(e){}
}
window.addEventListener(‘load’,resize);
window.addEventListener(‘resize’,resize);
setInterval(resize,900);
})();
</script>
</body>
</html>
” style=”width:100%;border:0;overflow:hidden;display:block;” height=”820″ scrolling=”no” loading=”lazy” title=”Inkling-Small interactive explainer”>
Key Takeaways
- Inkling-Small is a 276B total, 12B active MoE model under Apache 2.0.
- It beats the 975B Inkling on HLE, SWE-bench Verified, Terminal-Bench 2.1 and ARC-AGI-2.
- The NVFP4 checkpoint runs on a single B300 at 180 GB aggregated VRAM.
- Factual recall regressed: SimpleQA Verified 20.6% versus Inkling’s 43.9%.
- Native text, image and audio input with a 1M token context window.
Check out the Technical details and Model weight. Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.
Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us
The post Thinking Machines Lab Releases Inkling-Small: A 276B Total, 12B Active Open Weights Multimodal MoE Model appeared first on MarkTechPost.