MLX - un framework de tableaux proche de NumPy pour Apple Silicon
(github.com/ml-explore)- Un framework de tableaux conçu par l’équipe de recherche en machine learning d’Apple, pensé pour exécuter du machine learning de manière efficace et flexible sur Apple Silicon
- Il fournit une API Python très proche de NumPy, ainsi qu’une API C++ offrant l’ensemble des fonctionnalités
- Différences avec NumPy
- Composable function transformations : MLX propose des transformations de fonctions composables pour la différenciation automatique, la vectorisation automatique et l’optimisation du graphe de calcul
- Lazy Computation : les calculs de MLX sont paresseux. Les tableaux ne sont matérialisés que lorsque c’est nécessaire
- Multi-appareils : les opérations peuvent être exécutées sur tous les appareils pris en charge (CPU, GPU, ...)
- Construction dynamique du graphe : le graphe de calcul de MLX est construit dynamiquement. Modifier la forme des arguments d’une fonction ne ralentit pas la compilation, et le débogage reste simple et intuitif
- Inspiré par des frameworks comme PyTorch, Jax et ArrayFire
- La différence la plus notable entre ces frameworks et MLX est le modèle de mémoire unifiée
- Les tableaux MLX sont stockés en mémoire partagée. Les opérations sur les tableaux MLX peuvent être exécutées sur tous les types d’appareils pris en charge sans copie de données
- Les types d’appareils actuellement pris en charge sont le CPU et le GPU
- Inclut divers exemples
- Entraînement d’un modèle de langage Transformer
- Génération de texte à grande échelle avec LLaMA et fine-tuning avec LoRA
- Génération d’images avec Stable Diffusion
- Reconnaissance vocale avec OpenAI's Whisper
2 commentaires
Ça a vraiment l’air très bien. Je manipule souvent des données dynamiques, donc avec jax c’était toujours compliqué...
Oh, c’est bien, ça. Je vais l’essayer.