From code to weights:
ML fundamentals for engineers
Ya sabes qué es una tabla de búsqueda, cuánto cuesta un pipeline y qué te da un sistema de tipos. Al pasar a la ingeniería de ML, ese conocimiento te sigue sirviendo, solo que cambia de sitio. Cada parte toma un concepto, lo explica desde la ingeniería, lee un fichero real y señala una sola cosa que no se comporta como en el software.
Siguiente · Parte 11, el
Empieza aquí Qué da por sabido esta serie También lo que a propósito no da por sabido y adónde ir antes si te falta algo.Léelas en orden
Fundamentos de ML
Un modelo no lee texto: lo que el tokenizador decide por ti
El tokenizador parece ir delante del modelo, pero va dentro. Leo en el BPE de tiktoken qué fija antes del primer peso: vocabulario, coste y límite de contexto.
Fundamentos de ML
Un embedding es una tabla de consulta, y todo lo demás es cómo se rellena
Es la fila de una matriz indexada por id. La ciencia está en cómo se rellena; la ingeniería, en que no hay migración de esquema: otro modelo invalida tu índice.
Fundamentos de ML
Las formas son el sistema de tipos del ML, y nadie las comprueba por ti
[B, T, d] es una firma de función que el runtime nunca verifica, y por eso un eje equivocado solo da error cuando los tamaños difieren. Si coinciden, la operación se resuelve por broadcasting, devuelve números plausibles y el bug llega a producción.
Fundamentos de ML
La atención es una media ponderada aprendida y su coste está en el cuadrado
Un diccionario difuso cuyos pesos calcula el modelo a partir de su propia entrada. La idea es barata, pero la matriz de pesos es de T por T, así que el coste lo ponen los datos y en el código no se ve.
Fundamentos de ML
Un bloque de transformer son seis tensores y un bus: léelo como un pipeline
Leído línea a línea y con las formas al margen, un bloque de transformer son seis tensores sobre un flujo residual. Dos tercios de sus pesos están en la red feed-forward, y a medida que crece el contexto el coste se desplaza a la atención.
Fundamentos de ML
GPT-2 es el transformer más cinco decisiones, y la inferencia es otro programa
Un mismo artefacto ejecuta dos programas: el entrenamiento hace una sola pasada hacia delante, en paralelo, sobre la secuencia, y la generación es un bucle secuencial con caché. Los pesos son los mismos y los bugs, distintos.
Fundamentos de ML
De GPT-2 a Llama: cuatro cambios y el motivo de cada uno
Posiciones rotatorias, RMSNorm, feed-forward con puerta y grouped-query attention son cuatro retoques locales que se justifican más con mediciones que con teoría, y cada uno queda grabado en los pesos.
Fundamentos de ML
Pérdida y gradientes sin fórmulas: la retropropagación es recorrer un grafo
La retropropagación recorre un grafo hacia atrás aplicando la regla de la cadena. Leída como código, explica por qué los gradientes se desvanecen o explotan y por qué un bug en el gradiente se queda en una curva algo torcida, sin stack trace.
Fundamentos de ML
La tasa de aprendizaje es el hiperparámetro que rompe producción
Adam y el schedule son decisiones de ingeniería que las matemáticas no dictan. Nada valida la configuración: un valor malo diverge a las 30 horas y tumba la ejecución.
Fundamentos de ML
El fine-tuning es mala herramienta para añadir conocimiento: tres fases de entrenamiento y el atajo de bajo rango
El preentrenamiento y el fine-tuning comparten pérdida y se distinguen por una máscara. LoRA entrena dos matrices estrechas al lado de los pesos congelados. Los hechos que se enseñan con fine-tuning entran despacio y traen una confianza inmerecida: mi modelo dio Moscú como capital de un país que no existe.
Fundamentos de ML
Servir un modelo es un problema de memoria: prefill, decodificación y la caché KV
La decodificación lee todos los pesos en cada token, así que al servir un modelo te quedas sin ancho de banda de memoria mucho antes que sin cómputo. En mi portátil, leer los pesos se llevó el 84 % de cada paso con una sola secuencia, y un modelo híbrido pagó 5,5 ms por cada secuencia de más, cuando la aritmética predecía menos de 0,5. Cerca de la capacidad, el primer token tardaba segundos en llegar, y a media carga el percentil 99 de esa espera fue más de diez veces mayor en unas ejecuciones que en otras con casi la misma tasa.
Fundamentos de ML
A gran escala manda la memoria: precisión mixta y los tres paralelismos
He medido en un portátil adónde van los bytes de un entrenamiento: con precisión mixta seguían siendo 16 bytes por parámetro, la mitad de las activaciones eran matrices de atención y FSDP dividió por ocho el estado de cada proceso a cambio de 1,5 veces el tráfico del paralelismo de datos simple.