- Mixtral 8x7B es un modelo de mezcla dispersa de expertos (SMoE) que conserva la arquitectura base de Mistral 7B, pero reemplaza el bloque feedforward de cada capa por 8 expertos; se publica con pesos abiertos y licencia Apache 2.0
- Como el router elige solo 2 expertos de 8 por token para hacer el cómputo, cada token puede acceder a 47B parámetros, mientras que los parámetros activos durante la inferencia se limitan a 13B
- Fue entrenado con una ventana de contexto de 32k tokens y, en los benchmarks evaluados, iguala o supera a Llama 2 70B y GPT-3.5; destaca especialmente en matemáticas, generación de código y tareas multilingües
- Mixtral 8x7B – Instruct es un modelo de chat entrenado para seguir instrucciones mediante ajuste fino supervisado y optimización directa de preferencias (DPO), y en evaluaciones humanas supera a GPT-3.5 Turbo, Claude-2.1, Gemini Pro y Llama 2 70B-chat
- La arquitectura de expertos dispersos permite aumentar el total de parámetros mientras contiene el cómputo por token, lo que puede dar inferencia más rápida con lotes pequeños y mayor rendimiento con lotes grandes
Modelos publicados y rendimiento en benchmarks
- Mixtral 8x7B es un modelo abierto de mezcla dispersa de expertos (SMoE) con licencia Apache 2.0, apta para uso académico y comercial
- Se publicaron tanto el modelo base como Mixtral 8x7B – Instruct para seguimiento de instrucciones
- Se ofrecen código y página web
- En varios benchmarks registra resultados iguales o superiores a Llama 2 70B y GPT-3.5
- Muestra mejor desempeño que Llama 2 70B en tareas que requieren matemáticas, generación de código y comprensión multilingüe
- Se confirmó que puede recuperar información en una ventana de contexto de 32k tokens sin importar la posición de la información ni la longitud de la secuencia
Arquitectura de mezcla dispersa de expertos
- Mixtral es un transformer solo decodificador que reemplaza el bloque feedforward del transformer convencional por capas Mixture-of-Experts
- La red router de cada capa selecciona 2 expertos de entre 8 para cada token
- La salida de los expertos seleccionados se combina mediante una suma ponderada
- La selección de expertos puede cambiar en cada paso temporal
- Un solo token puede acceder a 47B parámetros, pero los parámetros activos usados en la inferencia real son 13B
- Esta arquitectura busca aumentar el número total de parámetros del modelo mientras controla el costo de procesamiento por token y la latencia
Método de cómputo de las capas MoE
- La salida del módulo MoE se calcula como una suma ponderada de las salidas de las redes expertas, con pesos definidos por la red de gating
- Si el vector de gating es disperso, no hace falta calcular la salida de los expertos cuyo valor de compuerta es 0
- Mixtral aplica softmax a los K logits más altos de la capa lineal
- K es el hiperparámetro que define cuántos expertos se usan por token
- En Mixtral, K = 2
- Si se incrementa el número de expertos n y se mantiene fijo K, se puede aumentar el número total de parámetros manteniendo prácticamente constante el cómputo por token
- Por eso se separan el total de parámetros dispersos del modelo y el número de parámetros activos usados para procesar cada token
Implementación y eficiencia de inferencia
- Las capas MoE pueden ejecutarse eficientemente incluso en una sola GPU mediante kernels especializados
- Megablocks acelera la ejecución al expresar las operaciones FFN de las capas MoE como una gran multiplicación de matrices dispersas, y también maneja casos donde el número de tokens asignados a cada experto varía
- Las capas MoE pueden distribuirse en varias GPU con paralelismo de modelo estándar y paralelismo de expertos (Expert Parallelism)
- Los tokens que debe procesar un experto específico se enrutan a la GPU correspondiente
- La salida del experto se devuelve a la posición original del token
- En el paralelismo de expertos se requiere balanceo de carga para repartir uniformemente el trabajo entre GPU
- Para poder ejecutar Mixtral en una pila totalmente open source, se propuso integrar los kernels CUDA de Megablocks al proyecto vLLM, y Skypilot admite el despliegue de endpoints de vLLM en instancias de nube
Modelo Instruct y características de evaluación
- Mixtral 8x7B – Instruct es un modelo de chat entrenado para seguir instrucciones mediante ajuste fino supervisado y optimización directa de preferencias (DPO)
- En benchmarks de evaluación humana muestra mejor rendimiento que GPT-3.5 Turbo, Claude-2.1, Gemini Pro y Llama 2 70B-chat
- En benchmarks como BBQ y BOLD presenta menos sesgo y un perfil de sensibilidad más equilibrado
- Gracias a su estructura dispersa, puede ofrecer mayor velocidad de inferencia con lotes pequeños y mayor throughput con lotes grandes
- Se diferencia estructuralmente de GShard porque reemplaza todos los subbloques FFN por capas MoE, en lugar de cambiar solo algunos bloques
1 comentarios
Comentarios de Hacker News
Este artículo analiza en detalle un modelo que ya llevaba alrededor de un mes disponible y en uso. Mixtral 8x7B es realmente sobresaliente, tiene un tamaño efectivo de más o menos 13B, pero está mucho mejor valorado que otros modelos de tamaño similar en rankings como https://www.reddit.com/r/LocalLLaMA/comments/1916896/llm_com...
Ravenwolf dijo que este modelo en la práctica rinde un poco mejor de lo que sugieren algunos benchmarks, y mi experiencia es la misma. Es sorprendentemente bueno para un modelo de este tamaño, y alcanza sin problema para usarlo a diario en una Mac para chat, entrada de código y otros usos
Algo que se hizo evidente tras la publicación de los pesos es que es bastante probable que los 8 expertos se hayan inicializado a partir de Mistral 7B y luego se hayan ido separando. Por eso, en la comunidad de LLM locales se están haciendo muchos experimentos para replicar el modelo y crear expertos baratos
Normalmente se pensaría que entrenar una red 8x7B requeriría tanto trabajo como entrenar 8 redes de 7B, pero parece que con Mistral no fue así, lo cual resulta muy interesante
Siguen apareciendo artículos como Calm de DeepMind, y experimentos de combinación de capas al vuelo como Goliath-120b, así que parece bastante probable que este año veamos mejoras de arquitectura muy interesantes en el mundo de los LLM. Calm parece apuntar al siguiente paso después de MoE, y modelos como Goliath muestran que una implementación muy perezosa de Calm —es decir, alternar capas completas de pesos sin combinar capas lineales— también puede producir grandes efectos
En general, parece que en 2024, probablemente en la primera mitad del año, veremos modelos potentes que funcionen muy bien incluso en hardware de consumo
Hasta ahora, las principales plataformas de consumo capaces de ejecutarlo sin una cuantización tan alta que arruine la calidad de salida parecen ser las Mac recientes con Apple Silicon y memoria unificada, generalmente con 48GB o más. Dicen que también se puede con 32GB o 36GB, pero con poco margen
Como señaló coder543, una configuración con varias GPU y suficiente VRAM total también puede ejecutarlo sin recurrir a una cuantización más agresiva
La contaminación del dataset es un problema, pero no se resuelve porque gente en un subreddit evalúe LLM de forma folclórica
Llama la atención que este modelo tenga tan pocos parámetros activos, a nivel de 13B, lo que le permite correr con buena calidad y de forma fluida en una 3090, al mismo tiempo que supera a GPT-3.5 en HumanEval y además ofrece contexto de 32k
La 3090 es de gama de consumo y también es común en PCs gamer. Ojalá los desarrolladores de juegos empezaran a experimentar con despliegues locales de Mixtral dentro de juegos. Por ejemplo, hacer que cada líder en un juego como Civilization esté impulsado por un LLM
En mi M2 Pro, la velocidad de tokens y la inteligencia se sienten como GPT-3.5 Turbo. La tecnología ya es lo bastante buena como para ir más allá de solo probarla: es el primer modelo que empecé a usar realmente en lugar de GPT-3.5
Un Apple M2 Pro con 32GB de RAM cuesta más o menos lo mismo que una PC gamer con una 3090, y es otro ejemplo de cómo gente común con sistemas razonablemente potentes puede “por accidente” ejecutar un modelo comparable a GPT-3.5
Si tienes un dispositivo Apple que cumpla estas condiciones y quieres experimentar, LLM Studio es open source y hace que empezar sea fácil: https://lmstudio.ai/
Ojalá Mixtral y los modelos que vengan después impulsen mucho más hacking de hobby
Con ese dinero puedes comprar una PC completa, así que me cuesta creer que una GPU tan cara sea “de consumo” y “común”
¿Hay alguna GPU buena para LLM u otra IA generativa que no sea absurdamente cara? ¿O existe algún producto diseñado específicamente para IA y no para gráficos de juegos?
Por ejemplo, puedes exigirle a un actor que planifica hacia adelante que responda cualquiera de tres de las 5W, pero dejándolo escribir libremente dentro de valores de cadena JSON para luego usar eso como contexto al elegir dentro de un conjunto de acciones restringido. O puedes hacer que el modelo tenga permitido pedir más tiempo para pensar al final de su respuesta, pero que si no lo pide, entonces deba especificar la siguiente acción
Por lo que veo, no afecta la velocidad de generación y se puede usar de formas muy creativas. Eso sí, si la salida se corta puede ser necesario regenerarla, y tuve que escribir una función aparte para detenerse en cuanto se cierre un objeto JSON válido o cuando se generen más de cinco saltos de línea seguidos. Puede variar según el modelo
Si quieres probar este modelo, probablemente sea una de las distribuciones que Mozilla/jart publicó como Llamafile
chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile./mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile[0] https://hacks.mozilla.org/2023/11/introducing-llamafile/
[1] https://github.com/Mozilla-Ocho/llamafile#quickstart
En Mac Silicon se puede usar con Ollama
https://ollama.ai/
ollama pull mixtralSi quieres una web UI parecida a ChatGPT: https://github.com/ollama-webui/ollama-webui
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui --restart always ghcr.io/ollama-webui/ollama-webui:mainLuego puedes entrar en http://localhost:3000. Ollama también se puede usar desde LangChain
Publicaciones relacionadas recientes
Mixtral of experts - https://news.ycombinator.com/item?id=38598559 - diciembre de 2023, 300 comentarios
Mistral-8x7B-Chat - https://news.ycombinator.com/item?id=38594578 - diciembre de 2023, 69 comentarios
Mistral "Mixtral" 8x7B 32k model [magnet] - https://news.ycombinator.com/item?id=38570537 - diciembre de 2023, 239 comentarios
En particular, Mixtral supera ampliamente a Llama 2 70B en benchmarks de matemáticas, generación de código y multilingüe
Me da curiosidad ver qué rendimiento mostrará en matemáticas. Las matemáticas siempre parecieron una debilidad clara, y todavía da la impresión de ser un área que nadie ha resuelto eficazmente
No parece que este problema se vaya a “resolver” solo con LLM mejores; probablemente solo sea posible con modelos multimodales que puedan ejecutar programas y acceder a una calculadora
No he leído tantísimos papers de LLM, pero este me parece un paper bastante flojo al que le faltan detalles. Me refiero al paper en sí, no a los resultados del LLM
Si hubiera llegado a mi escritorio para revisión, probablemente lo habría devuelto solo por eso. Por ejemplo, no explican adecuadamente cómo entrenaron a los expertos ni qué datasets usaron
¿Ese es el estándar actual en este campo?
El código y la arquitectura son fáciles de reproducir, así que cualquier lugar con suficiente dinero puede crear “fácilmente” un modelo competidor
OpenAI inició esta tendencia y la consolidó con el “informe técnico” de GPT-4, que ni siquiera especifica la cantidad de parámetros del modelo. Y con respecto a los datasets, vienen siendo mucho más vagos desde bastante antes
No soy experto en LLM para nada, pero sería interesante saber en particular cómo influyen en el rendimiento las distintas configuraciones de entrenamiento
Me pregunto cuándo empezarán a aparecer modelos multimodales con acceso público.
El avance de los modelos solo de texto ha sido sorprendente, pero muchos de los comportamientos “emergentes” de GPT-4 podrían deberse no solo al MoE o al número de parámetros, sino también al entrenamiento multimodal.
Me da curiosidad si veremos un salto parecido en modelos multimodales más pequeños.
Meta también publicó un modelo multimodal entre 6 modalidades bajo una licencia no comercial: https://ai.meta.com/blog/imagebind-six-modalities-binding-ai...
Los pesos del modelo tienen una licencia no comercial, así que no parece ser verdadero open source, pero sí entra en lo que pedías como “acceso público”.
Ojalá alguien entrene desde cero un modelo compatible con CogVLM con una licencia open source.
Me pregunto si se puede ejecutar este modelo con las herramientas de LLM de Simon Willison. No encontré menciones de Mixtral en issues ni discusiones.
Fuera de eso, ¿hay alguna forma fácil de probar este modelo desde la línea de comandos?
LM Studio también es una opción.
En línea de comandos, Ollama: https://ollama.ai/library/mixtral
Si necesitas UI, GPT4All: https://gpt4all.io/index.html aunque todavía no soporta Mixtral.
Dentro de apps, superagent.sh: https://github.com/homanp/superagent
En una entrevista reciente del pódcast de A16Z, el fundador de Mistral dijo que internamente tienen varios modelos con calidad entre ChatGPT y GPT-4.
Viendo la calidad de lo que han publicado hasta ahora, parece que viene una etapa interesante para los LLM open source.