Fundamentos

Los números que hacen funcionar un LLM: cuántos hay, dónde viven y cómo ocupar menos espacio.

¿Qué es un parámetro?

Un parámetro es un número que el modelo aprendió durante el entrenamiento.

💡 Imagina una máquina de palancas. Cada palanca (parámetro) tiene un valor numérico que modifica cómo se transforma la señal de entrada. Durante el entrenamiento, millones de estas palancas se ajustan minuciosamente hasta que la máquina acierta la siguiente palabra.

  • 7 mil millones de parámetros = 7 mil millones de números
  • Cada número ocupa espacio en memoria
  • Más parámetros = más capacidad = más memoria

Distribución de parámetros

Los parámetros están organizados en matrices (tensores). Cada capa del modelo contiene una o más matrices de pesos.

Distribución típica en un Transformer estilo LLaMA 7B (~6.7B params):

Componente Parámetros % Descripción
Attention (Q,K,V,O)~1.1B16%4 proyecciones lineales
Feed-Forward (gate,up,down)~4.2B63%3 proyecciones con expansión 4×
Token Embedding~0.5B8%Lookup table vocab → d_model
LM Head (output)~0.5B8%Proyección d_model → logits
RMSNorm + biases~0.1B1.5%Normalizaciones capa a capa

Tamaños más comunes en 2025-2026:

EtiquetaParams realesModelos
1-3B1.3-3BTinyLLaMA, Phi-3, Gemma 2
7-8B6.7-8BLLaMA 3, Mistral, Qwen 2.5
14B12.5-14BLLaMA 2, CodeLLaMA
30-34B30-34BYi-34B, DeepSeek-Coder
70B65-72BLLaMA 3 70B, Qwen 72B
405B~405BLLaMA 3.1 405B
671B (MoE)671B total / 37B activosDeepSeek V3/R1

Arquitecturas y densidades

ArquitecturaParams por capa attnParams por capa FFN
LLaMA 7B (dense)4 × 4096² ≈ 67M3 × 4096 × 11008 ≈ 135M
DeepSeek V3 (MoE)4 × 7168² ≈ 205Mn_experts × 3 × d_model × d_ff_per_expert
Qwen 2.5 72B (dense)4 × 8192² = 268M3 × 8192 × 24576 ≈ 604M

En MoE, cada token solo activa un subconjunto de expertos (típicamente 2-8 de 64-256). Los parámetros totales son enormes, pero el coste por token es solo el de los expertos activos.

¿Dónde vive el modelo?

Un modelo de 7B parámetros en FP32 son 28 GB de números. No caben en la RAM de un móvil. Necesitas una GPU con suficiente VRAM.

⚠️ Piensa en un libro gigante. Para leerlo (inferencia), necesitas tenerlo abierto en la mesa. La mesa es la VRAM. Si el libro es muy grande, no cabe en la mesa y tienes que ir a buscarlo a la estantería (RAM), que es mucho más lento.

Fórmula de peso en memoria

Peso (GB) = Parámetros_numericos × Bytes_por_param / 1024³
  ≈ Params_en_miles_de_millones × Bytes_por_param

Pesos según precisión:

ModeloFP32FP16INT8INT4
1.3B5.2 GB2.6 GB1.3 GB0.65 GB
7B28 GB14 GB7 GB3.5 GB
13B52 GB26 GB13 GB6.5 GB
34B136 GB68 GB34 GB17 GB
70B280 GB140 GB70 GB35 GB
405B1620 GB810 GB405 GB202.5 GB

Formatos de precisión en detalle

FP32 (IEEE 754 single):

[1 bit signo | 8 bits exponente | 23 bits mantisa]

Rango: ±3.4×10³⁸, Precisión: ~7 dígitos decimales

FP16 (IEEE 754 half):

[1 bit signo | 5 bits exponente | 10 bits mantisa]

Rango: ±6.5×10⁴, Precisión: ~3 dígitos. ⚠️ El rango pequeño causa overflow fácilmente → popularizó BF16

BF16 (Google Brain float):

[1 bit signo | 8 bits exponente | 7 bits mantisa]

Rango: ±3.4×10³⁸ (igual que FP32), Precisión: ~2 dígitos. ✅ Perfecto para training.

INT8 (cuantización simétrica):

[1 bit signo | 7 bits valor]

Mapea W_fp32 a W_int8: W_int8 = round(W_fp32 / scale), scale = max(|W_fp32|) / 127

Cuantización: menos bits, mismo modelo

La cuantización reduce la precisión de los números para que ocupen menos espacio. Es como hacer fotos con menos calidad para que pesen menos.

🟢 Un modelo de 7B en FP32 ocupa 28 GB y no cabe en una RTX 4090 (24 GB). Pero en INT4 ocupa solo 3.5 GB y funciona casi igual de bien.

GGUF quantization types

TipoBits medioCalidad vs FP16
Q2_K~2.56~85%
Q3_K_M~3.35~91%
Q4_K_M~4.5~96%
Q5_K_M~5.5~98%
Q6_K~6.5~99%
Q8_0~8.5~99.5%

La pérdida de calidad con Q4_K_M (~96%) es imperceptible para la mayoría de usos, pero el modelo ocupa 4× menos. Por eso es el formato más popular para ejecución local.

Matemática de la cuantización

La cuantización simétrica mapea un rango de valores float a un rango entero usando un factor de escala. La pérdida de información depende de la distribución de los pesos originales.

# Cuantización INT8 simétrica
scale = max(|W|) / 127
W_int8 = round(W / scale)

# De-cuantización
W_fp32 ≈ W_int8 × scale

# Error de cuantización
error = |W - W_int8 × scale|

Calculadora de VRAM

Selecciona un modelo, precisión y contexto para calcular cuánta VRAM necesitas y en qué GPU cabe.