Nanbeige LLM Lab has released Nanbeige4.3-33B on Hugging Face under the Apache 2.0 license. Nanbeige4.3-33B is a 33B dense language model built for agentic coding and office-style ‘cowork’ tasks. The lab sits inside the recruitment platform BOSS Zhipin. It also published Nanbeige4.3-33B-Base for custom post-training. The model supports a 524,288-token context window. In the lab’s own table, it leads 17 of 20 benchmarks against 3 open models near 30B.
TL;DR
Size: 33B parameters, dense (no MoE), 524,288-token (512K) context, BF16 weights.
Runs on: Multi-GPU servers. The card’s SGLang and vLLM recipes use 4-way tensor parallelism. BF16 weights need about 66 GB (our arithmetic). 1 community quantization is listed.
Performance: Leads 17 of 20 rows in Nanbeige’s own comparison against Qwen3.8-27B, Muse-Glimmer-30B and Gemma4-31B.
Best: 80.9 on Terminal-Bench 2.1, versus 73.0 for Qwen3.8-27B.
Worst: 23.8 on Terminal-Bench 4.0 (its lowest score). It also trails Qwen3.8-27B on SWE-Bench Pro, 60.3 vs 61.7.
What is Nanbeige4.3-33B?
Nanbeige4.3-33B is the flagship ‘teacher’ model of the Nanbeige4.3 series. The lab’s stated strategy is to build a strong teacher first. It then plans to distill agentic skills into smaller models, starting with Nanbeige4.3-3B.
How is Nanbeige4.3-33B built?
The config.json declares a standard LlamaForCausalLM architecture. There is no expert routing, so all 33B parameters run on every token.
52 layers, hidden size 7,168
56 query heads and 8 key-value heads (grouped-query attention), head dimension 128
FFN intermediate size 22,016, vocabulary of 166,912 tokens
RoPE theta of 120,000,000 and 524,288 max positions
The chat template exposes 3 controls. enable_thinking toggles reasoning and is on by default. preserve_thinking keeps reasoning from earlier turns. Nanbeige recommends it for multi-turn tool use and code agents. Passing tools enables tool calling, and an XML call format is recommended.
How does Nanbeige4.3-33B perform on benchmarks?
Nanbeige compared the model with Qwen3.8-27B, Muse-Glimmer-30B and Gemma4-31B. Every model ran at its highest thinking effort, with shared hyperparameters and harnesses. All scores in this section are self-reported.
Agentic coding: It scores 80.9 on Terminal-Bench 2.1, against 73.0 for Qwen3.8-27B. DeepSWE shows the widest gap: 65.5 versus 42.5. On Terminal-Bench 4.0, it scores 23.8 while Gemma4-31B scores 0.0.
Agentic cowork: It posts 54.2 on Automation Bench versus 38.3, and 44.8 on JobBench versus 34.5. On YC-bench, simulated earnings reach $1,025,437 versus $641,290.
Reasoning: It reports 95.2 on AIME 2026 and 84.0 on AA-LCR.
It loses 3 of 20 rows. Qwen3.8-27B leads SWE-Bench Pro (61.7 vs 60.3) and GDPval (86.4 vs 84.8). Gemma4-31B leads GPQA Diamond in Nanbeige’s table, 91.3 vs 89.5.
The Base model beats Gemma4-31B-Base on all 8 reported tasks. Examples include MMLU-Pro (66.9 vs 59.3) and GPQA (62.0 vs 41.5).
Back</button><button class=”btn” id=”nbgNext”>Next step </button><button class=”btn ghost” id=”nbgPlay”>Auto-play</button></div>
<div class=”spec”>
<div><b>52</b><span>layers</span></div>
<div><b>56 / 8</b><span>query / KV heads (GQA)</span></div>
<div><b>7,168</b><span>hidden size</span></div>
<div><b>524,288</b><span>max positions</span></div>
</div>
</div>
<div class=”pane” id=”p2″>
<div class=”seg” id=”nbgSeg”>
<button class=”on” data-c=”coding”>Agentic coding</button>
<button data-c=”cowork”>Agentic cowork</button>
<button data-c=”reason”>Reasoning</button>
<button data-c=”base”>Base model</button>
</div>
<div class=”legend” id=”nbgLegend”></div>
<div id=”nbgBars”></div>
<p class=”note”>All scores self-reported by Nanbeige on its Hugging Face model cards, at each model’s highest thinking effort with shared harnesses. Not independently verified.</p>
</div>
<div class=”pane” id=”p3″>
<div class=”calc”>
<div>
<div class=”field”><label>Context length <b id=”nbgCtxL”>131,072 tokens</b></label><input type=”range” id=”nbgCtx” min=”0″ max=”6″ step=”1″ value=”4″></div>
<div class=”field”><label>Concurrent sequences <b id=”nbgSeqL”>1</b></label><input type=”range” id=”nbgSeq” min=”1″ max=”8″ step=”1″ value=”1″></div>
<div class=”seg” id=”nbgW”><button class=”on” data-w=”2″>Weights BF16</button><button data-w=”1″>Weights 8-bit</button></div>
<div class=”seg” id=”nbgK”><button class=”on” data-k=”2″>KV cache BF16</button><button data-k=”1″>KV cache FP8</button></div>
<p class=”note”>Arithmetic from config.json: 52 layers × 8 KV heads × 128 dims × 2 (K and V) × bytes per value. That is 212,992 bytes (about 208 KiB) per token in BF16. Weights use 33B parameters. Excludes activations and framework overhead.</p>
</div>
<div class=”stack”>
<div class=”kv”><span>Estimated GPU memory</span></div>
<div class=”total” id=”nbgTot”>0 GB</div>
<div class=”stackbar”><i id=”nbgBw” style=”background:#5fd3bd”></i><i id=”nbgBk” style=”background:#7c8cf8″></i></div>
<div class=”kv”><span><i style=”display:inline-block;width:9px;height:9px;background:#5fd3bd;border-radius:2px”></i> Weights</span><b id=”nbgWv”></b></div>
<div class=”kv”><span><i style=”display:inline-block;width:9px;height:9px;background:#7c8cf8;border-radius:2px”></i> KV cache</span><b id=”nbgKv”></b></div>
<div class=”kv”><span>Per 80 GB GPU (ideal fit)</span><b id=”nbgGpu”></b></div>
<p class=”note”>The model card’s SGLang and vLLM recipes use 4-way tensor parallelism.</p>
</div>
</div>
</div>
<div class=”pane” id=”p4″>
<table>
<tr><th>Row in Nanbeige table</th><th>Nanbeige lists</th><th>Official card</th><th></th></tr>
<tr><td>Muse-Glimmer-30B, SWE-Bench Pro</td><td class=”bad”>36.9</td><td>51.2 (Meta)</td><td><span class=”flag”>looks swapped</span></td></tr>
<tr><td>Gemma4-31B, SWE-Bench Pro</td><td class=”bad”>51.2</td><td>36.9 (Meta-reported)</td><td><span class=”flag”>looks swapped</span></td></tr>
<tr><td>Gemma4-31B, GPQA Diamond</td><td class=”bad”>91.3</td><td>84.3 (Google)</td><td><span class=”flag”>conflict</span></td></tr>
<tr><td>Muse-Glimmer-30B, Terminal-Bench 2.1</td><td class=”bad”>61.8</td><td>51.7 (Meta)</td><td><span class=”flag”>harness?</span></td></tr>
<tr><td>Qwen3.8-27B, GPQA Diamond</td><td>89.2</td><td>89.2 (Qwen)</td><td>match</td></tr>
<tr><td>Muse-Glimmer-30B, AIME 2026</td><td>94.7</td><td>94.7 (Meta)</td><td>match</td></tr>
</table>
<p class=”note”>Nanbeige re-ran every model with its own harness, which explains some gaps. Other limits: text-only input, dense compute on every token, and Nanbeige4.3-3B is not yet released.</p>
</div>
<div class=”ft”><span>Sources: <a href=”https://huggingface.co/Nanbeige/Nanbeige4.3-33B” target=”_blank” rel=”noopener”>Nanbeige model card</a> · <a href=”https://huggingface.co/Nanbeige/Nanbeige4.3-33B-Base” target=”_blank” rel=”noopener”>Base card</a> · competitor HF cards</span><span class=”brand”>© Marktechpost</span></div>
</div>
<script>
(function(){
var R=document.getElementById(‘mtp-nbg43′);
function resize(){try{parent.postMessage({type:’mtp-nbg43-resize’,height:R.offsetHeight+40},’*’)}catch(e){}}
// tabs
R.querySelectorAll(‘.tab’).forEach(function(t){t.addEventListener(‘click’,function(){
R.querySelectorAll(‘.tab’).forEach(function(x){x.classList.remove(‘on’)});t.classList.add(‘on’);
R.querySelectorAll(‘.pane’).forEach(function(p){p.classList.remove(‘on’)});
document.getElementById(t.dataset.p).classList.add(‘on’);
if(t.dataset.p===’p2′)drawBars(cur);
setTimeout(resize,50);setTimeout(resize,400);
})});
// flow
var steps=[
‘<b>Base model.</b> Nanbeige4.3-33B-Base is a dense LlamaForCausalLM checkpoint. Nanbeige reports it beats Gemma4-31B-Base on all 8 listed tasks, for example MMLU-Pro 66.9 vs 59.3.’,
‘<b>Teacher agent.</b> The post-trained model thinks by default (<code>enable_thinking</code>). <code>preserve_thinking</code> keeps earlier reasoning for multi-turn tool use. Nanbeige recommends the XML tool-call format.’,
‘<b>Agent harness.</b> Nanbeige evaluated it in Terminus 2, mini-swe-agent v2.4.6 and the Claude Code harness. Recommended agent sampling: temperature 1.0, top_p 0.95, 65,536 max new tokens.’,
‘<b>Distillation.</b> The 33B model is the teacher for the Nanbeige4.3 series. The first planned student is Nanbeige4.3-3B. No release date is given.’
];
var s=0,timer=null;
function setStep(i){s=(i+4)%4;R.querySelectorAll(‘.node’).forEach(function(n,k){n.classList.toggle(‘on’,k<=s)});
document.getElementById(‘nbgRail’).style.width=((s+1)*25)+’%’;document.getElementById(‘nbgDetail’).innerHTML=steps[s];resize()}
R.querySelectorAll(‘.node’).forEach(function(n){n.addEventListener(‘click’,function(){stop();setStep(+n.dataset.s)})});
function stop(){if(timer){clearInterval(timer);timer=null;document.getElementById(‘nbgPlay’).textContent=’Auto-play’}}
document.getElementById(‘nbgNext’).onclick=function(){stop();setStep(s+1)};
document.getElementById(‘nbgPrev’).onclick=function(){stop();setStep(s-1)};
document.getElementById(‘nbgPlay’).onclick=function(){if(timer){stop();return}this.textContent=’Pause’;timer=setInterval(function(){setStep(s+1)},2200)};
setStep(0);
// bars
var M={n:[‘Nanbeige4.3-33B’,’#5fd3bd’],q:[‘Qwen3.8-27B’,’#7c8cf8′],m:[‘Muse-Glimmer-30B’,’#f0a35e’],g:[‘Gemma4-31B’,’#6aa9f4′]};
var D={
coding:[[‘Terminal-Bench 2.1’,80.9,73.0,61.8,47.2],[‘DeepSWE’,65.5,42.5,4.4,2.7],[‘SWE-Bench Pro’,60.3,61.7,36.9,51.2],[‘SkillsBench’,61.1,56.4,39.7,28.9],[‘Terminal-Bench 4.0’,23.8,6.3,1.6,0.0]],
cowork:[[‘Automation Bench’,54.2,38.3,15.2,9.7],[‘JobBench’,44.8,34.5,16.6,9.0],[‘GDPval’,84.8,86.4,75.8,71.4],[‘Toolathlon-Verified’,70.4,68.5,47.2,27.8],[‘DeepPlanning’,63.3,49.2,21.4,19.4]],
reason:[[‘AIME 2026’,95.2,94.5,94.7,89.2],[‘GPQA Diamond’,89.5,89.2,83.5,91.3],[‘AA-LCR’,84.0,82.0,83.3,72.0]],
base:[[‘MMLU-Pro’,66.9,null,null,59.3],[‘GPQA’,62.0,null,null,41.5],[‘GSM8K’,92.9,null,null,88.9],[‘Math’,57.3,null,null,43.6],[‘CMMLU’,86.8,null,null,76.9]]
};
var cur=’coding’;
function drawBars(c){cur=c;var keys=c===’base’?[‘n’,’g’]:[‘n’,’q’,’m’,’g’];
var names=c===’base’?{n:’Nanbeige4.3-33B-Base’,g:’Gemma4-31B-Base’}:{};
document.getElementById(‘nbgLegend’).innerHTML=keys.map(function(k){return ‘<span><i style=”background:’+M[k][1]+'”></i>’+(names[k]||M[k][0])+'</span>’}).join(”);
var idx={n:1,q:2,m:3,g:4},h=”;
D[c].forEach(function(r){h+='<div class=”bench”><div class=”bn”>’+r[0]+'</div>’;
keys.forEach(function(k){var v=r[idx[k]];h+='<div class=”brow’+(k===’n’?’ me’:”)+'”><span class=”lb”>’+(names[k]||M[k][0])+'</span><div class=”track”><div class=”fill” data-w=”‘+v+'” style=”background:’+M[k][1]+'”></div></div><span class=”v”>’+v.toFixed(1)+'</span></div>’});
h+='</div>’});
var box=document.getElementById(‘nbgBars’);box.innerHTML=h;
requestAnimationFrame(function(){requestAnimationFrame(function(){box.querySelectorAll(‘.fill’).forEach(function(f){f.style.width=f.dataset.w+’%’})})});
resize();setTimeout(resize,300)}
R.querySelectorAll(‘#nbgSeg button’).forEach(function(b){b.onclick=function(){R.querySelectorAll(‘#nbgSeg button’).forEach(function(x){x.classList.remove(‘on’)});b.classList.add(‘on’);drawBars(b.dataset.c)}});
drawBars(‘coding’);
// calc
var CT=[8192,16384,32768,65536,131072,262144,524288],wb=2,kb=2;
function fmt(n){return n.toLocaleString(‘en-US’)}
function calc(){var ctx=CT[+document.getElementById(‘nbgCtx’).value],seq=+document.getElementById(‘nbgSeq’).value;
document.getElementById(‘nbgCtxL’).textContent=fmt(ctx)+’ tokens’;document.getElementById(‘nbgSeqL’).textContent=seq;
var w=33e9*wb/1e9,kv=52*8*128*2*kb*ctx*seq/1e9,t=w+kv;
document.getElementById(‘nbgTot’).textContent=t.toFixed(1)+’ GB’;
document.getElementById(‘nbgWv’).textContent=w.toFixed(1)+’ GB’;document.getElementById(‘nbgKv’).textContent=kv.toFixed(1)+’ GB’;
document.getElementById(‘nbgGpu’).textContent=Math.ceil(t/80)+’ × 80 GB’;
document.getElementById(‘nbgBw’).style.width=(w/t*100)+’%’;document.getElementById(‘nbgBk’).style.width=(kv/t*100)+’%’}
[‘nbgCtx’,’nbgSeq’].forEach(function(id){document.getElementById(id).addEventListener(‘input’,calc)});
R.querySelectorAll(‘#nbgW button’).forEach(function(b){b.onclick=function(){R.querySelectorAll(‘#nbgW button’).forEach(function(x){x.classList.remove(‘on’)});b.classList.add(‘on’);wb=+b.dataset.w;calc()}});
R.querySelectorAll(‘#nbgK button’).forEach(function(b){b.onclick=function(){R.querySelectorAll(‘#nbgK button’).forEach(function(x){x.classList.remove(‘on’)});b.classList.add(‘on’);kb=+b.dataset.k;calc()}});
calc();
window.addEventListener(‘load’,resize);window.addEventListener(‘resize’,resize);setTimeout(resize,200);
})();
</script>
</body></html>
” style=”width:100%!important;height:600px;border:0!important;background:transparent!important;display:block;” loading=”lazy”>
How does it compare with competitors’ own model cards?
Spec
Nanbeige4.3-33B
Qwen3.8-27B
Muse-Glimmer-30B
Gemma 4 31B
Developer
Nanbeige LLM Lab (BOSS Zhipin)
Qwen (Alibaba)
Meta Superintelligence Lab
Google DeepMind
Parameters
33B dense
27B dense LM plus vision encoder
~29.6B dense, incl. ~1.8B vision encoder
30.7B dense
Context
524,288
262,144 native, up to 1M
131,072+
256K
Input modality
Text
Text, image, video
Text, image
Text, image
License
Apache 2.0
Apache 2.0
Apache 2.0
Apache 2.0
Terminal-Bench 2.1
80.9*
73.0
51.7
Not disclosed
SWE-Bench Pro
60.3*
61.7
51.2
Not disclosed
GPQA Diamond
89.5*
89.2
83.5 (AA)
84.3
AIME 2026
95.2*
Not disclosed
94.7
89.2
Local hardware guidance
4-GPU tensor-parallel recipe
Not disclosed
24 GB or 32 GB VRAM at ~4-bit
Consumer GPUs and workstations
*Self-reported by Nanbeige. Competitor values come from each lab’s own Hugging Face model card.
Some competitor figures in Nanbeige’s table differ from what those labs publish:
Meta reports Muse-Glimmer-30B at 51.2 on SWE-Bench Pro and Gemma4-31B at 36.9. Nanbeige lists the reverse.
Google lists Gemma 4 31B at 84.3 on GPQA Diamond. Nanbeige’s table shows 91.3.
Meta reports Muse-Glimmer-30B at 51.7 on Terminal-Bench 2.1. Nanbeige measured 61.8.
Different harnesses explain some gaps. The SWE-Bench Pro pair looks swapped. Treat these rows as provisional until independent runs appear.
How do you deploy Nanbeige4.3-33B?
The model card provides Transformers, SGLang and vLLM recipes. Its server examples use 4-way tensor parallelism with Qwen3 reasoning and tool-call parsers. Recommended agent settings are temperature 1.0, top_p 0.95 and 65,536 max new tokens. Reasoning and chat use temperature 0.6 and 262,144 max new tokens.
By arithmetic from config.json, BF16 weights need about 66 GB. The KV cache adds about 208 KiB per token in BF16. A full 524,288-token sequence therefore needs roughly 112 GB of KV cache. At publication, no Hugging Face Inference Provider hosts the model.
Key Takeaways
33B dense, Apache 2.0, 512K context, text-only.
Self-reported 80.9 on Terminal-Bench 2.1 and 65.5 on DeepSWE.
Leads 17 of 20 rows in Nanbeige’s own table.
Several competitor figures conflict with official cards.
Built as the teacher for the upcoming Nanbeige4.3-3B.
Check out the model weights, the Base model and the launch post on X. 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 Nanbeige Releases Nanbeige4.3-33B, a 33B Open Agentic Coding Model appeared first on MarkTechPost.