Cómo aprenden realmente los modelos, del descenso por gradiente básico a Adam
La acumulación de gradiente simula un lote más grande cuando la memoria es limitada. En lugar de dar un paso tras cada micro-lote, sumas los gradientes de varios micro-lotes, y luego das un solo paso del optimizador.
El tamaño de lote efectivo es el tamaño del micro-lote multiplicado por el número de pasos de acumulación. Esto permite que una GPU pequeña se comporte más como si hubiera entrenado con un lote más grande.
Un barril de lluvia capta la idea. Una taza pequeña no puede regar todo el jardín de una vez, así que viertes varias tazas en un barril y luego usas la cantidad del barril. La acumulación de gradiente recoge varias contribuciones pequeñas de gradiente antes de una actualización. La figura de abajo es literalmente este proceso: cada término nuevo es una taza, y las barras que suben son el barril llenándose hacia su total. La acumulación de gradiente es una suma parcial de gradientes que cobras de golpe como un solo paso.