IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Intelligence artificielle Discussion :

Mojo : un nouveau langage de programmation pour l'IA qui serait 35 000 fois plus rapide que Python


Sujet :

Intelligence artificielle

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    juin 2016
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2016
    Messages : 3 121
    Points : 65 751
    Points
    65 751
    Par défaut Mojo : un nouveau langage de programmation pour l'IA qui serait 35 000 fois plus rapide que Python
    Mojo : un nouveau langage de programmation pour les développeurs d'IA qui tente de combiner la syntaxe de Python avec la portabilité et la rapidité de C
    il serait 35 000 fois plus rapide que Python

    La startup Modular AI, spécialisée dans les infrastructures d'IA, a dévoilé cette semaine Mojo, un nouveau langage de programmation qui combine la syntaxe de Python avec la portabilité et la rapidité de C. L'équipe affirme que cela devrait le rendre idéal à la fois pour la recherche et la production. Il vise à résoudre le double problème de l'informatique hétérogène en unifiant l'informatique haute performance et les cas d'utilisation dynamiques. Mojo prend en charge plusieurs backends matériels, notamment les CPU, les GPU, les TPU et les ASIC (Application-specific integrated circuit) personnalisés. En outre, l'entreprise affirme que Mojo est 35 000 fois plus rapide que Python.

    Langage de programmation Mojo : quels sont ses caractéristiques et ses avantages ?

    Modular AI est une startup américaine spécialisée dans les infrastructures d'IA fondée par Tim Davis et Chris Lattner, deux anciens employés de Google. La société vient de lancer Mojo, un nouveau langage de programmation qui tente de combler le fossé entre la recherche et la production en combinant le meilleur de la syntaxe Python avec la programmation de systèmes et la métaprogrammation. « Mojo permet une programmabilité inégalée du matériel d'IA et l'extensibilité des modèles d'IA. Vous pouvez écrire du code portable plus rapide que le C et interopérer de manière transparente avec l'écosystème Python », indique la documentation du langage.


    Modular AI affirme qu'elle n'avait pas l'intention de créer un nouveau langage de programmation. « Mais alors que nous construisions notre plateforme avec l'intention d'unifier l'infrastructure ML/AI mondiale, nous avons réalisé que la programmation à travers toute la pile était trop compliquée », note l'équipe. Cela signifie qu'il faut construire un langage de programmation avec une métaprogrammation puissante au moment de la compilation, l'intégration de techniques de compilation adaptatives, la mise en cache tout au long du flux de compilation, et d'autres choses qui ne sont pas prises en charge par les langages existants. Mais ils ne sont pas partis de zéro.

    Mojo exploitera l'ensemble de l'écosystème des bibliothèques Python, tout en étant construit sur une toute nouvelle base de code. Ceci, ainsi que la capacité de calcul élevée de C/C++, permettra aux développeurs d'IA Python de s'appuyer sur Mojo, au lieu de se rabattre sur C ou C++. Selon les développeurs, l'une des principales motivations de la création de Mojo est que la plupart des systèmes de programmation modernes s'appuient sur des accélérateurs tels que les GPU pour les opérations, et ne s'appuient sur les CPU principaux que pour les opérations de support telles que le chargement des données, le prétraitement et le post-traitement, etc.


    La startup souhaitait prendre en charge l'ensemble de ces opérations dans un seul et même langage. De plus, pour ne pas avoir à construire et à innover une nouvelle syntaxe ou une nouvelle communauté, l'entreprise a décidé d'opter pour Python et son écosystème. Mojo restera également open source jusqu'à ce qu'il devienne le superset de Python 3. Voici quelques-unes des principales caractéristiques et avantages cités par Modular AI pour Mojo :

    • prise en charge native de plusieurs backends matériels : Mojo prend en charge plusieurs backends matériels, notamment les CPU, les GPU, les TPU et les ASIC personnalisés, ce qui permet aux développeurs de tirer parti des atouts de chaque type de matériel ;
    • syntaxe et sémantique de haut niveau : Mojo possède une syntaxe et une sémantique de haut niveau similaires à celles de Python, ce qui facilite son apprentissage et son utilisation par les développeurs familiers de Python ;
    • parallélisation automatique : Mojo parallélise automatiquement le code sur plusieurs backends matériels, ce qui facilite l'écriture d'un code parallèle efficace sans avoir à se préoccuper des détails de bas niveau de la parallélisation ;
    • inférence et vérification de type : Mojo dispose d'un puissant système d'inférence et de vérification des types qui permet de détecter les erreurs à la compilation, réduisant ainsi la probabilité d'erreurs à l'exécution ;
    • compilation statique : Mojo est compilé de manière statique, ce qui signifie que le code est compilé avant d'être exécuté, ce qui se traduit par des temps d'exécution plus rapides et une meilleure optimisation.


    Quels sont les défis et la concurrence auxquels le langage Mojo pourrait faire face ?

    Mojo est le nouveau venu dans le domaine de l'IA. Il promet quelque chose qui, s'il s'avère exact, pourrait révolutionner l'IA d'une manière qui pourrait rendre toutes les applications d'IA des centaines de fois plus rapides. Le langage de programmation vise à concurrencer des langages plus établis dans le domaine comme Python, Julia, et Rust. Selon l'enquête Stack Overflow Developer Survey 2022, Rust est le langage le plus apprécié, et ce depuis sept ans sans interruption. Le problème de Rust est sa syntaxe complexe, qui rend son apprentissage difficile. Malgré cela, Rust est utilisé par Meta, Dropbox, et Google prévoit de l'implémenter également.


    L'enquête rapporte en outre que Julia s'est classé dans le top 5 des langages les plus appréciés, battant Python. Il en était de même l'année précédente. Répondant à des questions sur Hacker News à propos de la comparaison entre Julia et Rust, et des plans pour concurrencer Python, Chris Lattner, l'un des co-créateurs de Mojo, a fait l'éloge de Julia comme étant un "langage merveilleux et une communauté merveilleuse". Abordant les différences entre Julia et Mojo, il insiste sur le fait que Mojo a un tas d'avancées techniques par rapport à des langages comme Swift, Rust, C++, et même Julia, parce qu'il a appris d'eux et s'est construit à partir d'eux.

    Python (ou même Julia) n'est pas un langage privilégié pour la programmation de systèmes, mais surtout pour la construction de modèles d'IA. Bien qu'il surmonte cette limitation grâce à une liaison de bas niveau avec C et C++ pour la construction de bibliothèques, la construction de ces bibliothèques hybrides est une tâche compliquée qui nécessite la connaissance de C et C++. Mais construire ces bibliothèques hybrides est une tâche compliquée qui nécessite des connaissances en C et C++. C'est là que Mojo entre en jeu et le transforme en un langage de type Python intégrable et rétrocompatible, le "Pythonic-C".

    Dans les commentaires, certains affirment qu'il pourrait s'agir d'un remplaçant de Python, mais d'autres restent sceptiques quant à l'amélioration des performances promise par les créateurs de Mojo. Cependant, l'arène des langages de programmation reste imprévisible. Il pourrait s'agir d'un nouveau moment Julia dans le monde de la programmation, avec la syntaxe Python. Quoi qu'il en soit, OpenAI s'est lancé dans une mission quelque peu similaire avec Triton, son propre langage de programmation. Enfin, il faut noter qu'il y a un débat pour déterminer le langage qui pourrait servir à créer l'intelligence générale artificielle (IGA).

    Nom : 645080676d8af27dc2a855dd_Screen Shot 2023-05-01 at 9.15.36 PM.png
