Solucionar la acumulación de gradiente defectuosa: comprender el problema y su resolución

¿Años de entrenamiento de modelos subóptimo?

Imagen del autor

Cuando se ajustan localmente modelos de lenguajes grandes (LLM), el uso de lotes de gran tamaño suele resultar poco práctico debido al consumo sustancial de memoria de la GPU. Para superar esta limitación, se utiliza una técnica llamada acumulación de gradiente se utiliza comúnmente para simular tamaños de lotes más grandes. En lugar de actualizar los pesos del modelo después de procesar cada lote, la acumulación de gradientes implica sumar los gradientes en varios minilotes más pequeños. Los pesos del modelo se actualizan solo después de que se haya procesado un número predeterminado de estos minilotes. Este método imita eficazmente el entrenamiento con un tamaño de lote mayor sin la sobrecarga de memoria que normalmente se asocia con él.

Por ejemplo, establecer un tamaño de minilote de 1 y acumular gradientes en 32 minilotes debería ser equivalente a entrenar con un tamaño de lote completo de 32. Sin embargo, descubrí que la acumulación de gradientes a menudo da como resultado una degradación significativa del rendimiento en comparación con el entrenamiento con tamaños más grandes. tamaños de lotes reales con marcos populares de aprendizaje profundo como Transformers.

Después de compartir este problema en incógnita y RedditDaniel Han de IA no perezosa replicó el problema. Descubrió que estaba afectando no solo la acumulación de gradiente sino también las configuraciones de múltiples GPU. En tal…