
ZwZ2-9B Shipped Quietly: What 9.4 Billion Weights Tell You When the Lab Says Nothing
- OrcaNEWOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 per 1M tokens · 73 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2952Intelligence
- anthropicAnthropic: Claude Sonnet 5.52026-09-2856Intelligence
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 per 1M tokens · 725 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2238Intelligence
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Intelligence
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Intelligence
- xAIGrok 4.72026-09-2146Intelligence
- OrcaOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $7.50 per 1M tokens · 35 tok/s
- OrcaOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 per 1M tokens · 821 tok/s
- DeepSeekDeepSeek: DeepSeek V4.1 Flash2026-09-1040Intelligence
- OpenAIOpenAI: GPT-6 Astra2026-09-0453Intelligence77Coding
- GoogleGoogle: Gemini 3.8 Flash2026-09-0241Intelligence76Coding
- AlibabaQwen: Qwen3.8 Max (0902)2026-09-0245Intelligence76Coding
- AnthropicAnthropic: Claude Fable 5.12026-09-0153Intelligence82Coding
- TencentTencent: Hy4 preview2026-08-28$0.83 / $2.50 per 1M tokens · 52 tok/s
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 per 1M tokens · 108 tok/s
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642Intelligence72Coding
- DeepSeekDeepSeek: DeepSeek V4 Flash Vision (Exp)2026-08-21$0.22 / $0.66 per 1M tokens · 185 tok/s
- z-aiZ.ai: GLM 5.32026-08-1845Intelligence75Coding
At 03:42 UTC on 16 October 2026 a Hugging Face repository appeared under the name inclusionAI/ZwZ2-9B. Four minutes later it received its only commit — "Add ZwZ2-9B model weights" — and then nothing. There is no README, no licence field, no paper link, no benchmark table, and no entry in any of the ten public collections the inclusionAI organisation maintains. The weights themselves are 9,409,813,744 parameters in bfloat16, and they describe a hybrid-attention vision-language model whose configuration is, line for line, the configuration of Qwen3.5-9B with one prediction head removed. That is the whole of what is confirmed. Everything else in this piece is labelled as inference, because a repository without a model card does not entitle anyone to more.
This is normal, by the way, and worth saying before the caveats pile up. inclusionAI is the open-weights lab behind the Ling, Ring, LLaDA and Ming families, and it has a habit of pushing checkpoints days or weeks before any prose shows up. On 13 October — three days before this — it posted Ling-3.1-flash with a short card and no announcement either. A silent repository is not a red flag. It is a reason to read the files instead of the marketing.
What is actually in the repository
Eight files, and the list is the story. There is a .gitattributes, a chat_template.jinja, a config.json, a generation_config.json, a single 18.8 GB model.safetensors, a processor_config.json, a tokenizer.json and a tokenizer_config.json. There is no README.md. There is no LICENSE. The repository carries exactly three tags — safetensors, qwen3_5 and region:us — which means the Hub has no pipeline tag for it at all: it is not classified as image-text-to-text, text-generation, or anything else. At the time of writing it shows zero downloads and two likes.
• Total parameters — 9,409,813,744 across 760 tensors, bfloat16.
• Architecture — Qwen3_5ForConditionalGeneration, model type qwen3_5.
• Text stack — 32 layers, hidden size 4,096, 16 query heads against 4 KV heads, head dimension 256, intermediate size 12,288, vocabulary 248,320.
• Attention pattern — three linear-attention layers then one full-attention layer, repeating: 24 linear layers and 8 full-attention layers.
• Context — 262,144 positions, rotary base 10,000,000, interleaved M-RoPE with section [11, 11, 10].
• Vision tower — depth 27, hidden size 1,152, patch size 16, spatial merge 2, temporal patch 2, projecting to 4,096.
• Licence — none declared. Not apache-2.0, not a custom licence, nothing.
The configuration is a Qwen3.5-9B configuration
Diff the two config.json files and almost every architectural value matches. Hidden size, layer count, head counts, head dimension, intermediate size, vocabulary, the 3:1 linear-to-full attention schedule, the M-RoPE section, the rotary base, the 262,144-position ceiling, and the entire vision tower down to its 2,304 position embeddings are identical to Qwen3.5-9B. The substantive difference is one line: mtp_num_hidden_layers is 1 in Qwen3.5-9B and 0 here, so ZwZ2-9B carries no multi-token-prediction head. The rest of the diff is serialisation — a newer transformers version writing out fields the older file left implicit, and the vision config's model type renamed from qwen3_5 to qwen3_5_vision.
What that tells you is narrow but real: this is not a new architecture. It is a checkpoint on the Qwen3.5-9B stack, post-trained by someone, with the speculative-decoding head stripped. What it does not tell you is what that post-training was. The parameters moved; the shape did not.


