
ZwZ2-9B est sorti discrètement : ce que 9,4 milliards de poids vous révèlent quand le labo ne dit rien
- OrcaNOUVEAUOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 par million de tokens · 72 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 par million de tokens · 732 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 par million de tokens · 35 tok/s
- OrcaOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 par million de tokens · 821 tok/s
- DeepSeekDeepSeek: DeepSeek V4.1 Flash2026-09-1040Intelligence
- OpenAIOpenAI: GPT-6 Astra2026-09-0453Intelligence77Code
- GoogleGoogle: Gemini 3.8 Flash2026-09-0241Intelligence76Code
- AlibabaQwen: Qwen3.8 Max (0902)2026-09-0245Intelligence76Code
- AnthropicAnthropic: Claude Fable 5.12026-09-0153Intelligence82Code
- TencentTencent: Hy4 preview2026-08-28$0.83 / $2.50 par million de tokens · 52 tok/s
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 par million de tokens · 108 tok/s
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642Intelligence72Code
- DeepSeekDeepSeek: DeepSeek V4 Flash Vision (Exp)2026-08-21$0.22 / $0.66 par million de tokens · 185 tok/s
- z-aiZ.ai: GLM 5.32026-08-1845Intelligence75Code
Le 16 octobre 2026 à 03:42 UTC, un dépôt Hugging Face est apparu sous le nom inclusionAI/ZwZ2-9B. Quatre minutes plus tard, il a reçu son unique commit — « Add ZwZ2-9B model weights » — puis plus rien. Il n'y a pas de README, pas de champ de licence, pas de lien vers un article, pas de tableau de benchmarks, et aucune entrée dans l'une des dix collections publiques que maintient l'organisation inclusionAI. Les poids eux-mêmes représentent 9 409 813 744 paramètres en bfloat16, et ils décrivent un modèle vision-langage à attention hybride dont la configuration est, ligne pour ligne, celle de Qwen3.5-9B avec une tête de prédiction en moins. C'est là tout ce qui est confirmé. Tout le reste dans cet article est étiqueté comme une inférence, car un dépôt sans fiche de modèle ne donne à personne le droit d'en dire davantage.
C'est normal, au fait, et cela vaut la peine d'être dit avant que les mises en garde ne s'accumulent. inclusionAI est le laboratoire open-weights derrière les familles Ling, Ring, LLaDA et Ming, et il a l'habitude de publier des checkpoints des jours ou des semaines avant qu'un quelconque texte ne fasse surface. Le 13 octobre — trois jours avant ceci — il a publié Ling-3.1-flash avec une fiche courte et sans aucune annonce non plus. Un dépôt silencieux n'est pas un signal d'alarme. C'est une raison de lire les fichiers plutôt que le marketing.
Qu'y a-t-il réellement dans le dépôt ?
Huit fichiers, et la liste raconte tout. Il y a un .gitattributes, un chat_template.jinja, un config.json, un generation_config.json, un unique fichier de 18,8 Go nommé model.safetensors, un processor_config.json, un tokenizer.json et un tokenizer_config.json. Il n'y a pas de README.md. Il n'y a pas de LICENSE. Le dépôt porte exactement trois tags — safetensors, qwen3_5 et region:us — ce qui signifie que le Hub n'a aucun tag de pipeline pour lui : il n'est classé ni comme image-text-to-text, ni comme text-generation, ni comme quoi que ce soit d'autre. Au moment de la rédaction, il affiche zéro téléchargement et deux likes.
• Paramètres totaux — 9 409 813 744 répartis sur 760 tenseurs, bfloat16.
• Architecture — Qwen3_5ForConditionalGeneration, type de modèle qwen3_5.
• Pile de texte — 32 couches, taille cachée 4 096, 16 têtes de requête contre 4 têtes KV, dimension de tête 256, taille intermédiaire 12 288, vocabulaire 248 320.
• Schéma d'attention — trois couches d'attention linéaire puis une couche d'attention complète, en répétition : 24 couches linéaires et 8 couches d'attention complète.
• Contexte — 262 144 positions, base rotative 10 000 000, M-RoPE entrelacé avec section [11, 11, 10].
• Tour de vision — profondeur 27, taille cachée 1 152, taille de patch 16, fusion spatiale 2, patch temporel 2, projection vers 4 096.
• Licence — aucune déclarée. Pas apache-2.0, pas de licence personnalisée, rien.
La configuration est une configuration Qwen3.5-9B.
Comparez les deux config.json fichiers et presque toutes les valeurs architecturales correspondent. La taille cachée, le nombre de couches, le nombre de têtes, la dimension des têtes, la taille intermédiaire, le vocabulaire, le schéma d'attention 3:1 linéaire/plein, la section M-RoPE, la base rotative, le plafond de 262 144 positions et toute la tour de vision jusque dans ses 2 304 embeddings de position sont identiques à Qwen3.5-9B. La différence de fond tient en une seule ligne : mtp_num_hidden_layers vaut 1 dans Qwen3.5-9B et 0 ici, donc ZwZ2-9B ne porte aucune tête de prédiction multi-token. Le reste du diff relève de la sérialisation — une version plus récente de transformers qui écrit des champs que l'ancien fichier laissait implicites, et le type de modèle de la configuration de vision renommé de qwen3_5 en qwen3_5_vision.
Ce que cela vous apprend est limité, mais réel : ce n’est pas une nouvelle architecture. C’est un checkpoint sur la pile Qwen3.5-9B, post-entraîné par quelqu’un, avec la tête de décodage spéculatif supprimée. Ce que cela ne vous apprend pas, c’est en quoi consistait ce post-entraînement. Les paramètres ont bougé ; la forme n’a pas bougé.


