MLX
También: Apple MLX, framework MLX
Actualizado el
Definición
MLX es un framework de arrays de código abierto para el aprendizaje automático en Apple silicon, creado por el equipo de investigación en aprendizaje automático de Apple. Es lo que usan muchos modelos de lenguaje y de voz para funcionar en el propio chip del Mac.
Si has descargado un modelo para Mac y su nombre termina en MLX, o viene de una colección de modelos MLX, esto es lo que significa: los pesos se han convertido al formato que lee este framework.
MLX es una herramienta para desarrolladores e investigadores, no algo que instalas para usar una app. Una app que lo usa lo lleva dentro. Se publica bajo la licencia MIT, y la primera versión pública apareció a finales de 2023.
Por qué encaja con un Mac
La descripción de Apple menciona una diferencia con otros frameworks: el modelo de memoria unificada. En Apple silicon, el procesador y el chip gráfico comparten una misma reserva de memoria. Los arrays de MLX viven en esa memoria compartida, así que el trabajo puede pasar de uno a otro sin copiar datos de un lado a otro.
En la mayoría de los demás ordenadores, la tarjeta gráfica tiene su propia memoria aparte, y el modelo tiene que caber en ella. En un Mac, un modelo puede usar toda la memoria del equipo, y por eso un portátil puede ejecutar modelos que de otro modo necesitarían una tarjeta dedicada.
En qué se ejecuta
La documentación de Apple dice que las operaciones pueden ejecutarse en la CPU y en la GPU. No menciona el Neural Engine. Para instalarlo en un Mac necesitas Apple silicon y macOS 14 o posterior.
La misma documentación describe ahora también versiones para Linux, incluida una para tarjetas gráficas de Nvidia, así que MLX ya no es solo para hardware de Apple. Pero sigue diseñado en torno a Apple silicon.
La familia MLX
MLX en sí solo se ocupa de los arrays y de las operaciones con ellos. Lo que la mayoría de la gente encuentra son los paquetes construidos encima.
- MLX LM, del mismo equipo de Apple, para generar texto con grandes modelos de lenguaje y hacerles ajuste fino.
- MLX Whisper, de los ejemplos de Apple, para el reconocimiento de voz con Whisper.
- MLX Swift, que permite a una app para Mac o iPhone escrita en Swift usar MLX directamente.
- Bibliotecas de la comunidad para audio y voz, que se basan en MLX pero no son de Apple.
Modelos MLX y cuantización
Los nombres de los modelos de las colecciones MLX suelen terminar en 4bit u 8bit. Eso es la cuantización: los pesos se guardan con menos bits cada uno, lo que hace la descarga más pequeña y el modelo más ligero en memoria, a cambio de algo de precisión. Las herramientas de MLX pueden producir estas versiones al convertir un modelo.
MLX y Core ML
Apple tiene dos frameworks para ejecutar modelos en sus dispositivos, y sirven para cosas distintas. Apple describe MLX como un framework de arrays de código abierto para experimentar con modelos generativos, entrenarlos y hacerles ajuste fino en Apple silicon. Y describe Core ML como la forma de integrar modelos de aprendizaje automático en una app.
En la práctica, muchas apps usan los dos: Core ML para un modelo que encaja con el Neural Engine, y MLX para un gran modelo de lenguaje o de voz que funciona en el chip gráfico.
Preguntas que hace la gente.
¿Qué significa MLX?
Apple no da un significado para las siglas. Describe MLX como un framework de arrays para el aprendizaje automático en Apple silicon.
¿Funciona MLX en los Macs con Intel?
No. En un Mac, la documentación de Apple exige Apple silicon y macOS 14 o posterior.
¿Usa MLX el Neural Engine?
La documentación de Apple dice que las operaciones de MLX se ejecutan en la CPU y en la GPU. No menciona el Neural Engine.
¿Es MLX gratuito?
Sí. Es de código abierto, bajo la licencia MIT.
¿Tengo que instalar MLX para usar una app hecha con él?
No. Una app que usa MLX ya lo incluye. Instalar MLX tú mismo sirve para escribir código o ejecutar modelos desde la línea de comandos.
¿Qué es un modelo MLX?
Un modelo cuyos pesos se han convertido al formato que lee MLX, a menudo cuantizado a 4 u 8 bits para que quepa con holgura en la memoria de un Mac.