- Conmutar
- Computar
- Deducir
- Probabilidad
- Información
- Vectores
- Derivadas
- Optimizar
- Neuronas
- Generalizar
- Atención
- LLM
Capítulo 07 · Optimización
Bajar la montaña a ciegas
Entrenar un modelo es buscar el punto más bajo de un paisaje con miles de millones de dimensiones, en plena niebla y sintiendo solo la pendiente bajo los pies. El descenso de gradiente, que Cauchy inventó en 1847 para calcular órbitas, sigue siendo el algoritmo que entrena todos los LLM.
En este capítulo
En 1847 Augustin-Louis Cauchy presentó ante la Academia de Ciencias de París una nota de tres páginas titulada «Método general para la resolución de sistemas de ecuaciones simultáneas». Le interesaban los cálculos astronómicos: determinar la órbita de un cuerpo celeste a partir de observaciones lleva a sistemas de ecuaciones que no se pueden resolver de forma exacta. Su propuesta fue convertir el problema en minimizar una función que mide el error y bajar por ella paso a paso, siempre en la dirección de mayor pendiente. Había inventado el descenso de gradiente.
El algoritmo
Partimos de unos parámetros cualesquiera y repetimos:
El gradiente, que la retropropagación calcula de forma barata, indica la dirección de máxima subida, así que avanzamos en sentido contrario. El número es la tasa de aprendizaje (learning rate): el tamaño del paso. Es el hiperparámetro más importante de cualquier entrenamiento.
¿Cuándo funciona? Convexidad y suavidad
Para garantizar que el algoritmo funciona hacen falta dos condiciones sobre el paisaje. Una función es convexa si el segmento entre dos puntos cualesquiera de su gráfica queda por encima de ella, es decir, si tiene forma de cuenco. Es -suave si su gradiente no cambia más deprisa que : .
Si es convexa, todo mínimo local es un mínimo global. Si además es diferenciable, basta para que sea un mínimo global.
Si es convexa y -suave y se usa , entonces tras pasos
Si además es -fuertemente convexa, la convergencia es geométrica: el error se multiplica en cada paso por, como mucho, .
El caso cuadrático, donde todo se ve
Tomemos con simétrica y valores propios . Como , el algoritmo hace . En la base de vectores propios, cada coordenada evoluciona por separado:
Converge si y solo si para todo , es decir, si . Si , esa coordenada cambia de signo en cada paso (el zigzag). La dirección más lenta es la de , y con el mejor el error se reduce por paso en un factor , donde es el número de condición. Los valles estrechos y alargados ( grande) son lentos.
Las redes neuronales no son convexas: su paisaje de pérdida está lleno de mínimos locales, mesetas y puntos de silla. Ningún teorema clásico garantiza que el descenso de gradiente encuentre allí un buen mínimo, y aun así lo encuentra una y otra vez. Algunas explicaciones parciales: en dimensión alta casi todos los puntos críticos son puntos de silla y no mínimos (Dauphin et al., 2014), y en redes muy sobreparametrizadas la mayoría de los mínimos locales son casi tan buenos como el global. Es una de las grandes preguntas abiertas del campo.
Inercia: momento y aceleración
En un valle alargado, el gradiente apunta casi siempre hacia las paredes y no hacia el fondo. Boris Polyak propuso en 1964 el método de la bola pesada: acumular una velocidad que promedia los gradientes anteriores,
Las oscilaciones se cancelan y el avance en la dirección buena se acumula. En 1983 Yurii Nesterov encontró una variante que alcanza error en lugar de para funciones convexas suaves, y demostró que es lo mejor posible:
Ningún método que solo use gradientes puede garantizar, para todas las funciones convexas y -suaves (en dimensión suficientemente alta), un error menor que tras pasos. El método acelerado de Nesterov alcanza ese orden.
Descenso de gradiente estocástico
La pérdida de un LLM es una media sobre billones de palabras de entrenamiento: . Calcular el gradiente exacto en cada paso exigiría recorrer todos los datos. La alternativa es estimarlo con un minilote aleatorio de unos pocos ejemplos:
La estimación es ruidosa pero insesgada: en media apunta bien. Herbert Robbins y Sutton Monro demostraron en 1951 que este tipo de procedimiento converge si la tasa de aprendizaje decrece al ritmo adecuado.
En condiciones de regularidad, la aproximación estocástica converge si las tasas cumplen
por ejemplo con . La primera condición asegura que se puede llegar a cualquier sitio y la segunda, que el ruido acaba apagándose.
Por eso en la práctica se usan siempre lotes pequeños: muchos pasos baratos y ruidosos ganan a pocos pasos caros y exactos. Además, el ruido parece ayudar a escapar de mínimos «afilados» y a encontrar otros más «planos», que suelen generalizar mejor.
Adam: una tasa de aprendizaje para cada parámetro
Los parámetros de una red no se parecen entre sí: algunos reciben gradientes enormes y otros diminutos. En 2014 Diederik Kingma y Jimmy Ba propusieron Adam, que combina el momento con una normalización por la magnitud reciente de cada gradiente:
Aquí y son las medias corregidas por el sesgo inicial. Su variante con decaimiento de pesos desacoplado, AdamW (2017), es el optimizador con el que se entrenan prácticamente todos los LLM actuales, casi siempre con una tasa que sube durante un calentamiento inicial y después decae, en la línea de lo que pedían Robbins y Monro.
Ya tenemos un procedimiento general para ajustar parámetros. La pregunta siguiente es qué familia de funciones parametrizar, y ahí aparece la idea más antigua de la IA: imitar a las neuronas.
Referencias
- A.-L. Cauchy (1847). «Méthode générale pour la résolution des systèmes d'équations simultanées». Comptes Rendus de l'Académie des Sciences, 25.
- H. Robbins y S. Monro (1951). «A Stochastic Approximation Method». Annals of Mathematical Statistics, 22(3).
- B. T. Polyak (1964). «Some methods of speeding up the convergence of iteration methods». USSR Computational Mathematics and Mathematical Physics, 4(5).
- Y. Nesterov (1983). «A method for solving the convex programming problem with convergence rate O(1/k²)». Doklady Akademii Nauk SSSR, 269.
- Y. Dauphin et al. (2014). «Identifying and attacking the saddle point problem in high-dimensional non-convex optimization». NeurIPS.
- D. P. Kingma y J. Ba (2015). «Adam: A Method for Stochastic Optimization». ICLR.
- I. Loshchilov y F. Hutter (2019). «Decoupled Weight Decay Regularization». ICLR.
- S. Bubeck (2015). «Convex Optimization: Algorithms and Complexity». Foundations and Trends in Machine Learning, 8(3–4).