Le seul endroit où le modèle dit vraiment quelque chose sur lui-même
Le template de chat est le seul fichier ici à avoir un point de vue, et il diverge de Qwen3.5-9B de trois façons qu’un lecteur peut vérifier en une minute environ.
Le premier est un prompt système par défaut. Lorsqu'une requête arrive sans message système, le template de ZwZ2-9B en injecte un : « Une conversation entre l'Utilisateur et l'Assistant. L'utilisateur pose une question et l'Assistant y répond… La réponse est encadrée par les balises <answer> </answer>. » Le template de Qwen3.5-9B n'a pas une telle branche — il n'émet simplement rien. Un prompt système intégré qui nomme un format de sortie est la signature d'un entraînement spécifique, pas celle d'un modèle de base.
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.
Le troisième est la tenue de registre pour le raisonnement multi-tours : le template comprend un indicateur preserve_thinking, et il sait comment retirer un bloc <think> d'un tour d'assistant qui en contient déjà un. Ni l'un ni l'autre n'existe dans le template Qwen3.5-9B. Le tokeniseur, d'ailleurs, réserve encore les jetons spéciaux audio — <|audio_start|>, <|audio_end|>, <|audio_pad|> — mais il n'y a pas de tour audio nulle part dans la configuration, donc considérez cela comme un vocabulaire partagé du tokeniseur plutôt qu'une capacité.
Ce que le nom implique, et ce qu'il n'implique pas
« ZwZ2 » se lit comme une deuxième génération de quelque chose, et il y a bien une première génération à désigner. ZwZ-2B, publié le 4 mars 2026, est un fine-tune de Qwen3-VL-2B-Instruct entraîné avec la distillation Region-to-Image ainsi que par apprentissage par renforcement, publié avec l'article Zooming without Zooming (arXiv 2602.11858) et le jeu d'évaluation ZoomBench. Il est sous Apache-2.0, il dispose d'une fiche de modèle complète et il totalise 159 téléchargements en sept mois.
L'indice de filiation, cependant, est plus ténu que le nom ne le suggère. ZwZ-2B est construit sur qwen3_vl, une architecture. ZwZ2-9B est construit sur qwen3_5. Le seul tag appliqué par inclusionAI est qwen3_5, et le modèle ne figure pas dans la collection ZwZ ni dans aucune autre. Savoir si la recette région-vers-image a été reprise est exactement le genre de question à laquelle une fiche de modèle répondrait, et ce dépôt ne le fait pas.
Un piège qu'il vaut la peine de signaler, car les moteurs de recherche y conduiront les gens : il existe une famille plus ancienne et sans rapport ZwZ_32B de conversions GGUF datée de mars 2025, provenant d'un tiers. Elle partage trois lettres et rien d'autre. Ne la lisez pas comme un ZwZ2-9B antérieur.
Comment traiter un point de contrôle non documenté
La position pratique est la même que celle que vous adopteriez avec n’importe quels poids qui arrivent sans fiche. Récupérez d’abord la config et l’en-tête safetensors — c’est peu coûteux et vérifiable. Confirmez que le nombre de paramètres et les noms des tenseurs correspondent à ce que la config promet. Ensuite, servez-le sur un framework qui prend en charge l’architecture, et lancez les évaluations que vous faites déjà sur votre propre trafic plutôt que d’emprunter des chiffres qui n’existent pas.
La licence est l’élément qui compte pour tout ce qui va au-delà d’un week-end. Un checkpoint sans champ de licence n’est pas équivalent à un checkpoint ouvert ; en l’absence de déclaration, la règle par défaut est que les droits sont réservés à l’éditeur, et c’est une discussion à avoir avant que cela n’approche de la production, plutôt qu’après. Notez également que vous l’exécuterez vous-même — le Hub indique que le modèle n’est servi par aucun fournisseur, et le vendeur n’a publié aucun point de terminaison.
C'est précisément la situation pour laquelle le basculement automatique existe. Si vous voulez mesurer un point de contrôle non prouvé face au titulaire sans miser un chemin de production dessus, placez le candidat derrière la même interface que les modèles auxquels vous faites déjà confiance et laissez le trafic revenir en arrière lorsque le nouveau se comporte mal — une seule clé API et un seul point de terminaison compatible OpenAI, plutôt qu'une seconde intégration que vous devrez démonter. OrcaRouter route plus de 200 modèles de cette manière, répercute les prix catalogue des fournisseurs à 0 % de marge, et n'héberge pas ZwZ2-9B — nous n'allons pas prétendre qu'une entrée de catalogue existe pour lui. Ce que nous pouvons offrir aujourd'hui, c'est la famille sur laquelle il a été construit et la famille qu'il remplace : la gamme Qwen3.5 est routable ici, y compris qwen/qwen3.5-35b-a3b et qwen/qwen3.5-flash, et qwen/qwen3-vl-8b-instruct couvre le créneau vision 8B avec un modèle hébergé et documenté à 0,18 $ par million de jetons en entrée et 0,70 $ par million en sortie.

