Um cartão de título gerado para o artigo, com o cabeçalho 'ZwZ2-9B lançado discretamente' e o subtítulo '9,4 mil milhões de pesos de visão, sem cartão de modelo, sem licença, sem anúncio' e dois painéis arredondados: um com o título 'O que o repositório contém', listando config.json, chat_template.jinja, model.safetensors e entradas para um README em falta e uma LICENCE em falta, e outro com o título 'O que a configuração indica', listando Parâmetros 9 409 813 744, Camadas 32, Contexto 262 144 e Torre de visão 27 camadas. Um rodapé diz 'Todos os valores foram lidos da configuração publicada.' O logótipo da OrcaRouter está composto na faixa branca abaixo da ilustração.
Guides & Insights

ZwZ2-9B foi lançado discretamente: o que 9,4 bilhões de pesos lhe dizem quando o laboratório não diz nada

Autor

Elias Hawthorne

Data de publicação

Modelos mais recentes · 20Ver todos os modelos →
Benchmarks: Artificial Analysis · atualizado diariamente
Voltar para todas as publicações

Às 03:42 UTC de 16 de outubro de 2026, um repositório no Hugging Face surgiu sob o nome inclusionAI/ZwZ2-9B. Quatro minutos depois, recebeu seu único commit — "Adicionar pesos do modelo ZwZ2-9B" — e depois nada. Não há README, nem campo de licença, nem link para artigo, nem tabela de benchmark, nem entrada em nenhuma das dez coleções públicas mantidas pela organização inclusionAI. Os pesos em si têm 9.409.813.744 parâmetros em bfloat16 e descrevem um modelo de visão-linguagem com atenção híbrida cuja configuração é, linha por linha, a configuração do Qwen3.5-9B com uma cabeça de predição removida. Isso é tudo o que está confirmado. Todo o resto neste texto está rotulado como inferência, porque um repositório sem cartão de modelo não dá a ninguém direito a mais.

Aliás, isso é normal, e vale a pena dizer isso antes que as ressalvas se acumulem. A inclusionAI é o laboratório de pesos abertos por trás das famílias Ling, Ring, LLaDA e Ming, e tem o hábito de publicar checkpoints dias ou semanas antes de qualquer texto de apresentação surgir. Em 13 de outubro — três dias antes disso —, ela publicou o Ling-3.1-flash com uma ficha curta e nenhum anúncio também. Um repositório silencioso não é um sinal de alerta. É um motivo para ler os arquivos em vez do marketing.

O que está realmente no repositório

Oito arquivos, e a lista é a história. Há um .gitattributes, um chat_template.jinja, um config.json, um generation_config.json, um único model.safetensors de 18,8 GB, um processor_config.json, um tokenizer.json e um tokenizer_config.json. Não há README.md. Não há LICENSE. O repositório tem exatamente três tags — safetensors, qwen3_5 e region:us — o que significa que o Hub não tem nenhuma tag de pipeline para ele: não está classificado como image-text-to-text, text-generation ou qualquer outra coisa. No momento em que escrevo, ele mostra zero downloads e duas curtidas.

• Total de parâmetros — 9.409.813.744 distribuídos em 760 tensores, bfloat16.

• Arquitetura — Qwen3_5ForConditionalGeneration, tipo de modelo qwen3_5.

• Pilha de texto — 32 camadas, tamanho oculto 4.096, 16 cabeças de consulta contra 4 cabeças KV, dimensão de cabeça 256, tamanho intermediário 12.288, vocabulário 248.320.

• Padrão de atenção — três camadas de atenção linear e depois uma camada de atenção completa, repetindo: 24 camadas lineares e 8 camadas de atenção completa.

• Contexto — 262,144 posições, base rotativa 10,000,000, M-RoPE intercalado com seção [11, 11, 10].

• Torre de visão — profundidade 27, tamanho oculto 1,152, tamanho do patch 16, fusão espacial 2, patch temporal 2, projetando para 4,096.

• Licença — nenhuma declarada. Não é apache-2.0, nem uma licença personalizada, nada.

A configuração é uma configuração Qwen3.5-9B

