Cada modelo de IA nuevo rompe las herramientas. Hice un motor al que no le pasa.
Cada vez que sale una arquitectura nueva, los programas que ejecutan modelos de IA hay que reescribirlos casi desde cero. Me cansé de eso y construí un motor con una única pieza intercambiable. Te lo enseño por dentro.
Un modelo de IA es, por dentro, una torre de capas idénticas apiladas. Cada capa hace dos cosas: mezcla información entre las palabras (la parte famosa, la "atención") y luego piensa sobre cada palabra por separado. La torre entera se repite decenas de veces y de ahí sale la respuesta.
El problema práctico es este: cada laboratorio publica su modelo con una forma ligeramente distinta de hacer esa mezcla. Uno usa atención clásica. Otro la comprime para ahorrar memoria. El de este mes se inventa una "atención lineal" que no vuelve a leer el pasado. Y los programas que ejecutan estos modelos —los motores de inferencia— suelen tener un fichero enorme y distinto por cada arquitectura. Sale un modelo nuevo, toca copiar-pegar-y-rezar.
La idea: una sola costura
La observación clave es que las arquitecturas modernas solo se diferencian en cómo mezclan información entre palabras. Todo lo demás —normalizar, la parte de "pensar", apilar capas— es idéntico. Así que en coco todo eso es código genérico escrito una vez, y la única parte que cambia es un hueco con forma de enchufe: el SequenceMixer.
Un SequenceMixer es un contrato: "dame las palabras, devuélveme las palabras mezcladas". Cualquier forma de atención que respete ese contrato encaja en el hueco. Hoy tengo tres piezas que encajan:
Míralo funcionando
Aquí tienes el motor generando una respuesta. A la derecha, la telemetría: cada token que sale atraviesa las 24 capas del modelo, y cada capa consulta a su mixer. Fíjate cómo las capas de atención completa tienen que releer todo el contexto (sube la barra de "relee memoria"), mientras que las de atención lineal guardan un estado fijo y apenas gastan. Dale al play:
↑ Ilustración del diseño con una torre híbrida 3:1 (estilo Qwen3.5). Hoy corren de verdad Qwen (todo atención completa) y DeepSeek (todo MLA); la pieza GatedDeltaNet está validada y entrando.
Por qué me importa
Porque el ritmo de arquitecturas nuevas no va a bajar — va a subir. Un motor que trata cada modelo como un caso especial se pasa la vida persiguiendo al último paper. Un motor con una sola costura convierte "soportar el modelo de moda" en un trabajo de tarde, no de mes.
Y hay una honestidad incómoda en todo esto que me gusta enseñar: la quinta arquitectura (una híbrida muy reciente) coco la reconoce pero todavía se niega a ejecutarla, con un mensaje de error que te dice exactamente qué falta por enchufar. Prefiero un "todavía no" ruidoso y sincero a un camino verde falso. Pero esa es otra entrada.
Siguiente en la bitácora: cómo traduje una "atención" nueva a Rust sin fallar ni un decimal — la disciplina de validar contra la verdad antes de cablear nada.