O repositório numbat, publicado no Hugging Face pela conta anónima burner22, apresenta-se como um checkpoint de meio de pré-treino de um futuro modelo da classe Mythos da Anthropic: cerca de 14 biliões de parâmetros, 114 camadas, 772 fragmentos e aproximadamente 7,72 TB no total. Foi criado a 23 de outubro e começou a circular entre programadores por volta de 1 de novembro; em pouco mais de um dia, a área de discussão abriu 31 tópicos.
A conclusão da auditoria comunitária mais recente é direta: uma grande parte destes ficheiros são números pseudoaleatórios gerados com o nome do tensor como semente, e o modelo nunca foi treinado.
Poucas linhas de código chegam para recalcular
O utilizador FloxUnder foi o primeiro a divulgar a receita: calcular o SHA-256 do nome do tensor, usar os primeiros 8 bytes como semente do gerador aleatório PCG64, gerar uma distribuição normal padrão e aplicar uma transformação fixa. Nas camadas de normalização usa-se exp(0.06z), e os núcleos de convolução são multiplicados por 1/6. Com esta receita, reproduziu bit a bit 43 tensores completos, num total de 730368 valores.
O utilizador ressl descarregou depois os 784 ficheiros, 7,01 TiB no total, para os verificar. As 289 camadas de normalização e os 258 núcleos de convolução coincidiram byte a byte; em 24 tensores NVFP4 amostrados, com 192 milhões de elementos, a taxa de coincidência do bit de sinal foi de 100%.
Também fizemos a verificação. A redação escreveu um script de validação com base na receita pública, usando apenas pedidos HTTP Range para ler o cabeçalho do primeiro fragmento e dois tensores; não descarregámos o modelo nem executámos qualquer código do repositório. Os 12288 valores de model.layers.0.input_layernorm.weight e os 24576 valores de model.layers.0.self_attn.k_conv1d.weight, uma vez recalculados, são idênticos ao conteúdo do ficheiro. Só verificámos estes dois tensores; a conclusão sobre o conjunto vem da auditoria dos dois utilizadores acima.
A embalagem quase não tem falhas
O que torna o caso enganador é que todas as verificações de estrutura passam. O relatório de ressl indica: os SHA-256 dos 784 ficheiros batem certo, mais de 1,57 milhões de entradas do índice correspondem uma a uma aos cabeçalhos dos fragmentos, sem falta nem excesso, e o carregamento dos pesos em modo estrito também não dá erro. A secção «Porque é credível», na descrição do repositório, cita precisamente este tipo de autoconsistência.
Um nível abaixo, a fachada cai:
- Distribuição de valores errada: se fosse uma distribuição normal quantizada para NVFP4, cerca de seis décimos dos meios-bytes deveriam ser 0, mas o valor medido é de apenas 10%;
- Tabela de escala demasiado pequena: no primeiro fragmento, mais de 2,16 milhões de valores de escala por bloco têm apenas 45 valores distintos;
- Registo de treino demasiado plano: o loss dos últimos 400 passos oscila entre 1,0359 e 1,0649, sem a descida esperada perto do fim do treino;
- Tokenizador antigo: a regra de segmentação é a expressão regular do GPT-2 e o vocabulário não tem um único token de caracteres chineses, japoneses ou coreanos;
- Número de parâmetros não bate: a contagem automática do Hugging Face dá 6,8 biliões, enquanto o repositório afirma cerca de 14 biliões.
A auditoria também traça limites. Tensores como lm_head e A_log não coincidem com as sementes derivadas do nome; ressl entende que usaram outro caminho aleatório. Não afirma que todos os tensores se derivam do nome, mas mantém um ponto:
“I am claiming the model is not trained.”
(Afirmo que o modelo não foi treinado.)
FloxUnder também admite que, olhando apenas para aqueles 43 tensores, não se pode excluir logicamente a hipótese de estes parâmetros terem sido congelados de propósito durante o treino, pelo que pede a quem fez o upload que apresente a configuração de treino. À data de publicação, ambas as auditorias vêm de utilizadores da comunidade, sem validação de terceiros; quem é o autor do upload e o que pretende não pode, por agora, ser confirmado.
O nome de código é real, os pesos são outra história
A palavra numbat tem de facto origem conhecida. No código-fonte do Claude Code divulgado em março deste ano, o ficheiro prompts.ts tem um comentário a dizer que certo trecho deve ser removido quando o modelo for lançado, e o nome referido é numbat. A descrição do repositório apresenta isto como prova principal.
Ligando as várias fugas deste ano, a diferença é clara. No fim de março, o exterior conheceu o Mythos através de rascunhos expostos por um erro de configuração do sistema de gestão de conteúdos; o incidente do Claude Code, no mesmo mês, expôs código do lado do cliente. Nenhum destes materiais envolvia pesos de modelo. O repositório numbat usa um nome de código já conhecido como isco e depois recorre a um conjunto de ficheiros que passam nas verificações para dar credibilidade; mas um nome de código tornado público pode ser escrito por qualquer pessoa numa descrição e não prova a origem dos ficheiros.
Para quem já descarregou, o risco mais prático está no código. O repositório inclui modeling_numbat.py e a descrição indica que pode ser carregado com trust_remote_code=True; este parâmetro executa localmente o Python que está no repositório. Não auditámos esse código e não podemos dizer que seja malicioso, mas num repositório de origem desconhecida este interruptor não deve ser ativado. Para verificar, é possível seguir o método da auditoria e apenas ler bytes, sem executar nada.
Fontes: página do modelo e metadados do repositório no Hugging Face, publicações de auditoria da comunidade n.º 13 e n.º 31, CocoLoop; os resultados byte a byte dos dois tensores foram recalculados pela redação segundo a receita pública, e os números globais seguem as publicações de auditoria.