Mojo : un nouvau langage qui combine les avantages de Python et de C pour développer des applications d'IA

Par:
fredericmazue

ven, 05/05/2023 - 11:11

Parce qu'il est un langage facile à apprendre Python s'est imposé parmi les chercheurs dans le monde de l'intelligence artificielle. Python est devenu incontournable dans ce domaine. En outre il existe de nombreuses bibliothèques. Mais un défaut de Python est sa lenteur. La société Modular tente de résoudre le problème en proposant un nouveau langage : Mojo.

Mojo combine la convivialité de Python avec les performances de C et ajoute de nouvelles capacités d'adaptation aux accélérateurs d'IA.

Modular AI souligne que Python est un langage de haut niveau puissant, doté d'une syntaxe propre et facile à apprendre et d'un vaste écosystème de bibliothèques : Python alimente presque toutes les recherches sur l'IA aujourd'hui. Cependant, il présente également des problèmes d'évolutivité bien connus : il ne permet pas d'accéder aux charges de travail les plus importantes ni aux appareils périphériques. Au lieu de cela, le déploiement de l'IA de production se produit dans d'autres langages comme C++ et CUDA. Le résultat est un paysage logiciel d'IA fragmenté qui réduit la productivité des développeurs d'IA et ralentit le pipeline de la recherche à la production.

Mojo veut résoudre ces problèmes en apportant, selon Modular, des super pouvoirs aux développeurs d'IA :

  • Écrire tout dans un seul langage : Mojo combine les parties de Python que les chercheurs adorent avec les fonctionnalités de programmation système qui nécessitent l'utilisation de C, C++ et CUDA. Mojo est construit sur des technologies de compilateur de nouvelle génération qui débloquent des gains de performances significatifs lorsque vous ajoutez des types à vos programmes, vous permettent de définir des abstractions sans coût, de bénéficier d'une sécurité de mémoire de type Rust.


Avec Mojo, écrivez en Python ou mettez à l'échelle jusqu'au métal, en créant littéralement des instructions SIMD.

  • Déverrouiller les performances de Python : Mojo est construit sur le runtime hétérogène haute performance de Modular et utilise MLIR, qui lui permet d'accéder à tout le matériel d'IA. Cela permet à Mojo d'accéder au threading, aux fonctionnalités matérielles de bas niveau telles que les extensions TensorCores et AMX, et d'accéder aux accélérateurs. Mojo est 35 000 fois plus rapide que Python lors de l'exécution d'algorithmes numériques comme Mandelbrot, car il peut tirer pleinement parti du matériel.
  • Accéder à l'ensemble de l'écosystème Python : Mojo ne ressemble pas seulement à Python, il donne également accès à l'écosystème Python complet, y compris les favoris comme Numpy, Pandas, Matplotlib, ainsi que tout autre code Python personnalisé existant.
  • Mettre à niveau les modèles et la pile modulaire : Mojo n'est pas un projet parallèle - tous les noyaux internes de Modular sont écrits en Mojo, c'est pourquoi le moteur d'inférence modulaire est doté de performance et de portabilié. Le moteur vous permet d'étendre vos modèles avec des opérations de pré et post-traitement Mojo et de remplacer les opérations existantes par des opérations personnalisées. Mojo vous permet de personnaliser la pile modulaire avec la fusion du noyau, les réécritures de graphes, les fonctions de mise en forme, le tout sans avoir à recompiler le framework ou à écrire du C++ ou du CUDA.

Mojo est toujours en développement, mais il est possible de l'essayer en s'inscrivant ici : modular.com/mojo