Qu'est-ce qui ferait passer ceci en version finale ?
Trois choses, et chacune d'elles justifierait une réécriture de cet article. Un champ de licence apparaissant dans le dépôt, qui le fait passer d'une curiosité à quelque chose qu'une entreprise peut utiliser. Une fiche de modèle avec des chiffres d'évaluation, qui la fait passer d'une architecture à une affirmation. Ou un article — la forme la plus probable étant le travail région-vers-image qui a rendu le premier ZwZ intéressant, appliqué à une tour de vision trois fois plus grande.
Jusqu'à ce que l'un de ces éléments se concrétise, considérez ZwZ2-9B comme ce que la liste des fichiers dit qu'il est : un dérivé de Qwen3.5-9B à 9,4 milliards de paramètres avec un gabarit de chat personnalisé, publié par un laboratoire qui n'a encore expliqué à personne pourquoi. Les poids sont réels. L'histoire n'est pas encore écrite, et la position honnête est que personne en dehors d'inclusionAI ne peut l'écrire.
Rien de tout cela n'est hypothétique : les défaillances documentées de l'IA et les incidents d'agents qui sous-tendent des versions comme celle-ci sont recueillis dans l'OrcaRouter AI Incident Archive, où chaque entrée est accompagnée de ses propres sources, de son niveau de gravité, de son degré de confiance et de son indicateur de contestation.
