Guía de cargas de trabajo de GPU
¿Cuánta VRAM de GPU necesita realmente?
Un presupuesto de memoria práctico para inferencia, ajuste fino, generación de imágenes y cargas de trabajo de video: de 24 GB a 192 GB.
Por AnchorGPU · Actualizado · 6 min de lecturaVRAM es un presupuesto, no una etiqueta de modelo
La memoria de la GPU se consume en varias categorías independientes: pesos del modelo, caché KV de inferencia, activaciones temporales, espacios de trabajo del marco, caché del asignador y, durante el entrenamiento, gradientes y estado del optimizador. Que un modelo quepa en una configuración no demuestra que quepa con un contexto más largo, un lote mayor, una precisión diferente o más solicitudes simultáneas.
Planifique a partir de la revisión exacta del modelo y de la configuración de ejecución. Etiquetas como 7B, 13B o 70B describen la escala de parámetros, no la memoria operativa total, por lo que nunca deben asignarse a una GPU de forma universal.
Estime primero los pesos brutos
Como ejemplo explícitamente hipotético, suponga que un modelo tiene exactamente 13 mil millones de parámetros y almacena cada parámetro en un formato de 16 bits. El almacenamiento bruto de pesos es 13,000,000,000 × 2 bytes = 26,000,000,000 bytes, o aproximadamente 24.2 GiB. Ese número excluye cualquier otra asignación, por lo que es un límite inferior más que una recomendación de GPU.
La cuantización puede reducir el almacenamiento de pesos, pero las huellas reales también incluyen escalas, metadatos, búferes de descuantización, tensores duplicados y espacios de trabajo en tiempo de ejecución. Utilice el formato producido por el cargador real en lugar de dividir el número de parámetros por un ancho de bits nominal y tratar el resultado como definitivo.
La inferencia añade caché KV y memoria de trabajo
El servicio autorregresivo conserva los tensores de clave y valor de las secuencias activas. La demanda de caché KV depende de la arquitectura del modelo, la precisión de la caché, las secuencias concurrentes y el número de tokens activos en esas secuencias. Aumentar el contexto máximo o la concurrencia puede agotar la memoria incluso cuando los pesos se cargan correctamente.
Las activaciones temporales, los espacios de trabajo de atención, los núcleos compilados, los búferes de comunicación y el asignador del marco consumen memoria adicional. vLLM informa de su capacidad de caché KV de GPU disponible y una concurrencia estimada para la longitud de secuencia configurada; trate esas cifras de inicio como evidencia de planificación y luego reproduzca indicaciones representativas antes de comprometer una carga de trabajo de producción.
El entrenamiento tiene una forma de memoria diferente
El ajuste fino añade gradientes, estado del optimizador, activaciones guardadas y, a veces, copias adicionales en precisión completa. Su tamaño exacto depende del optimizador, la política de precisión, el conjunto de parámetros entrenables y la estrategia de fragmentación, por lo que un único multiplicador de inferencia resulta engañoso.
DistributedDataParallel replica el estado de entrenamiento que necesita cada trabajador; no convierte varias GPU en un único grupo de memoria contiguo. Fully Sharded Data Parallel puede fragmentar parámetros, gradientes y estados del optimizador entre los trabajadores, mientras que el checkpointing de activaciones reduce la memoria de activaciones guardadas recalculando trabajo seleccionado durante la retropropagación. Ambas técnicas intercambian simplicidad o cómputo por memoria.
Mide la configuración que vas a ejecutar
Pruebe la carga del modelo y una solicitud de inferencia representativa completa o un paso de entrenamiento, incluida la actualización del optimizador, con el marco, la precisión, el contexto, el lote y la configuración de paralelismo exactos. Registre la memoria máxima asignada y reservada, y repita con concurrencia realista o acumulación de gradientes. Deje margen operativo en lugar de apuntar al último byte disponible.
Elige una GPU con más memoria cuando el pico medido no pueda reducirse de forma segura. Añade GPU solo cuando el software fragmente explícitamente el modelo o la carga de trabajo y se conozca la interconexión entregada. Vuelve a ejecutar la medición tras cualquier cambio de modelo, runtime, cuantización, contexto o lote.
Fuentes y método editorial
La documentación oficial respalda las explicaciones técnicas. Las recomendaciones de hardware son nuestra interpretación dependiente de la carga de trabajo, no una garantía de rendimiento medida.
vLLM — paralelismo y escalado ↗PyTorch — FullyShardedDataParallel ↗PyTorch — checkpointing de activaciones ↗