MLX - framework de arrays semelhante ao NumPy para Apple Silicon
(github.com/ml-explore)- Framework de arrays criado pela equipe de pesquisa de machine learning da Apple, projetado para executar machine learning de forma eficiente e flexível no Apple Silicon
- Oferece uma API Python quase idêntica à do NumPy, além de uma API em C++ com todos os recursos
- Diferenças em relação ao NumPy
- Transformações de função composáveis: o MLX inclui transformações de função composáveis para diferenciação automática, vetorização automática e otimização de grafos computacionais
- Computação lazy: os cálculos no MLX são lazy. Os arrays só são materializados quando necessário
- Multidispositivo: é possível executar operações em todos os dispositivos compatíveis (CPU, GPU, ...)
- Construção dinâmica de grafos: o grafo computacional do MLX é construído dinamicamente. Mesmo que o formato dos argumentos da função mude, a velocidade de compilação não diminui, e a depuração é simples e intuitiva
- Inspirado em frameworks como PyTorch, Jax e ArrayFire
- Uma diferença marcante entre esses frameworks e o MLX é o modelo de memória unificada
- Os arrays do MLX são armazenados em memória compartilhada. As operações sobre arrays do MLX podem ser executadas em todos os tipos de dispositivos compatíveis sem realizar cópia de dados
- Atualmente, os tipos de dispositivos compatíveis são CPU e GPU
- Inclui diversos exemplos
- Treinamento de modelos de linguagem Transformer
- Geração de grandes volumes de texto com LLaMA e fine-tuning com LoRA
- Geração de imagens com Stable Diffusion
- Reconhecimento de fala com o Whisper da OpenAI
2 comentários
Isso realmente parece muito bom. Eu lido bastante com dados dinâmicos, então sempre sofri ao usar jax...
Oh, isso é bom. Vou experimentar.