Glossário / Como ele ouve você
MLX
Também: Apple MLX, framework MLX
Atualizado em
Definição
O MLX é um framework de arrays de código aberto para aprendizado de máquina em Apple silicon, feito pela equipe de pesquisa em machine learning da Apple. Muitos modelos de linguagem e de fala o usam no Mac.
Se você baixou um modelo para Mac e o nome dele termina em MLX, ou ele veio de uma coleção de modelos MLX, é isto que significa: os pesos foram convertidos para o formato que esse framework lê.
O MLX é uma ferramenta para desenvolvedores e pesquisadores, não algo que você instala para usar um app. Um app que o usa já o traz dentro. Ele é distribuído sob a licença MIT, e a primeira versão pública saiu no fim de 2023.
Por que ele combina com o Mac
A descrição da Apple aponta uma diferença em relação a outros frameworks: o modelo de memória unificada. Em Apple silicon, o processador e o chip gráfico compartilham um único conjunto de memória. Os arrays do MLX ficam nessa memória compartilhada, então o trabalho pode passar de um para o outro sem copiar dados de um lado para o outro.
Na maioria dos outros computadores, a placa de vídeo tem sua própria memória, separada, e o modelo precisa caber nela. Num Mac, um modelo pode usar a memória que a máquina inteira tem, e é por isso que um notebook consegue rodar modelos que, de outro modo, precisariam de uma placa dedicada.
Onde ele roda
A documentação da Apple diz que as operações podem rodar na CPU e na GPU. Ela não cita o Neural Engine. Para instalá-lo num Mac, você precisa de Apple silicon e do macOS 14 ou posterior.
A mesma documentação agora também descreve versões para Linux, inclusive uma para placas de vídeo Nvidia, então o MLX não é mais só para hardware da Apple. O Apple silicon continua sendo a base para a qual ele foi projetado.
A família MLX
O MLX em si só cuida dos arrays e das contas com eles. Os pacotes construídos por cima são o que a maioria das pessoas encontra.
- MLX LM, da mesma equipe da Apple, para gerar texto com grandes modelos de linguagem e fazer ajuste fino deles.
- MLX Whisper, dos exemplos da Apple, para reconhecimento de fala com o Whisper.
- MLX Swift, que permite que um app para Mac ou iPhone escrito em Swift use o MLX diretamente.
- Bibliotecas da comunidade para áudio e fala, construídas sobre o MLX, mas que não são da Apple.
Modelos MLX e quantização
Os nomes de modelos nas coleções MLX muitas vezes terminam em 4bit ou 8bit. Isso é quantização: os pesos são armazenados com menos bits cada, o que deixa o download menor e o modelo mais leve na memória, com alguma perda de precisão. As ferramentas do MLX podem gerar essas versões quando um modelo é convertido.
MLX e Core ML
A Apple tem dois frameworks que rodam modelos nos seus dispositivos, e eles servem para trabalhos diferentes. A Apple descreve o MLX como um framework de arrays de código aberto para experimentar, treinar e fazer ajuste fino de modelos generativos em Apple silicon. O Core ML ela descreve como o jeito de integrar modelos de aprendizado de máquina a um app.
Na prática, muitos apps usam os dois: o Core ML para um modelo que se dá bem com o Neural Engine, e o MLX para um grande modelo de linguagem ou de fala que roda no chip gráfico.
Perguntas que as pessoas fazem.
O que significa MLX?
A Apple não diz o que a sigla significa. Ela descreve o MLX como um framework de arrays para aprendizado de máquina em Apple silicon.
O MLX funciona em Macs com Intel?
Não. No Mac, a documentação da Apple exige Apple silicon e o macOS 14 ou posterior.
O MLX usa o Neural Engine?
A documentação da Apple diz que as operações do MLX rodam na CPU e na GPU. Ela não cita o Neural Engine.
O MLX é gratuito?
Sim. Ele é de código aberto, sob a licença MIT.
Preciso instalar o MLX para usar um app feito com ele?
Não. Um app que usa o MLX já o inclui. Instalar o MLX por conta própria serve para escrever código ou rodar modelos pela linha de comando.
O que é um modelo MLX?
Um modelo cujos pesos foram convertidos para o formato que o MLX lê, muitas vezes quantizado em 4 ou 8 bits para caber com folga na memória de um Mac.