Descubra Mixture of Experts (MoE), una arquitectura de IA innovadora que permite modelos escalables y eficientes para el PNL, la visión, la robótica y más.
La Mezcla de Expertos (MoE) es una arquitectura de arquitectura de red neuronal (NN) especializada diseñada para la capacidad del modelo sin un aumento proporcional del coste computacional. A diferencia de los modelos modelos "densos" tradicionales, en los que cada parámetro está activo para cada entrada, un modelo MoE utiliza una técnica denominada cálculo condicional. Esto permite al sistema activar dinámicamente sólo un pequeño subconjunto de sus parámetros totales, denominados "expertos". parámetros -conocidos como "expertos"- en función de los requisitos específicos de los datos de entrada. Aprovechando esta activación dispersa, los investigadores pueden entrenar sistemas masivos, como los grandes modelos lingüísticos (LLM), que poseen trillones de parámetros manteniendo la latencia de inferencia y la velocidad de un modelo más pequeño.
El marco MoE sustituye las capas densas estándar por una capa MoE dispersa, que consta de dos componentes principales que trabajan en tándem para procesar la información:
Aunque ambas arquitecturas implican múltiples submodelos, es crucial distinguir Mezcla de expertos de un conjunto de modelos.
La arquitectura MoE se ha convertido en la piedra angular de la IA moderna de alto rendimiento, sobre todo en escenarios que requieren inmensa retención de conocimientos y capacidades multitarea.
Entender el mecanismo de enrutamiento es clave para comprender cómo funciona MoE. El PyTorch muestra un mecanismo de enrutamiento simplificado que selecciona los 2 mejores expertos para un lote de entrada dado.
import torch
import torch.nn as nn
# A simple router selecting the top-2 experts out of 8
num_experts = 8
top_k = 2
input_dim = 128
# The gating network predicts expert relevance scores
gate = nn.Linear(input_dim, num_experts)
input_data = torch.randn(4, input_dim) # Batch of 4 inputs
# Calculate routing probabilities
logits = gate(input_data)
probs = torch.softmax(logits, dim=-1)
# Select the indices of the most relevant experts
weights, indices = torch.topk(probs, top_k, dim=-1)
print(f"Selected Expert Indices:\n{indices}")
A pesar de su eficacia, los modelos ME introducen complejidad en el proceso de formación. Uno de los principales retos es el equilibrio de la carga; la red de compuertas puede converger a un estado en el que todo se dirige a unos pocos expertos "populares", dejando a los demás sin formación. Para evitarlo, los investigadores aplican auxiliares que fomentan la distribución uniforme entre todos los expertos. Además, la aplicación de MoE requiere una sofisticada infraestructura de formación distribuida para gestionar la comunicación entre expertos repartidos en diferentes GPU. Bibliotecas como Microsoft DeepSpeed y TensorFlow Mesh se han desarrollado específicamente para manejar estos problemas de paralelización.