GaLore: Entrenamiento Eficiente en Memoria de Modelos de Lenguaje mediante Proyección de Gradientes de Bajo RangoGaLore: Memory-Efficient LLM Training by Gradient Low-Rank Projection
El entrenamiento de modelos de lenguaje grandes (LLMs, por sus siglas en inglés) presenta desafíos significativos de memoria, principalmente debido al creciente tamaño de los pesos y los estados del optimizador. Los enfoques comunes para reducir la memoria, como la adaptación de bajo rango (LoRA), añaden una matriz de bajo rango entrenable a los pesos preentrenados congelados en cada capa, reduciendo los parámetros entrenables y los estados del optimizador. Sin embargo, estos enfoques suelen tener un rendimiento inferior al entrenamiento con pesos de rango completo tanto en las etapas de preentrenamiento como de ajuste fino, ya que limitan la búsqueda de parámetros a un subespacio de bajo rango y alteran la dinámica del entrenamiento, además de que pueden requerir un inicio cálido con rango completo. En este trabajo, proponemos Proyección de Bajo Rango de Gradiente (GaLore), una estrategia de entrenamiento que permite el aprendizaje de parámetros completos pero es más eficiente en memoria que los métodos comunes de adaptación de bajo rango como LoRA. Nuestro enfoque reduce el uso de memoria hasta un 65.5% en los estados del optimizador, manteniendo tanto la eficiencia como el rendimiento en el preentrenamiento de las arquitecturas LLaMA 1B y 7B con el conjunto de datos C4 con hasta 19.7 mil millones de tokens, y en el ajuste fino de RoBERTa en tareas de GLUE. Nuestra versión de 8 bits de GaLore reduce aún más la memoria del optimizador hasta un 82.5% y la memoria total de entrenamiento en un 63.3%, en comparación con una línea base BF16. Notablemente, demostramos, por primera vez, la viabilidad de preentrenar un modelo de 7B en GPUs de consumo con 24GB de memoria (por ejemplo, NVIDIA RTX 4090) sin estrategias de paralelismo de modelos, checkpointing o descarga.