The one place the model does say something about itself
The chat template is the only file here with a point of view, and it diverges from Qwen3.5-9B in three ways that a reader can check in about a minute.
The first is a default system prompt. When a request arrives with no system message, ZwZ2-9B's template injects one: "A conversation between User and Assistant. The user asks a question, and the Assistant solves it… The answer are enclosed within <answer> </answer> tags." Qwen3.5-9B's template has no such branch — it simply emits nothing. A baked-in system prompt that names an output format is the signature of a specific training run, not of a base model.
The second is the thinking default, and it is inverted. In Qwen3.5-9B the template emits an empty <think></think> block only when the caller explicitly passes enable_thinking: false, which means reasoning is on unless you turn it off. In ZwZ2-9B the condition is not defined or false — the empty block appears by default and the open <think> tag only when a caller explicitly asks for thinking. Same tags, opposite default. Qwen3.8-27B, for the record, kept the Qwen3.5 behaviour, so this is not simply inherited from a newer generation.
The third is bookkeeping for multi-turn reasoning: the template understands a preserve_thinking flag, and it knows how to strip a <think> block out of an assistant turn that already contains one. Neither exists in the Qwen3.5-9B template. The tokenizer, incidentally, still reserves the audio special tokens — <|audio_start|>, <|audio_end|>, <|audio_pad|> — but there is no audio tower anywhere in the config, so treat that as shared tokenizer vocabulary rather than a capability.
What the name implies, and what it does not
"ZwZ2" reads like a second generation of something, and there is a first generation to point at. ZwZ-2B, posted on 4 March 2026, is a fine-tune of Qwen3-VL-2B-Instruct trained with Region-to-Image Distillation plus reinforcement learning, published with the paper Zooming without Zooming (arXiv 2602.11858) and the ZoomBench evaluation set. It is Apache-2.0, it has a full model card, and it has 159 downloads in seven months.
The lineage hint, though, is thinner than the name suggests. ZwZ-2B is built on the qwen3_vl architecture. ZwZ2-9B is built on qwen3_5. The one tag inclusionAI applied is qwen3_5, and the model is not in the ZwZ collection or in any other. Whether the region-to-image recipe carried over is exactly the kind of question a model card would answer and this repository does not.
One trap worth flagging, because search engines will lead people into it: there is an older, unrelated ZwZ_32B family of GGUF conversions dated March 2025, from a third party. It shares three letters and nothing else. Do not read it as an earlier ZwZ2-9B.
How to treat an undocumented checkpoint
The practical stance is the same one you would take with any weights that arrive without a card. Pull the config and the safetensors header first — that is cheap and it is checkable. Confirm the parameter count and the tensor names line up with what the config promises. Then serve it on a framework that supports the architecture, and run the evaluations you already run on your own traffic rather than borrowing numbers that do not exist.
The licence is the part that matters for anything other than a weekend. A checkpoint with no licence field is not the same as an open one; absent a declaration, the default is that the publisher has reserved rights, and that is a conversation to have before this goes near production rather than after. Note also that you will be running it yourself — the Hub reports the model is served by no provider, and the vendor has published no endpoint.
That is precisely the situation automatic failover exists for. If you want to measure an unproven checkpoint against the incumbent without betting a production path on it, put the candidate behind the same interface as the models you already trust and let traffic move back when the new one misbehaves — one API key and one OpenAI-compatible endpoint, rather than a second integration you have to unwind. OrcaRouter routes 200-plus models that way, passes provider list prices through at 0% markup, and does not host ZwZ2-9B — we are not going to pretend a catalogue entry exists for it. What we can offer today is the family it was built on and the family it replaces: the Qwen3.5 line is routable here, including qwen/qwen3.5-35b-a3b and qwen/qwen3.5-flash, and qwen/qwen3-vl-8b-instruct covers the 8B vision slot with a documented, hosted model at $0.18 per million input tokens and $0.70 per million output.

What would turn this into a release
Three things, and any of them would justify a rewrite of this piece. A licence field appearing in the repository, which converts it from a curiosity into something a company can use. A model card with evaluation numbers, which converts it from an architecture into a claim. Or a paper — the most likely shape being the region-to-image work that made the first ZwZ interesting, applied to a vision tower three times the size.
Until one of those lands, treat ZwZ2-9B as what the file listing says it is: a 9.4-billion-parameter Qwen3.5-9B derivative with a customised chat template, published by a lab that has not yet told anyone why. The weights are real. The story is not written yet, and the honest position is that nobody outside inclusionAI can write it.
None of that is hypothetical: the documented AI failures and agent incidents behind releases like this one are collected in the OrcaRouter AI Incident Archive, where each entry carries its own sources, severity, confidence grade and disputed flag.
