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.1B | 16% | 4 proyecciones lineales |
| Feed-Forward (gate,up,down) | ~4.2B | 63% | 3 proyecciones con expansión 4× |
| Token Embedding | ~0.5B | 8% | Lookup table vocab → d_model |
| LM Head (output) | ~0.5B | 8% | Proyección d_model → logits |
| RMSNorm + biases | ~0.1B | 1.5% | Normalizaciones capa a capa |
Tamaños más comunes en 2025-2026:
| Etiqueta | Params reales | Modelos |
|---|---|---|
| 1-3B | 1.3-3B | TinyLLaMA, Phi-3, Gemma 2 |
| 7-8B | 6.7-8B | LLaMA 3, Mistral, Qwen 2.5 |
| 14B | 12.5-14B | LLaMA 2, CodeLLaMA |
| 30-34B | 30-34B | Yi-34B, DeepSeek-Coder |
| 70B | 65-72B | LLaMA 3 70B, Qwen 72B |
| 405B | ~405B | LLaMA 3.1 405B |
| 671B (MoE) | 671B total / 37B activos | DeepSeek V3/R1 |
Arquitecturas y densidades
| Arquitectura | Params por capa attn | Params por capa FFN |
|---|---|---|
| LLaMA 7B (dense) | 4 × 4096² ≈ 67M | 3 × 4096 × 11008 ≈ 135M |
| DeepSeek V3 (MoE) | 4 × 7168² ≈ 205M | n_experts × 3 × d_model × d_ff_per_expert |
| Qwen 2.5 72B (dense) | 4 × 8192² = 268M | 3 × 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
≈ Params_en_miles_de_millones × Bytes_por_param
Pesos según precisión:
| Modelo | FP32 | FP16 | INT8 | INT4 |
|---|---|---|---|---|
| 1.3B | 5.2 GB | 2.6 GB | 1.3 GB | 0.65 GB |
| 7B | 28 GB | 14 GB | 7 GB | 3.5 GB |
| 13B | 52 GB | 26 GB | 13 GB | 6.5 GB |
| 34B | 136 GB | 68 GB | 34 GB | 17 GB |
| 70B | 280 GB | 140 GB | 70 GB | 35 GB |
| 405B | 1620 GB | 810 GB | 405 GB | 202.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
| Tipo | Bits medio | Calidad 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.