Compare os dois config.json arquivos e quase todo valor arquitetural corresponde. Tamanho oculto, número de camadas, número de cabeças, dimensão da cabeça, tamanho intermediário, vocabulário, o cronograma de atenção linear-para-completa de 3:1, a seção M-RoPE, a base rotatória, o teto de 262.144 posições e a torre de visão inteira, até seus 2.304 embeddings de posição, são idênticos aos do Qwen3.5-9B. A diferença substancial é uma linha: mtp_num_hidden_layers é 1 no Qwen3.5-9B e 0 aqui, então o ZwZ2-9B não carrega nenhuma cabeça de previsão multi-token. O restante do diff é serialização — uma versão mais recente do transformers gravando campos que o arquivo mais antigo deixava implícitos, e o tipo de modelo da configuração de visão renomeado de qwen3_5 para qwen3_5_vision.

O que isso lhe diz é limitado, mas real: esta não é uma nova arquitetura. É um checkpoint da stack Qwen3.5-9B, pós-treinado por alguém, com a cabeça de decodificação especulativa removida. O que isso não lhe diz é o que foi esse pós-treinamento. Os parâmetros mudaram; a forma, não.

A screenshot of the Hugging Face model page for Qwen/Qwen3.5-9B showing 2.18K likes, the Image-Text-to-Text pipeline tag, the qwen3_5 architecture tag, Apache 2.0 licensing, a 10B parameter BF16 model size, a Downloads last month figure of 8,591,266, and a Qwen3.5 Highlights list describing a unified vision-language foundation, an efficient hybrid architecture combining Gated Delta Networks with sparse mixture-of-experts, reinforcement learning scaled across million-agent environments, and support for 201 languages and dialects.A screenshot of the Hugging Face model page for inclusionAI/ZwZ2-9B showing the repository name with 2 likes, the tags safetensors, qwen3_5 and region:us, an entry stating 'No model card', an entry stating 'This model isn't served by any provider', a model size listed as 9B params in BF16, and a Downloads last month figure of 0.

O único lugar onde o modelo realmente diz algo sobre si mesmo

O template de chat é o único arquivo aqui com um ponto de vista, e ele diverge do Qwen3.5-9B de três maneiras que um leitor pode verificar em cerca de um minuto.

O primeiro é um prompt de sistema padrão. Quando uma solicitação chega sem mensagem de sistema, o template do ZwZ2-9B injeta um: "Uma conversa entre Usuário e Assistente. O usuário faz uma pergunta, e o Assistente a resolve… A resposta está contida dentro das tags <answer> </answer>." O template do Qwen3.5-9B não tem esse ramo — ele simplesmente não emite nada. Um prompt de sistema embutido que nomeia um formato de saída é a assinatura de um run de treinamento específico, não de um modelo 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.

O terceiro é a manutenção de registros para raciocínio em múltiplos turnos: o template entende uma preserve_thinking flag, e sabe como remover um <think> bloco de um turno do assistente que já contenha um. Nenhum dos dois existe no template do Qwen3.5-9B. O tokenizador, aliás, ainda reserva os tokens especiais de áudio — <|audio_start|>, <|audio_end|>, <|audio_pad|> — mas não há torre de áudio em lugar nenhum da configuração, então trate isso como vocabulário compartilhado do tokenizador, e não como uma capacidade.

O que o nome sugere, e o que não sugere

"ZwZ2" soa como uma segunda geração de algo, e há uma primeira geração à qual apontar. ZwZ-2B, publicado em 4 de março de 2026, é um fine-tune do Qwen3-VL-2B-Instruct treinado com Region-to-Image Distillation mais aprendizado por reforço, publicado junto com o artigo Zooming without Zooming (arXiv 2602.11858) e o conjunto de avaliação ZoomBench. É Apache-2.0, tem um model card completo e tem 159 downloads em sete meses.

A dica de linhagem, porém, é mais tênue do que o nome sugere. O ZwZ-2B é construído sobre a qwen3_vl arquitetura. O ZwZ2-9B é construído sobre qwen3_5. A única tag que a inclusionAI aplicou é qwen3_5, e o modelo não está na coleção ZwZ nem em qualquer outra. Se a receita de região para imagem foi transferida é exatamente o tipo de pergunta que um model card responderia e este repositório não.

