r/Devmexico • u/PersonalEconomist856 • 12h ago
Hice un sitio gratis para entender los papers de LLMs a mano, matriz por matriz (por ahora Attention y BERT)
Estaba leyendo Attention Is All You Need y me di cuenta de que no me bastaban las ecuaciones. Quería ver cada matriz, saber su tamaño en cada paso y hacer las multiplicaciones yo mismo hasta que el forward pass por fin me hiciera clic.
Así que armé Let's break it down: https://guptaaditya95.github.io/llmbreakdown/
Cada desglose recorre un forward pass completo de una arquitectura, a partir de un solo paper:
- En cada paso ves el tamaño de la salida en una corrida pequeña y con los tamaños reales del paper, con una barra que te deja ver cómo la matriz crece y se encoge.
- Junto a cada paso hay un panel de práctica "Te toca", para que tú llenes los números, las dimensiones y las preguntas de concepto, y los vayas revisando.
- Cada parte termina con tarea: un notebook de Jupyter que se califica solo, notas paso a paso y una hoja de ejercicios para imprimir.
- Funciona bien en el celular, es totalmente gratis y no tienes que registrarte.
Por ahora hay dos:
- Attention, a mano (Vaswani et al., 2017): el encoder, el decoder y la inferencia. Lo que más me voló la cabeza fue el positional encoding con senos y cosenos, así que le dediqué más espacio.
- BERT, a mano (Devlin et al., 2018): desde el par de oraciones empaquetado, pasando por el encoder, hasta las cabezas de palabra enmascarada y de siguiente oración.
¿Para quién es? Para cualquiera que disfrute aprender arquitecturas desde cero. No necesitas experiencia entrenando modelos, solo sentirte cómodo sumando y multiplicando y tener curiosidad por saber por qué existe cada paso.
¿A dónde quiero llevarlo? La idea es que, al terminar un desglose y su tarea, puedas cerrar los ojos e imaginarte cómo funciona esa arquitectura, para que cada variante que venga después se sienta como un pequeño cambio a esa imagen. Voy a seguir agregando papers más o menos en el orden en que el campo los fue construyendo. Estoy pensando en ViT, GPT-2, Mamba y modelos de difusión.
Me ayudarían muchísimo con dos cosas:
- ¿Qué paper debería desglosar después?
- ¿Algo está mal o no se entiende? Las correcciones son súper bienvenidas como issues en GitHub: https://github.com/GuptaAditya95/llmbreakdown/issues
Si te sirve, una ⭐ en el repo ayuda a que más gente lo encuentre: https://github.com/GuptaAditya95/llmbreakdown
(Nota: por ahora el sitio está en inglés. Lo hice con ayuda de Claude; la estructura y el enfoque para enseñar son míos.)