El repositorio numbat, subido a Hugging Face por la cuenta anónima burner22, se presenta como un checkpoint de mitad del preentrenamiento del próximo modelo de clase Mythos de Anthropic: unos 14 billones de parámetros, 114 capas, 772 fragmentos y alrededor de 7,72 TB en total. Se creó el 23 de octubre y se difundió entre desarrolladores hacia el 1 de noviembre; en poco más de un día, el área de debate abrió 31 hilos.
La conclusión de la última auditoría comunitaria es directa: buena parte de estos archivos son números pseudoaleatorios generados usando el nombre del tensor como semilla, y el modelo no se ha entrenado.
Bastan unas líneas de código para recalcularlo
El usuario FloxUnder fue el primero en publicar la receta: aplicar SHA-256 al nombre del tensor, tomar los primeros 8 bytes como semilla del generador PCG64, generar una distribución normal estándar y aplicar una transformación fija. En las capas de normalización se usa exp(0.06z) y los núcleos de convolución se multiplican por 1/6. Con esta receta reprodujo, bit a bit, 43 tensores completos, con un total de 730368 valores.
El usuario ressl descargó después los 784 archivos, 7,01 TiB en total, para verificarlos. Las 289 capas de normalización y los 258 núcleos de convolución coincidieron byte a byte; en 24 tensores NVFP4 muestreados, con 192 millones de elementos, la coincidencia del bit de signo fue del 100 %.
Nosotros también lo comprobamos. La redacción escribió un script de verificación según la receta pública, que solo usa solicitudes HTTP Range para leer la cabecera del primer fragmento y dos tensores; no descargamos el modelo ni ejecutamos ningún código del repositorio. Los 12288 valores de model.layers.0.input_layernorm.weight y los 24576 valores de model.layers.0.self_attn.k_conv1d.weight, una vez recalculados, son idénticos al contenido del archivo. Solo verificamos estos dos tensores; la conclusión sobre el conjunto procede de la auditoría de los dos usuarios mencionados.
El envoltorio apenas tiene fallos
Lo engañoso del caso es que todas las comprobaciones de estructura se superan. El informe de ressl señala que los SHA-256 de los 784 archivos coinciden, que más de 1,57 millones de entradas del índice se corresponden una a una con las cabeceras de los fragmentos, sin faltas ni sobrantes, y que la carga de los pesos en modo estricto tampoco da error. El apartado «Por qué es creíble» de la descripción del repositorio cita justamente este tipo de autoconsistencia.
Un nivel más abajo, la fachada se cae:
- Distribución de valores incorrecta: si fuera una distribución normal cuantizada a NVFP4, cerca de seis décimas partes de los medios bytes deberían ser 0, pero se midió solo un 10 %;
- Tabla de escalas demasiado pequeña: en el primer fragmento, más de 2,16 millones de valores de escala por bloque tienen solo 45 valores distintos;
- Registro de entrenamiento demasiado plano: el loss de los últimos 400 pasos oscila entre 1,0359 y 1,0649, sin el descenso que cabría esperar cerca del final del entrenamiento;
- Tokenizador antiguo: la regla de segmentación es la expresión regular de GPT-2 y el vocabulario no contiene ni un solo token de caracteres chinos, japoneses o coreanos;
- El número de parámetros no cuadra: el recuento automático de Hugging Face da 6,8 billones, mientras que el repositorio afirma unos 14 billones.
La auditoría también marca sus límites. Tensores como lm_head y A_log no coinciden con las semillas derivadas del nombre; ressl considera que siguieron otra vía aleatoria. No sostiene que todos los tensores puedan deducirse del nombre, y solo insiste en un punto:
“I am claiming the model is not trained.”
(Sostengo que el modelo no ha sido entrenado.)
FloxUnder también admite que, mirando solo esos 43 tensores, no se puede descartar lógicamente que esos parámetros se congelaran a propósito durante el entrenamiento, por lo que pide a quien subió los archivos que muestre la configuración de entrenamiento. Hasta el cierre de esta nota, ambas auditorías proceden de usuarios de la comunidad, sin respaldo de terceros; quién es la persona que subió los archivos y qué busca no se puede verificar por ahora.
El nombre en clave es real, los pesos son otra cosa
La palabra numbat sí tiene origen. En el código fuente de Claude Code filtrado en marzo de este año, prompts.ts contiene un comentario que dice que cierto fragmento debe borrarse cuando el modelo salga, y el nombre que menciona es numbat. La descripción del repositorio lo presenta como la prueba principal.
Si se enlazan las filtraciones de este año, la diferencia es clara. A finales de marzo, el exterior conoció Mythos por unos borradores expuestos a causa de un error de configuración del sistema de gestión de contenidos; el incidente de Claude Code, ese mismo mes, dejó al descubierto código del lado del cliente. Ninguno de esos materiales incluía pesos de modelo. El repositorio numbat usa un nombre en clave ya conocido como gancho y lo respalda con un conjunto de archivos que pasan las verificaciones; pero un nombre en clave hecho público lo puede escribir cualquiera en una descripción y no demuestra el origen de los archivos.
Para quienes ya lo descargaron, el riesgo más práctico está en el código. El repositorio incluye modeling_numbat.py y la descripción indica que se puede cargar con trust_remote_code=True; este parámetro ejecuta localmente el código Python del repositorio. No hemos auditado ese código y no podemos decir que sea malicioso, pero en un repositorio de procedencia desconocida este interruptor no debería activarse. Para comprobarlo, se puede seguir el método de la auditoría y leer solo bytes, sin ejecutar nada.
Fuentes: página del modelo y metadatos del repositorio en Hugging Face, mensajes de auditoría de la comunidad n.º 13 y n.º 31, CocoLoop; los resultados byte a byte de los dos tensores fueron recalculados por la redacción según la receta pública, y las cifras globales siguen los mensajes de auditoría.