Mezcla de expertosLa mezcla de expertos (MoE) es una técnica de aprendizaje automático en la que se utilizan múltiples redes de expertos (learners) para dividir un espacio de problemas en regiones homogéneas.[1] Se diferencia de las técnicas de ensemble en que, en el caso de las MoE, normalmente solo se ejecutan uno o unos pocos modelos expertos para cada entrada, mientras que en las técnicas de ensemble todos los modelos se ejecutan para cada entrada. Teoría básicaEn la mezcla de expertos, siempre tenemos los siguientes ingredientes, pero se construyen y combinan de forma diferente.
Tanto los expertos como la función de ponderación se entrenan minimizando algún tipo de función de pérdida, generalmente por descenso gradiente. Hay mucha libertad a la hora de elegir la forma precisa de los expertos, la función de ponderación y la función de pérdida. Red Meta-piLa red meta-pi, documentada por Hampshire y Waibel,[2] utiliza como salida. El modelo se entrena realizando un descenso de gradiente sobre la pérdida de error cuadrático medio. . Los peritos podrán tener funciones arbitrarias. En su publicación original, resolvían el problema de clasificar fonemas en señales de habla de 6 hablantes japoneses diferentes, 2 mujeres y 4 hombres. Entrenaron a 6 expertos, cada uno de los cuales era una «red neuronal retardada» (esencialmente una red de convolución multicapa sobre el espectrograma mel).[3] Comprobaron que la mezcla de expertos resultante dedicaba 5 expertos a 5 de los hablantes, pero el 6º hablante (varón) no tiene un experto dedicado, sino que su voz fue clasificada por una combinación lineal de los expertos de los otros 3 hablantes varones. Mezclas adaptativas de expertos localesLas mezclas adaptativas de los expertos locales utilizan un modelo de mezcla gaussiana.[4] [5] Cada experto simplemente predice una distribución gaussiana, e ignora totalmente la entrada. Específicamente, el -ésimo experto predice que la salida es , donde es un parámetro que se puede aprender. La función de ponderación es una función lineal-softmax:La mezcla de expertos predice que la salida se distribuye según la función de densidad de probabilidad:Se entrena mediante estimación de máxima verosimilitud, es decir, ascenso de gradiente en . El gradiente para el -ésimo experto esy el gradiente de la función de ponderación esPara cada par de entrada-salida, la función de ponderación se modifica para aumentar la ponderación de todos los expertos que obtuvieron resultados por encima de la media y disminuir la ponderación de todos los expertos que obtuvieron resultados por debajo de la media. Esto anima a la función de ponderación a aprender a seleccionar solo a los expertos que hacen las predicciones correctas para cada entrada. El -ésimo experto se cambia para acercar su predicción a , pero la cantidad de cambio es proporcional a . Esto tiene una interpretación bayesiana. Dada la entrada , la probabilidad previa de que el experto es el correcto es , y es la probabilidad de evidencia . Entonces, es la probabilidad posterior para el experto , y, por lo tanto, la tasa de cambio para el -ésimo experto es proporcional a su probabilidad posterior. En otras palabras, a los expertos que, en retrospectiva, parecían buenos expertos a los que consultar, se les pide que aprendan con el ejemplo. A los expertos que, en retrospectiva, no lo eran, se les deja solos. El efecto combinado es que los expertos se especializan: Supongamos que dos expertos son buenos prediciendo un determinado tipo de información, pero uno de ellos es ligeramente mejor. Cuando esto ocurra, el menos experto será incapaz de obtener una señal de gradiente alta y será aún peor en la predicción de ese tipo de entrada. A la inversa, el menos experto puede mejorar en la predicción de otros tipos de entrada y alejarse cada vez más hacia otra región. Esto tiene un efecto de retroalimentación positiva, que hace que cada experto se aparte del resto y se ocupe en solitario de una región local (de ahí el nombre de "expertos locales"). MoE jerárquicoLas mezclas jerárquicas de expertos utilizan múltiples niveles de gating en un árbol.[6][7] Cada puerta es una distribución de probabilidad sobre el siguiente nivel de puertas, y los expertos están en los nodos de las hojas del árbol. Son similares a los árboles de decisión. Por ejemplo, un MoE jerárquico de 2 niveles tendría una función de activación de primer orden. y funciones de control de segundo orden y expertos . La predicción total es entonces . VariantesLa mezcla de expertos, al ser similar al modelo de mezcla gaussiano, también puede entrenarse mediante el algoritmo esperanza-maximización, al igual que los modelos de mezcla gaussianos. Específicamente, durante el paso de expectativa, la "carga" para explicar cada punto de datos se asigna a los expertos, y durante el paso de maximización, los expertos se entrenan para mejorar las explicaciones para las que obtuvieron una alta carga, mientras que la puerta se entrena para mejorar su asignación de carga. Esto puede converger más rápido que el ascenso gradiente en la log-verosimilitud.[7][8] La elección de la función de compuerta suele ser una compuerta softmax.[9] Aparte de eso, se propone el uso de distribuciones gaussianas, y se propone el uso de familias exponenciales.[8] En lugar de realizar una suma ponderada de todos los expertos, en el MoE duro solo se elige al experto mejor clasificado.[10] Eso es, . Esto puede acelerar el tiempo de entrenamiento e inferencia[11] Los expertos pueden utilizar formas más generales de distribuciones gaussianas multivariantes. Por ejemplo,[6] propuso , dónde son parámetros que se pueden aprender. En palabras, cada experto aprende a realizar una regresión lineal, con una estimación de incertidumbre que se puede aprender. Se pueden utilizar expertos distintos de las distribuciones gaussianas. Por ejemplo, se puede utilizar la distribución de Laplace o la distribución t de Student.[12][13] Para la clasificación binaria, también propuso expertos de regresión logística, condonde son parámetros que se pueden aprender. Posteriormente, esto se generaliza para la clasificación de clases múltiples, con expertos en regresión logística multinomial.[14] Aprendizaje profundoLa sección anterior describía MoE tal y como se utilizaba antes de la era del aprendizaje profundo. Después del aprendizaje profundo, MoE encontró aplicaciones en la ejecución de los modelos más grandes, como una forma sencilla de realizar cálculos condicionales: solo se utilizan partes del modelo, las partes elegidas en función de cuál sea la entrada.[15] El primer artículo que aplica MoE al aprendizaje profundo es el que propone utilizar una red de compuertas diferente en cada capa de una red neuronal profunda.[16] En concreto, cada gating es una red lineal-ReLU-lineal-softmax, y cada experto es una red lineal-ReLU. El desiderátum de diseño clave para MoE en el aprendizaje profundo es reducir el coste computacional. En consecuencia, para cada consulta, solo debe consultarse un pequeño subconjunto de expertos. Esto hace que el MoE en el aprendizaje profundo sea diferente del MoE clásico. En el MoE clásico, el resultado de cada consulta es una suma ponderada de los resultados de todos los expertos. En el MoE de aprendizaje profundo, el resultado de cada consulta solo puede incluir los resultados de unos pocos expertos. En consecuencia, la elección de diseño clave en MoE se convierte en enrutamiento: dado un lote de consultas, cómo dirigir las consultas a los mejores expertos. Capa de MoE dispersaLa capa MoE escasamente cerrada,[17] publicada por investigadores de Google Brain, utiliza redes de avance como expertos y puerta lineal-softmax. De manera similar al MoE duro propuesto anteriormente, logran escasez mediante una suma ponderada de solo los k expertos principales, en lugar de la suma ponderada de todos ellos. Específicamente, en una capa MoE, existen redes de retroalimentación y una red de puertas . La red de puertas está definida por , donde es una función que mantiene iguales las entradas k superiores de un vector, pero establece todas las demás entradas en . La adición de ruido ayuda con el equilibrio de carga. La elección de es un hiperparámetro que se elige en función de la aplicación. Los valores típicos son . La versión también se denomina transformador de conmutación.[18] Como demostración, entrenaron una serie de modelos para traducción automática con capas alternas de MoE y LSTM, y los compararon con modelos LSTM profundos.[19] La tabla 3 muestra que los modelos MoE emplearon menos tiempo de cálculo de inferencia, a pesar de tener 30 veces más parámetros. Los MoE de vainilla tienden a tener problemas de equilibrio de carga: algunos expertos son consultados con frecuencia, mientras que otros expertos rara vez o nunca. Para animar a la puerta a seleccionar a cada experto con la misma frecuencia (equilibrio de carga adecuado) dentro de cada lote, cada capa de MoE tiene dos funciones de pérdida auxiliares. Esto se mejora con una única función de pérdida auxiliar.[18] En concreto, si es el número de expertos, para un conjunto determinado de consultas , la pérdida auxiliar del conjunto es
Aquí, es la fracción de tiempo en la que el experto ocupa el puesto más alto, y es la fracción de peso en experto . Esta pérdida se minimiza en , precisamente cuando cada experto tiene el mismo peso en todas las situaciones. EnrutamientoEn el método MoE sparsely-gated, solo se consulta a los mejores expertos k y sus resultados se suman ponderadamente. Existen otros métodos.[20] En el MoE Hash,[21] el enrutamiento se realiza de forma determinista mediante una función hash, fijada antes de comenzar el aprendizaje. Por ejemplo, si el modelo es un Transformador de 4 capas, y la entrada es un token para la palabra "comer", y el hash de "comer" es , entonces el token se enrutaría al primer experto de la capa 1, al cuarto experto de la capa 2, etc. A pesar de su simplicidad, alcanza un rendimiento competitivo como el MoE con . En MoE suave, supongamos que en cada conjunto, cada experto puede procesar consultas, entonces hay consultas que se pueden asignar por conjunto. Ahora, para cada lote de consultas, la capa suave MoE calcula una matriz , tal que es una distribución de probabilidad sobre consultas, y la -ésimo experto -ésima consulta es .[22] Sin embargo, esto no funciona con el modelado autorregresivo, ya que los pesos sobre un token depende de todos los demás tokens. [23] Otros enfoques incluyen resolverlo como un problema de programación lineal con restricciones,[24] haciendo que cada experto elija las primeras k consultas que desea (en lugar de que cada consulta elija a los primeros k expertos para ella),[25] utilizando el aprendizaje por refuerzo para entrenar el algoritmo de enrutamiento (ya que elegir a un experto es una acción discreta, como en la RL).[26] Factor de capacidadSupongamos que hay expertos en una capa. Para un determinado lote de consultas , cada consulta se dirige a uno o más expertos. Por ejemplo, si cada consulta se enruta a un experto como en Transformadores de conmutación, y si los expertos están equilibrados en carga, entonces cada experto debería esperar por término medio consultas por lote. En la práctica, los expertos no pueden esperar un equilibrio perfecto de la carga: en algunos lotes, un experto podría tener poco trabajo, mientras que en otros, tendría demasiado. Como las entradas no pueden moverse por la capa hasta que todos los expertos de la capa hayan terminado las consultas que tienen asignadas, el equilibrio de la carga es importante. El factor de capacidad es una restricción estricta del equilibrio de carga: cada experto solo puede procesar un máximo de consultas por lote,[20] encontrado que funcionan en la práctica. Aplicaciones a modelos de transformadoresLas capas MoE se utilizan en modelos de transformadores muy grandes, para los que aprender e inferir sobre el modelo completo resulta demasiado costoso. Suelen tener un sparsely-gated, con sparsity 1 o 2. En los modelos de transformador, las capas MoE se utilizan a menudo para seleccionar las capas prealimentadas (normalmente una red lineal-ReLU-lineal), que aparecen en cada bloque de transformador después de la atención multicabezal. Esto se debe a que las capas prealimentadas ocupan una parte cada vez mayor del coste computacional a medida que los modelos se hacen más grandes. Por ejemplo, en el modelo Palm-540B, el 90% de los parámetros se encuentran en sus capas prealimentadas.[27] Por lo general, los MoE se utilizan cuando los modelos densos se han vuelto demasiado costosos, lo que significa que se suelen utilizar para los modelos más grandes. A partir de 2023, estos modelos suelen ser modelos de lenguaje grandes. Fuera de estos, Vision MoE es un modelo Transformer con capas MoE.[28] Lo demostraron entrenando un modelo con 15.000 millones de parámetros. Una serie de grandes modelos lingüísticos de Google utilizan MoE. GShard utiliza MoE con un máximo de 2 expertos por capa.[29] En concreto, siempre se selecciona el primer experto y el segundo con una probabilidad proporcional a su peso según la función de compuerta. Más tarde, GLaM demostró un modelo lingüístico con 1,2 billones de parámetros,[30] en el que cada capa MoE utiliza top-2 de 64 expertos. Switch Transformers utiliza top-1 en todas las capas MoE.[18] El NLLB-200 de Meta AI es un modelo de traducción automática para 200 idiomas.[31] Cada capa MoE utiliza un MoE jerárquico con dos niveles. En el primer nivel, la función de compuerta elige entre utilizar una capa prealimentada «compartida» o utilizar a los expertos. Si se utilizan los expertos, otra función de compuerta calcula los pesos y elige a los 2 mejores expertos.[32] Los grandes modelos lingüísticos de MoE pueden adaptarse a tareas posteriores mediante el ajuste de instrucciones.[33] En diciembre de 2023, Mistral AI publicó Mixtral 8x7B bajo licencia Apache 2.0. Se trata de un modelo de lenguaje MoE con 46,7B parámetros, 8 expertos y sparsity 2. Se trata de un modelo de lenguaje MoE con 46.7B parámetros, 8 expertos, y sparsity 2. También publicaron una versión ajustada para el seguimiento de instrucciones.[34][35] Otras lecturas
. Véase tambiénReferencias
|