24 pontos por xguru 2023-12-07 | 2 comentários | Compartilhar no WhatsApp
  • 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

 
mjhong0708 2023-12-07

Construção de grafo dinâmico: o grafo computacional do MLX é construído dinamicamente. Mesmo mudando o formato dos argumentos da função, a velocidade de compilação não fica mais lenta, e a depuração é simples e intuitiva

Isso realmente parece muito bom. Eu lido bastante com dados dinâmicos, então sempre sofri ao usar jax...

 
haebom 2023-12-07

Oh, isso é bom. Vou experimentar.