Calculadora de VRAM para entrenar un LLM
Datos de entrada
| Parámetros | 7 |
|---|---|
| Memoria por parámetro | Adam de precisión mixta (16 bytes/parámetro) |
| Memoria de activaciones | 0 |
Calculadora de VRAM para entrenar un LLM
Estima la VRAM de GPU necesaria para hacer fine-tuning completo de un modelo de lenguaje grande a partir de su número de parámetros, la elección del optimizador y la memoria de activaciones, usando la regla de precisión mixta con Adam de 16 bytes por parámetro.
Datos de entrada
Modelo
Activaciones
Resultados
Introduce un valor para ver los resultados.
Detalles
VRAM para entrenar un LLM
Hacer fine-tuning completo de un modelo de lenguaje grande necesita mucha más memoria de GPU que ejecutarlo, y la razón es el optimizador. La inferencia retiene solo los pesos, pero el entrenamiento debe mantener además un gradiente por cada parámetro y el estado en curso del optimizador, y luego sumar las activaciones almacenadas durante el paso hacia adelante. Esta calculadora estima la VRAM total para el fine-tuning completo a partir del número de parámetros, el coste de memoria por parámetro del optimizador y una cifra de activaciones introducida por separado.
Los estados del modelo dominan
El mayor coste fijo del entrenamiento son los estados del modelo: los pesos, sus gradientes y el estado del optimizador. Con parámetros en miles de millones y bytes por parámetro, los estados del modelo ocupan
M=N⋅B GBLa cifra estándar para el entrenamiento en precisión mixta con Adam es 16 bytes por parámetro, que se descompone así: dos bytes para el peso de 16 bits usado en el paso hacia adelante, dos para su gradiente de 16 bits, cuatro para una copia maestra del peso en 32 bits conservada por estabilidad numérica, y cuatro para cada una de las dos estimaciones de momento de Adam —el momento y la varianza. Eso da por cada parámetro. Los optimizadores más económicos reducen los términos del estado del optimizador: Adam de 8 bits almacena sus momentos con menor precisión, en torno a 12 bytes por parámetro, y SGD con momento necesita unos 8.
Las activaciones se introducen por separado
Los estados del modelo quedan fijos en cuanto se eligen el modelo y el optimizador, pero las activaciones no. Son los valores intermedios cacheados durante el paso hacia adelante para que el paso hacia atrás pueda calcular los gradientes, y su tamaño escala con el tamaño de lote y la longitud de secuencia, no con el número de parámetros. Por esa independencia, esta calculadora toma la memoria de activaciones como su propia entrada y simplemente la suma:
V=M+Adonde es la memoria de activaciones en GB. La memoria de activaciones se puede medir ejecutando un único paso de entrenamiento y leyendo el uso máximo, o recortar drásticamente con el checkpointing de activaciones, que las recalcula en el paso hacia atrás en lugar de retenerlas.
Ejemplo resuelto
Tomemos un modelo de 7 mil millones de parámetros con fine-tuning en precisión mixta con Adam y, para empezar, sin estimación de activaciones:
MV=7×16=112 GB=112+0=112 GBLos estados del modelo por sí solos son 112 GB —ya por encima de un único acelerador de 80 GB. Sumar unos 20 GB realistas de activaciones lleva el total a 132 GB, lo que deja clara la cuestión: incluso un modelo de 7B, trivial de servir en inferencia de 16 bits, no se puede entrenar por completo en una sola GPU convencional. La memoria mucho menor que basta para ejecutar el modelo se trata en la Calculadora de VRAM para inferencia de LLM.
Por qué LoRA cambia el panorama
La mayor parte de los 16 bytes por parámetro son el gradiente y el estado del optimizador, y esos existen solo para los parámetros que se entrenan. LoRA congela los pesos base y entrena pequeños adaptadores de rango bajo, así que los gradientes y el estado del optimizador cubren muy por debajo del uno por ciento de los parámetros. Los pesos congelados siguen ocupando memoria, pero eliminar el término más grande es lo que permite que un modelo que necesita 132 GB para el fine-tuning completo quepa en cambio en una sola tarjeta de 24 GB. El tamaño de esos adaptadores, y cómo el rango los controla, se explora en la Calculadora de parámetros de LoRA. Conviene tratar la cifra de aquí como una estimación de planificación y confirmarla contra un paso de entrenamiento real, ya que los buffers temporales y las reservas del framework mueven el número verdadero.
Preguntas frecuentes (FAQ)
¿De dónde salen los 16 bytes por parámetro?
El entrenamiento en precisión mixta con el optimizador Adam mantiene varias copias de cada parámetro. Dos bytes guardan el peso de 16 bits usado en el paso hacia adelante y otros dos guardan su gradiente de 16 bits. El optimizador Adam mantiene además una copia maestra del peso en 32 bits (cuatro bytes) más dos estimaciones de momento de 32 bits —el momento y la varianza— a cuatro bytes cada una.
La suma da 2 + 2 + 4 + 4 + 4 = 16 bytes por parámetro, que es la estimación estándar de los estados del modelo en el fine-tuning completo.
¿Por qué LoRA necesita tanta menos memoria?
El fine-tuning completo arrastra gradientes y estado del optimizador para cada parámetro, que es el grueso de los 16 bytes por parámetro. LoRA congela los pesos originales y entrena solo pequeñas matrices adaptadoras de rango bajo, así que los gradientes y el estado del optimizador existen para una fracción mínima de los parámetros —a menudo muy por debajo del uno por ciento.
Los pesos base congelados siguen ocupando memoria, pero no necesitan gradiente ni estado del optimizador, lo que elimina el término más grande y permite hacer fine-tuning de modelos grandes en una sola GPU. El tamaño de esos adaptadores se explora en la calculadora de parámetros LoRA.
¿Cómo se estima la memoria de activaciones?
La memoria de activaciones es el almacenamiento de los valores intermedios que se conservan durante el paso hacia adelante para poder calcular los gradientes en el paso hacia atrás. A diferencia de los estados del modelo, escala con el tamaño de lote y la longitud de secuencia en vez de con el número de parámetros, por eso se introduce por separado aquí.
Se puede medir directamente ejecutando un único paso de entrenamiento y leyendo el pico de memoria, o reducir drásticamente con el checkpointing de activaciones, que las recalcula en el paso hacia atrás en lugar de almacenarlas. Para una planificación aproximada, conviene empezar en cero para ver el suelo de los estados del modelo y luego sumar una cifra medida.
Aviso legal
Esta es una estimación de primer orden de la memoria para el fine-tuning completo. Omite buffers temporales, sobrecarga de comunicación y reservas específicas del framework, y trata las activaciones como una única cifra introducida. Conviene confirmarla contra un paso de entrenamiento real antes de dimensionar el hardware.