Affichages : 54713
Taille : 22,2 Ko

    Certains plébiscitent Julia et d'autres Rust. Il est intéressant de noter qu'Elon Musk a tweeté sur le fait que l'IGA ne sera pas construit sur Python, mais sur Rust. Cela fait suite à sa déclaration selon laquelle il est un fan de Rust. Sur le fil de discussion, certains utilisateurs ont répondu qu'ils étaient du côté de Chris Lattner et qu'ils espéraient qu'il s'agirait de Swift, l'une des premières propositions de Lattner. Modular AI a déclaré : « et si c'était le meilleur de tous ? ». Lattner est également l'une des personnes à l'origine du projet LLVM, un ensemble de technologies modulaires et réutilisables de compilateurs et de chaînes d'outils.

    Sources : Modular AI (1,2), Mojo

    Et vous ?

    Quel est votre avis sur le sujet ?
    Que pensez-vous du langage de programmation Mojo ?
    Quels commentaires faites-vous sur les promesses de Mojo pour l'IA ?
    Mojo est-il une alternative viable à Python, Julia et Rust pour le développement de l'IA ?
    Mojo pourrait-il surpasser ses concurrents et devenir la norme pour le développement de l'IA ?

    Voir aussi

    Le langage de programmation Julia ne cesse de gagner en adoption au sein de la communauté scientifique : hausse de 87 % des téléchargements sur 2020, en raison de son rapport simplicité-performance

    Julia est le lauréat du prix de la DARPA pour créer un framework devant permettre de multiplier par 1000 la vitesse de la simulation électronique

    Java, Python, Kotlin et Rust connaissent une croissance rapide, mais JavaScript reste le langage de programmation le plus populaire, selon une enquête de SlashData

    JavaScript et Python règnent, mais Rust monte en puissance, le nombre d'utilisateurs de Rust dans le monde serait passé à 2,2 millions, selon une enquête de SlashData
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Expert confirmé
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    avril 2016
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : avril 2016
    Messages : 1 377
    Points : 5 726
    Points
    5 726
    Par défaut
    J'ai lu la documentation de Mojo.

    En résumé, à terme, il cherche à devenir un sur-ensemble de Python.

    Le code ressemblera un peu à plusieurs langages qui cohabitent. Dans la page Mojo🔥 programming manual, les fonctions définies avec fn suivent des règles différentes que les fonctions définies avec def. De même, les structures de données définies avec struct suivent des règles différentes que les classes définies avec class. Mais c'est plutôt normal si on veut donner la possibilité d'écrire du code performant.

    À propos des performances, je vois qu'il y a des constructeurs de copie et de mouvement comme en C++ et que le compilateur travaille pour savoir statiquement quand détruire certains objets. Les auteurs de Mojo exagèrent quand ils disent que Mojo aura les mêmes performances de C++ et Rust, mais Mojo sera probablement plus performant que les langages dont tous les objets sont gérés par un ramasse-miettes.

    Dans la page Mojo🔥 roadmap & sharp edges, on voit qu'il reste beaucoup de boulot à faire.

    Que va devenir ce langage sur le long terme ? Il est encore trop tôt pour le savoir. Mais, à première vue, je pense que Mojo a plus de chances de réussir que Julia.

    En tout cas, s'il réussit à devenir un sur-ensemble de Python, alors il aura vaincu le principal frein à l'adoption de tout langage : la courbe d'apprentissage. Notre industrie freine beaucoup l'adoption de tout langage qui demande plus d'efforts en début d'apprentissage que les autres : le langage peut être une usine à gaz, mais doit paraître simple au début.

    Ensuite, si Mojo réussit à avoir un meilleur tooling que Python ou des bibliothèques exclusives de qualité, alors il pourra percer. Mais on ne peut pas savoir aujourd'hui si ça va arriver.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    26 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 26 574
    Points : 215 592
    Points
    215 592
    Billets dans le blog
    105
    Par défaut
    Bonjour,

    Moi... je n'ai pas lu la documentation. Par contre, j'ai regardé la Keynote. C'est trop commercial pour moi (dans le sens, trop de superlatif pour présenter leurs produits). D'ailleurs, ils ne présentent pas que Mojo (qui au final, ne possède que les dix dernières minutes de la présentation), mais aussi une nouvelle API permettant d'écrire un seul code pour faire de l'IA à destination de n'importe quel CPU/GPU et autres trucs. L'idée est sûrement bonne (je ne peux pas trop me prononcé, ce n'est pas mon domaine), mais j'aurais préféré un truc ouvert et tout comme Khronos pour cela.
    Revenons à Mojo. Le coup de plus rapide que C/C++... hum... tousse tousse. Voilà, c'est exagéré. De ce que je vois, c'est que Mojo apporte : l'allocation mémoire, les structures (de vraies structures à la C/C++ ), les instructions SIMD, une facilité à la parallélisation, au tiling et à l'autotune. Enfin, ça, c'est en regardant la présentation et dans la présentation, tout semble beau, tout brille, mais je doute que ce soit aussi simple/direct dans la vraie vie.
    Alors, oui, Mojo sera plus rapide que Python et a l'avantage de pouvoir réutiliser l'écosystème de Python, mais pour cela, on alourdit le langage et on lui donne des fonctionnalités avancées et poussées pour accélérer le code. En fait, cela revient à faire un code naïf en C++ et après, de dire: regardez, en utilisant le multithread, le SIMD, bah j'ai un programme N fois plus rapide. Rien de nouveau et la complexité du code augmente inévitablement. Alors, oui, leur enrobage de ces aspects avancés pourra aider certains développeurs Python a les utiliser, sans avoir à réécrire leur programme.

    Un dernier aspect, c'est que leur truc est fermé (pour le moment ?). D'expérience, il sera fermé tant qu'il apportera des sous à la société et si la communauté (ou les investisseurs) n'accroche pas, bah il sera ouvert et... peut être... repris par la communauté open source (ou pas). Bref, ils n'ont pas donné d'échéance à cet aspect et je trouve que cela apporte une incertitude.

    Comme la dit Pyramidev, y a du boulot à faire. Je n'ai pas regardé la roadmap, mais leur Github où ils collectent les retours/bugs rencontrés par ceux qui ont essayé.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/06/2022, 09h20
  2. Une scientifique propose un nouveau langage de programmation pour enseigner aux enfants le codage informatique
    Par Patrick Ruiz dans le forum Débats sur le développement - Le Best Of
    Réponses: 17
    Dernier message: 12/04/2021, 23h11
  3. Réponses: 12
    Dernier message: 19/03/2017, 15h38
  4. Réponses: 0
    Dernier message: 01/01/2014, 17h17
  5. Réponses: 9
    Dernier message: 14/08/2012, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo