¿Qué es VRAM y por qué es importante para LLMs?

VRAM (Memoria de Acceso Aleatorio de Video) es la memoria dedicada en tu tarjeta gráfica utilizada para almacenar datos para cálculos de GPU. Al ejecutar Modelos de Lenguaje Grande (LLMs) localmente, todos los pesos del modelo deben caber en VRAM para una inferencia eficiente. A diferencia de la RAM del sistema, VRAM proporciona el ancho de banda alto necesario para los cálculos paralelos que hacen que los LLMs funcionen.

Quedarse sin VRAM obliga al sistema a intercambiar datos entre la memoria de GPU y la RAM del sistema, ralentizando dramáticamente la generación de texto. En muchos casos, si un modelo no cabe en VRAM, simplemente no se ejecutará. Esto hace que calcular los requisitos de VRAM sea esencial antes de descargar o intentar ejecutar cualquier LLM local.

¿Cómo se calcula VRAM para LLMs?

El uso de VRAM para LLMs consta de tres componentes principales:

  1. Pesos del modelo: Los parámetros de la red neuronal central. Un modelo de 7B parámetros en FP16 (16 bits) utiliza aproximadamente 14 GB, mientras que el mismo modelo cuantizado a 4 bits utiliza solo ~4 GB.

  2. KV Cache: Durante la generación de texto, el modelo almacena pares clave-valor de tokens anteriores. Este cache crece con la longitud del contexto y puede consumir varios gigabytes para conversaciones largas.

  3. Overhead: Los kernels CUDA, tensores de activación y overhead del framework típicamente añaden 10-15% a los requisitos base.

La fórmula para el tamaño del modelo es: (Parámetros × Bits por peso) ÷ 8 = Tamaño en bytes

Descripción de la herramienta

Esta calculadora estima la VRAM requerida para ejecutar un Modelo de Lenguaje Grande localmente en tu GPU. Ingresa el conteo de parámetros de tu modelo, selecciona un formato de cuantización y especifica tu VRAM disponible para ver instantáneamente si el modelo cabe y qué longitud de contexto puedes soportar.

La herramienta soporta todos los formatos de cuantización comunes de llama.cpp incluyendo variantes GGUF Q2 a Q8, así como precisión estándar FP16 y FP32. También calcula la longitud máxima de contexto que tu GPU puede manejar dada su capacidad de VRAM.

Características

  • 20+ formatos de cuantización: Soporte completo para tipos de cuantización GGUF (Q2_K a Q8_0), i-quants (IQ2-IQ4) y precisiones estándar (FP16, FP32, BF16)
  • Presets de modelos populares: Selección rápida para tamaños de modelo comunes de 1B a 405B parámetros incluyendo modelos Llama 3, Mistral, Qwen y Phi
  • Presets de GPU: Cantidades de VRAM preconfiguradas para GPUs populares de consumidor y profesionales desde GTX 1650 hasta H100
  • Cálculo de longitud de contexto: Calcula automáticamente la ventana de contexto máxima que tu GPU puede soportar
  • Resultados en tiempo real: Retroalimentación instantánea mientras ajustas parámetros

Casos de uso

Antes de descargar un modelo: Verifica si un modelo se ejecutará en tu hardware antes de gastar tiempo descargando un archivo de 50+ GB. Sabe de antemano qué nivel de cuantización necesitas para ajustarse a tu GPU.

Optimizando configuraciones de inferencia: Encuentra el punto óptimo entre calidad del modelo (cuantización más alta) y longitud de contexto. A veces bajar de Q6 a Q4 te permite duplicar tu ventana de contexto.

Planificando actualizaciones de GPU: Compara cómo diferentes GPUs manejarían tus modelos objetivo. Ve exactamente cuánta VRAM necesitas para ejecutar Llama 70B u otros modelos grandes cómodamente.

Formatos de cuantización soportados

Formato Bits/Peso Mejor Para
FP32 32.0 Precisión máxima, investigación
FP16/BF16 16.0 Entrenamiento, inferencia de alta calidad
Q8_0 8.5 Calidad casi sin pérdidas
Q6_K 6.56 Alta calidad con buena compresión
Q5_K_M 5.69 Calidad equilibrada y tamaño
Q4_K_M 4.85 Opción popular para GPUs de consumidor
Q4_0 4.5 Buena compresión, ligera pérdida de calidad
Q3_K_M 3.65 Compresión agresiva
Q2_K 2.63 Compresión máxima, pérdida de calidad notable
IQ4_XS 4.25 4 bits optimizado con pesos de importancia
IQ3_XXS 3.06 Ultra-bajo bit experimental
IQ2_XXS 2.06 Compresión extrema

Cómo funciona

La calculadora utiliza estas fórmulas:

Tamaño del Modelo (GB) = (Parámetros en miles de millones × 10⁹ × bits por peso) ÷ 8 ÷ 10⁹

KV Cache (GB) ≈ (Parámetros × Longitud de Contexto ÷ 1000 × 0.5) ÷ 1000

VRAM Total = Tamaño del Modelo + KV Cache + 10% overhead

La fórmula de KV cache es una aproximación simplificada. El tamaño real de KV cache depende de la arquitectura del modelo (número de capas, cabezas de atención y dimensiones de cabeza), pero esta estimación funciona bien para la mayoría de LLMs basados en transformers.

Consejos

  • Comienza con Q4_K_M: Esta cuantización ofrece el mejor equilibrio de calidad y tamaño para la mayoría de casos de uso
  • Deja espacio libre: Apunta a 1-2 GB de VRAM libre para evitar errores de falta de memoria durante generaciones más largas
  • Considera necesidades de contexto: Si necesitas contexto largo (8K+), es posible que necesites usar cuantización más agresiva
  • Múltiples GPUs: Para configuraciones multi-GPU, a menudo puedes dividir modelos entre tarjetas, pero esta calculadora asume uso de GPU única

Limitaciones

  • Las estimaciones de KV cache son aproximaciones basadas en arquitecturas transformer típicas
  • El uso real de VRAM varía según el framework de inferencia (llama.cpp, vLLM, TensorRT-LLM)
  • No cuenta para overhead de inferencia por lotes o decodificación especulativa
  • Flash Attention y otras optimizaciones pueden reducir requisitos reales
  • Algunos modelos tienen arquitecturas no estándar que pueden usar más o menos memoria

Preguntas Frecuentes

P: ¿Por qué mi modelo usa más VRAM que lo calculado? R: La calculadora proporciona estimaciones base. Los frameworks de inferencia añaden su propio overhead, y algunas operaciones requieren buffers temporales que aumentan el uso máximo.

P: ¿Puedo ejecutar modelos más grandes que mi VRAM usando offloading de CPU? R: Sí, herramientas como llama.cpp soportan offloading parcial de GPU, pero el rendimiento cae significativamente. Esta calculadora se enfoca en inferencia completa de GPU.

P: ¿Qué cuantización debo usar? R: Para la mayoría de usuarios, Q4_K_M ofrece excelente calidad con ~4.85 bits por peso. Si tienes VRAM de sobra, Q5_K_M o Q6_K proporcionan calidad marginalmente mejor. Solo usa formatos Q2/Q3 si es absolutamente necesario.

P: ¿Qué tan precisas son estas estimaciones? R: Dentro de 10-20% para la mayoría de modelos comunes. El uso real depende de la arquitectura específica del modelo, backend de inferencia y configuraciones en tiempo de ejecución.