Skip to content

Capítulo 2: Cálculo de VRAM

Modelo de Estimación de VRAM

Local Inference Calculator usa un modelo de estimación conservador que considera tres componentes principales:

  1. Parámetros del modelo
  2. Overhead del modelo
  3. KV Cache

Fórmula de Cálculo

Desglose Detallado

1. Memoria de Parámetros

python
# Cálculo básico
memoria_parametros = parámetros × bytes_por_parametro

# Ejemplos para un modelo de 7B:
# FP16: 7,000,000,000 × 2 = 14 GB
# INT4: 7,000,000,000 × 0.5 = 3.5 GB

2. Overhead del Modelo

El overhead incluye:

  • Buffers internos para cómputo
  • Pesos cuantizados (metadatos adicionales)
  • Estados de atención intermedios
  • Memoria para operaciones de normalización

3. KV Cache

La cache de atención es crítica para el contexto:

python
# Fórmula simplificada
# KV Cache = 2 × batch_size × n_layers × n_heads × head_dim × bytes × seq_length

# Para modelo de 7B, contexto 8K, FP16:
# ~2 GB adicionales

Ejemplo Práctico

bash
$ python main.py --model 7 --context 8192

Parámetros: 7B
Precisión: FP16
Contexto: 8192

============================================
DETALLE DE VRAM
============================================
 Parámetros: 14.00 GB
 Overhead: 2.80 GB
 KV Cache: 2.00 GB
============================================
TOTAL: 18.80 GB

Uso real (idle): ~17-18 GB
Uso real (peak): ~19-20 GB

Cuantización y VRAM

PrecisiónBytes/Parámetro7B Model70B Model
FP32428 GB280 GB
FP16214 GB140 GB
INT817 GB70 GB
INT40.53.5 GB35 GB

Estimaciones de Uso Real

La herramienta proporciona dos estimaciones:

  1. Idle VRAM: Memoria mínima cuando el modelo está cargado pero sin procesar
  2. Peak VRAM: Memoria máxima durante procesamiento activo

Configuración de Cálculo

Modo Producción vs Desarrollo

bash
# Modo desarrollo (menor footprint)
python main.py --model 7 --context 8192 --mode development

# Modo producción (más VRAM para throughput)
python main.py --model 7 --context 8192 --mode production

Asunciones del Cálculo

El cálculo asume:

  • batch_size = 1 (procesamiento secuencial)
  • Sin LoRA adapters cargados
  • Sin modelos de embedding separados
  • Formato estándar del modelo

Variables de Entorno

bash
# Personalizar cálculos
LIC_BATCH_SIZE=4 python main.py --model 7

Commits Relacionados

  • feat: VRAM calculation features added - Agrega lógica de cálculo de VRAM
  • fix(models.py): Módulo de modelos permite valores arbitrários - Soporte para modelos genéricos

Siguiente Capítulo

En el Capítulo 3, exploraremos los modelos y formatos soportados.