Uma armadilha que vale a pena destacar, porque os mecanismos de busca levarão as pessoas a ela: há uma antiga e não relacionada ZwZ_32B família de conversões GGUF datadas de março de 2025, de terceiros. Ela compartilha três letras e nada mais. Não a leia como uma ZwZ2-9B anterior.

Como tratar um checkpoint não documentado

A postura prática é a mesma que adotaria com quaisquer pesos que cheguem sem uma ficha. Obtenha primeiro a configuração e o cabeçalho do safetensors — isso é barato e verificável. Confirme que a contagem de parâmetros e os nomes dos tensores coincidem com o que a configuração promete. Depois, sirva-o num framework que suporte a arquitetura e execute as avaliações que já executa no seu próprio tráfego, em vez de tomar emprestados números que não existem.

A licença é a parte que importa para qualquer coisa que não seja um fim de semana. Um checkpoint sem campo de licença não é o mesmo que um aberto; na ausência de uma declaração, o padrão é que o publicador reservou os direitos, e essa é uma conversa a ter antes que isto chegue perto da produção, e não depois. Observe também que será você mesmo a executá-lo — o Hub informa que o modelo não é servido por nenhum provedor, e o fornecedor não publicou nenhum endpoint.

É exatamente para essa situação que o failover automático existe. Se você quer avaliar um checkpoint não comprovado em relação ao que já está em uso, sem apostar um caminho de produção nele, coloque o candidato atrás da mesma interface dos modelos em que você já confia e deixe o tráfego voltar quando o novo se comportar mal — uma única chave de API e um único endpoint compatível com OpenAI, em vez de uma segunda integração que você teria de desfazer. O OrcaRouter roteia mais de 200 modelos dessa forma, repassa os preços de tabela dos provedores com 0% de margem, e não hospeda o ZwZ2-9B — não vamos fingir que existe uma entrada de catálogo para ele. O que podemos oferecer hoje é a família na qual ele foi construído e a família que ele substitui: a linha Qwen3.5 é roteável aqui, incluindo qwen/qwen3.5-35b-a3b e qwen/qwen3.5-flash, e qwen/qwen3-vl-8b-instruct cobre a vaga de visão de 8B com um modelo hospedado e documentado a US$ 0,18 por milhão de tokens de entrada e US$ 0,70 por milhão de saída.

A screenshot of the OrcaRouter models page showing a catalogue header reading 210 models, 16 providers and one API key, modality filter tabs for All 210, Text 173, Image 12, Embeddings 5, Video 10 and TTS 10, a credit plan panel with monthly tiers at $50, $100, $500 and $1000, and model cards below for Orca:OrcaCyber Zero 1.5, OpenAI:GPT-6.1 Sol, Anthropic:Claude Sonnet 5.5, TypeSafe:Jev 1.13, OpenAI:GPT-6 Luna and OpenAI:GPT-6 Sol with per-million-token input and output prices.

O que transformaria isto num release

Três coisas, e qualquer uma delas justificaria uma reescrita deste texto. Um campo de licença a aparecer no repositório, que o converte de uma curiosidade em algo que uma empresa pode usar. Um cartão de modelo com números de avaliação, que o converte de uma arquitetura numa afirmação. Ou um artigo — sendo a forma mais provável o trabalho de região para imagem que tornou o primeiro ZwZ interessante, aplicado a uma torre de visão com o triplo do tamanho.

Até que um deles se concretize, trate o ZwZ2-9B como aquilo que a listagem de arquivos diz que ele é: um derivado do Qwen3.5-9B com 9,4 bilhões de parâmetros e um template de chat personalizado, publicado por um laboratório que ainda não disse a ninguém por quê. Os pesos são reais. A história ainda não foi escrita, e a posição honesta é que ninguém fora da inclusionAI pode escrevê-la.

Nada disso é hipotético: as falhas de IA documentadas e os incidentes com agentes por trás de lançamentos como este estão reunidos no Arquivo de Incidentes de IA da OrcaRouter, onde cada entrada traz as suas próprias fontes, gravidade, grau de confiança e sinalização de contestação.