← all posts
// models · open-weights

Nanbeige4.3-33B claims 18 of 20 wins over Qwen3.8-27B. Read the harness footnotes first

Nanbeige4.3-33B was reported on Hugging Face on October 25 under Apache 2.0, with a model card that says it beats Qwen3.8-27B, the current default open model in its class, on 18 of 20 benchmarks. If that holds, a 32 GB Mac can run a better local coding agent than the one you use today; if it does not, switching costs you a weekend for a lead that only exists on the card. Terminal-Bench 2.1 at 80.9 against 73.0. DeepSWE at 65.5 against 42.5. The 33B dense model quantises to roughly 20 GB, which is what puts it on that Mac. Every one of those numbers is self-reported, and I have not found an independent reproduction. That gap is the whole story, so here is how I read the card before giving it the weekend.

What was released

The model card lists 33.1B parameters in BF16 safetensors, a dense Llama-architecture model, Apache 2.0, and a context window of 524,288 tokens. Thinking is on by default. The chat template has a preserve_thinking switch that the lab recommends turning on for multi-turn tool use and code-agent workflows, and it recommends XML over JSON as the tool call format. The serving examples for vLLM and SGLang both use four-way tensor parallelism.

Nanbeige calls this the "flagship teacher model" for the 4.3 series, and that changes how I read the agentic numbers. The 33B was built first to anchor distillation into smaller models, with a 3B listed as upcoming, so the 33B is the means and the small model is the goal. A teacher that does not actually solve agent tasks produces useless distillation data, and the lab would find out quickly, in its own 3B. The lab has its own reason to want those agentic scores to be real, which makes me take them a little more seriously.

Reading the benchmark table

The card compares against Qwen3.8-27B, Muse-Glimmer-30B and Gemma4-31B, all at their highest thinking effort. Five rows tell most of the story.

BenchmarkNanbeige4.3-33BQwen3.8-27BHarness
Terminal-Bench 2.180.973.0Terminus 2
Terminal-Bench 4.023.86.3mini-swe-agent 2.4.6
DeepSWE65.542.5mini-swe-agent 2.4.6
SWE-Bench Pro60.361.7mini-swe-agent 2.4.6
GPQA Diamond89.589.2none

The two losses are SWE-Bench Pro and GDPval (84.8 against 86.4). The reasoning rows are basically ties: 89.5 against 89.2 on GPQA Diamond, 95.2 against 94.5 on AIME 2026, and Gemma4-31B actually leads GPQA at 91.3. The big gaps sit in agentic coding, which is exactly where the harness matters most. I wrote about how a harness can move a score five-fold in the ARC-AGI-3 piece, and the footnotes here deserve the same scrutiny. The card says every model ran with the same harness per benchmark, which is good practice, but the harnesses themselves differ across benchmarks: Terminus 2 for Terminal-Bench 2.1, mini-swe-agent for Terminal-Bench 4.0, DeepSWE and SWE-Bench Pro, Claude Code for NL2Repo. SWE-Atlas-QnA is graded by GPT-6 Sol as a judge. Toolathlon-Verified runs with no max_tokens limit, and Claw-Eval uses only the 157-task General subset.

None of that is cheating. It does mean the DeepSWE result tells you how Nanbeige behaves inside mini-swe-agent with thinking preserved across turns, and you run something else.

A self-reported benchmark is a hypothesis with a harness attached. Reproduce the harness before you argue about the number.

Secondhand coverage also drifts fast. One news write-up of the release reported GPQA as Gemma leading with Qwen at 89.5 and no Nanbeige score at all, which mixes up two columns of the same table. Read the card, not the summary.

Will it fit on your machine

The card gives no memory figures, so this is my arithmetic. At 33.1B parameters, BF16 weights are about 66 GB. A 4-bit quantisation brings the weights to roughly 17 GB, and with quantisation overhead the files land around 20 GB. That fits a 32 GB Apple Silicon Mac with some room for KV cache, but not much. The 512K context is a datacentre feature; on a laptop you will cap the context far lower, and long agent sessions are exactly where you need it.

The bigger cost is thinking. The recommended sampling for agent and tool use is temperature 1.0 with a budget of up to 65,536 new tokens per response. If your Mac decodes a dense 33B at, say, 20 tokens per second, a turn that uses its full budget takes almost an hour. Most turns will not, but reasoning-by-default models on local hardware live or die on how many tokens they spend before acting, and the card says nothing about that. Compare the trade-offs in my notes on Muse Glimmer 30B, which shows up in this table as a much weaker baseline but was built to fit the same class of machine.

If you want to bring it to work, one question sits outside the benchmarks: provenance. Apache 2.0 makes a Chinese lab's open weights legally simple, but picture the compliance review where someone asks where the training data came from. The card does not say, so you will have nothing to paste into that form. Raise it before the pilot starts.

What I would do before trusting it

Do not swap your local coding agent on the strength of this card. Take one benchmark that resembles your work, ideally Terminal-Bench 2.1 because the harness is public, and run both Nanbeige and Qwen3.8-27B through it at the same 4-bit quantisation, with preserve_thinking on, on your own hardware. Log the tokens spent per task alongside the pass rate. If Nanbeige keeps a lead of more than a few points at 4-bit and does not double the thinking tokens to get there, it earns a slot. If the lead collapses under quantisation, you have saved yourself a migration, and you will know what to check when the distilled 3B arrives.

#open-weights#coding-agents#benchmarks#local