Transformers — Módulo 11: variantes modernas — Mixture of Experts y eficiencia
Undécimo módulo del Curso de Transformers: las arquitecturas que rompen la regla de más parámetros igual más cómputo. Mixture of Experts (MoE) con su router, GQA y MQA para achicar el KV cache, las familias modernas Llama, Mixtral y Qwen, y el rol de la cuantización.
☰ Índice del contenido
En el módulo 10 vimos qué hace caro a un Transformer: la atención cuadrática y el KV cache que devora VRAM. Durante años la ley parecía inquebrantable: si quieres un modelo más capaz, súmale parámetros — y cada parámetro extra es más cómputo por token. Pero las arquitecturas que dominan hoy encontraron trucos para saltarse esa ley: modelos con cientos de miles de millones de parámetros que, por token, usan solo una fracción. Hoy vemos cómo lo hacen — MoE, GQA/MQA — y qué familias de modelos llevan estas ideas al terreno real.
La tesis del módulo
Los Transformers modernos rompen la ecuación “más parámetros = más cómputo”. Con Mixture of Experts activas solo una parte del modelo por token; con GQA/MQA achicas el KV cache compartiendo Keys y Values. El resultado: modelos gigantes que corren como modelos chicos — si sabes qué mides.
El truco central: Mixture of Experts
Hasta ahora asumimos un modelo dense (denso): cada token pasa por todos los parámetros del modelo. Si el modelo tiene 70B de parámetros, cada token activa los 70B. Simple, pero caro: la capacidad y el costo están atados.
MoE (Mixture of Experts, “mezcla de expertos”) corta ese nudo. La idea: en ciertas capas, en vez de una sola red que procesa todo, hay muchos “expertos” (redes paralelas) y un router (enrutador) que, para cada token, elige solo unos pocos expertos que lo procesarán. Los demás expertos ni se encienden para ese token.
El efecto es contraintuitivo y potente: el modelo tiene muchísimos parámetros totales (todos los expertos sumados), pero activa pocos por token (solo los elegidos). Ganas la capacidad de un modelo enorme con el costo de cómputo de uno chico. Ese es el caso de Mixtral 8x7B: 8 expertos, el router activa 2 por token → ~47B de parámetros totales, pero solo ~13B activos por token.
token entra al bloque MoE
┌──────────┐
│ router │ elige 2 de 8
└────┬─────┘
│
┌────┬────┬──┴─┬────┬────┬────┬────┐
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐ ┌──┐
│E1│ │E2│ │E3│ │E4│ │E5│ │E6│ │E7│ │E8│
└──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘
██ ██
activo activo (los demás: apagados)
El router es una pequeña red aprendida: mira el token y decide qué expertos son los más adecuados. Distintos expertos terminan especializándose en distintos patrones (aunque no de forma tan limpia como “este sabe de código y este de poesía” — la especialización es más difusa y emergente).
Ojo: MoE ahorra cómputo, no memoria. Todos los expertos viven en la VRAM aunque solo se activen algunos por token. Un Mixtral 8x7B ocupa VRAM como un modelo de ~47B, aunque corra a la velocidad de uno de ~13B. La capacidad se paga en memoria, no en velocidad.
Dense vs MoE: la tabla que importa
| Aspecto | Dense (ej. 13B) | MoE (ej. 8x7B) |
|---|---|---|
| Parámetros totales | 13B | ~47B |
| Parámetros activos por token | 13B (todos) | ~13B (2 de 8) |
| VRAM para los pesos | ~la de 13B | ~la de 47B |
| Velocidad por token | como un 13B | como un 13B |
| Capacidad / calidad | de un 13B | más cerca de un 47B |
La lectura: MoE te da la calidad de un modelo grande a la velocidad de uno chico, si tienes la VRAM para alojarlo. Por eso es la arquitectura de moda para modelos frontera — pero exige memoria, no la regala.
El segundo truco: GQA y MQA
En el módulo 10 vimos que el KV cache crece con el contexto y come VRAM. Una de las razones es que la atención multi-cabeza (módulo 3) tiene muchas cabezas, y cada una guarda sus propias Keys y Values en el caché. Las variantes modernas atacan justo eso.
- MHA (Multi-Head Attention): lo clásico. Cada cabeza tiene su propio conjunto de Q, K y V. Máxima expresividad, máximo KV cache.
- MQA (Multi-Query Attention, “atención multi-consulta”): todas las cabezas comparten una sola K y V (cada una conserva su Q). El KV cache se achica drásticamente, pero puede perder algo de calidad.
- GQA (Grouped-Query Attention, “atención de consulta agrupada”): el punto medio ganador. Las cabezas se dividen en grupos, y cada grupo comparte una K y V. Achica mucho el caché con pérdida de calidad mínima. Es el estándar actual (Llama, Mistral, Qwen lo usan).
MHA: cada cabeza su K/V (caché grande)
Q1 Q2 Q3 Q4
K1 K2 K3 K4 ← 4 pares K/V
GQA: grupos comparten K/V (caché medio)
Q1 Q2 :: Q3 Q4
K_a :: K_b ← 2 pares K/V
MQA: todas comparten K/V (caché mínimo)
Q1 Q2 Q3 Q4
K_u ← 1 par K/V
La ganancia es directa: menos K y V distintas que guardar = KV cache más chico = contextos más largos con la misma VRAM. GQA es una de las razones silenciosas de que los modelos recientes manejen ventanas grandes sin explotar en memoria.
El mapa de las familias modernas
Estas ideas no viven en el vacío: las verás nombradas al elegir un modelo.
| Familia | Rasgos | Notas |
|---|---|---|
| Llama (Meta) | Dense, GQA, RoPE | Abierta, el estándar de facto local |
| Mixtral (Mistral) | MoE (8 expertos), GQA | El MoE abierto más conocido |
| Qwen (Alibaba) | Dense y MoE, GQA | Fuerte en multilingüe y código |
| Mistral (denso) | Dense, GQA, ventana amplia | Chicos y eficientes |
| DeepSeek-V3 / gpt-oss | MoE grande, atención eficiente | Los MoE abiertos de frontera (2025) |
Casi todos comparten el mismo kit moderno: GQA para el caché, RoPE para las posiciones, y cada vez más, MoE para escalar capacidad sin disparar el cómputo.
Cerrar el círculo: cuantización
Hay una última palanca de eficiencia que no es arquitectura sino representación. La cuantización guarda los pesos del modelo con menos bits (de 16 a 8, 4 o menos), reduciendo la VRAM necesaria con una pérdida de calidad pequeña y controlada. Es la que te permite correr un modelo grande —o un MoE hambriento de memoria— en una GPU modesta. La vimos en profundidad en el curso de GPU, módulo de precisión y cuantización; aquí basta con saber que cuantización + GQA + MoE es el trío que hace que los modelos de hoy quepan y corran donde antes era imposible.
Cuidado: no compares modelos solo por parámetros totales. Un MoE de “47B” y un dense de “47B” no cuestan lo mismo por token ni rinden igual. Mira parámetros activos para el cómputo y parámetros totales para la VRAM: son dos números distintos y ambos importan.
Errores comunes
- Creer que MoE ahorra memoria. Ahorra cómputo por token; todos los expertos viven igual en VRAM. Un MoE grande necesita VRAM de modelo grande.
- Comparar modelos solo por parámetros totales. En MoE, los activos por token mandan en velocidad y los totales en memoria. Confundirlos lleva a decisiones caras.
- Suponer que los expertos se especializan por tema. La especialización es difusa y emergente, no un “experto de matemáticas”. El router aprende patrones, no categorías humanas.
- Ignorar GQA/MQA al estimar el KV cache. Un modelo con GQA guarda muchas menos K/V que uno con MHA puro: cambia la cuenta de VRAM en contexto largo.
- Pensar que la cuantización es gratis. Reduce VRAM con costo de calidad; a 4 bits suele valer la pena, más abajo hay que medir. No es magia, es un intercambio.
La frase para llevarse
“Los Transformers modernos dejaron de crecer a lo bruto. MoE activa pocos expertos de muchos, GQA comparte Keys y Values, y la cuantización aprieta los bits: tres formas de tener un modelo enorme que corre como uno chico — mientras mires el número correcto.”
Qué viene
Módulo 12, el cierre del curso: del modelo al producto — escalado, límites y hacia dónde va. Recogemos todo el viaje: las scaling laws que dictan cuánto crecer, los límites reales (alucinaciones, contexto, costo) y hacia dónde apunta el campo — multimodalidad y agentes.
Material relacionado
Preguntas sobre este curso
Regístrate gratis para hacer preguntas y guardar tu progreso.
✉ Entérate de lo nuevo
Recibe un aviso cuando publique nuevos cursos, workshops o investigaciones. Sin spam.