Langage de programmation d'IA de nouvelle génération essayant de remplacer Python : Mojo

Mojo est un langage de programmation innovant qui combine la convivialité de Python avec les performances de C. Il vise à être le langage de choix pour le développement de l'intelligence artificielle (IA) car il permet aux développeurs d'écrire du code à la fois rapide et facile à lire.

Voici quelques points clés,

  • Modular est un nouveau langage de programmation conçu pour relever les défis de programmation de l'ensemble de la pile d'IA.
  • Mojo vise à être un modèle de programmation innovant et extensible qui peut cibler les accélérateurs et autres systèmes hétérogènes.
  • Mojo est construit sur l'écosystème Python, ce qui le rend largement disponible et facile à utiliser.

Pourquoi s'appelle-t-il Mojo ?

Mojo signifie "charme magique" ou "pouvoir magique". Le nom convient au langage qui apporte le pouvoir magique à Python, y compris des modèles de programmation innovants pour les accélérateurs et autres systèmes hétérogènes omniprésents dans l'IA.

Un membre de la famille Python, Mojo

Mojo est un nouveau langage de programmation conçu pour être entièrement compatible avec l'écosystème Python.

  • Fournit des performances de bas niveau prévisibles et un contrôle de bas niveau.
  • Permettra aux développeurs de déployer des sous-ensembles de code sur les accélérateurs.
  • Ne crée pas un écosystème logiciel fragmenté.
  • Bénéficieront de cours dans d'autres langues.
  • sera un sur-ensemble de Python et sera compatible avec les programmes Python existants.
  • De nouveaux outils seront fournis pour développer un code sécurisé et performant au niveau du système.
  • Permettra aux développeurs de choisir entre le typage statique et le typage dynamique.

Avantages de Python :

Python est une force dominante en ML et dans d'innombrables autres domaines.

Python est facile à apprendre, est connu par un groupe important de programmeurs, possède une communauté incroyable, possède un grand nombre de packages précieux et dispose d'une grande variété d'excellents outils.

Python prend en charge le développement d'API belles et expressives grâce à ses fonctionnalités de programmation dynamique.

Les frameworks d'apprentissage automatique tels que TensorFlow et PyTorch utilisent Python comme frontal pour leurs environnements d'exécution hautes performances implémentés en C++.

Pour Modular, Python fait partie intégrante de sa pile de surface d'API.

L'équipe de modularité souhaite que les membres de l'écosystème Python voient que leur objectif Mojo est de faire passer Python au niveau supérieur - de le compléter - plutôt que de le concurrencer.

Compatibilité Python

Mojo 旨在与 Python 生态系统完全兼容。兼容性有两种类型:导入兼容性和迁移兼容性。

Mojo 与 Python 100% 导入兼容,因为它使用 CPython 实现互操作性。但 Mojo 尚未完全与 Python 兼容。

就 Python 和 Mojo 而言,Mojo 期望直接与 CPython 运行时合作,并具有与 CPython 类和对象集成的类似支持,而无需自行编译代码。

这提供了与现有代码的庞大生态系统的插件兼容性,并且它支持渐进式迁移方法,在该方法中,向 Mojo 的增量迁移会产生增量收益。

Python 的问题

Python 有一些众所周知的问题,包括糟糕的底层性能和全局解释器锁 (GIL),这使得 Python 成为单线程的。这些问题在通常需要高性能和多线程能力的 AI 领域影响尤其大。

解决这些问题的一种方法是使用混合库,它们是使用 Python 和 C/C++ 的组合构建的。但是,构建混合库很复杂,需要 Python 和 C/C++ 的知识。这会使大型框架的发展变得困难,并可能导致可用性问题。

此外,必须同时处理 Python 和 C/C++ 代码的两个世界问题可能会导致难以使用调试器和其他工具。这对于 AI 开发人员来说尤其成问题,他们经常需要使用像 CUDA(计算统一设备架构)这样的加速器。

CUDA(计算统一设备架构)是一种定制的编程语言,有其自身的特殊问题和局限性。

AI 世界在硬件方面有大量的创新,因此,复杂性正在失控。现在有几种尝试为加速器(OpenCL、Sycl、OneAPI 等)构建有限的编程系统。

然而,这些系统都没有解决工具和生态系统中严重损害行业的基本碎片化问题。 Mojo 旨在通过提供一种可用于系统编程和 AI 开发的统一语言来解决这些问题。

Mojo 仍在开发中,但它有可能彻底改变人工智能行业。

移动和服务器部署:

Python 生态系统的另一个挑战是部署。这有很多方面,包括如何控制依赖关系、如何部署密封编译的“a.out”文件以及如何提高多线程和性能。

Python 子集和其他类似 Python 的语言:

已经有很多构建可部署 Python 的尝试,例如 PyTorch 项目中的 TorchScript。

这些语言很有用,因为它们通常提供低依赖性部署解决方案,有时还具有高性能。它们使用类似 Python 的语法,这使得它们比一门新语言更容易学习。

但是,这些语言并未得到广泛采用,因为它们:

  • 不与 Python 生态系统互操作
  • 没有出色的工具(例如调试器)
  • 单方面更改 Python 中不方便的行为,这会破坏兼容性并进一步分割生态系统

这些方法的挑战在于它们试图解决 Python 的一个弱点,但它们在 Python 的强项上并不擅长。

充其量,它们可以提供 C 和 C++ 的新替代方案,但如果不解决 Python 的动态用例,它们就无法解决“两个世界问题”。

这种方法导致碎片化,不兼容性使迁移变得困难甚至不可能。

Je suppose que tu aimes

Origine juejin.im/post/7244497027758325820
conseillé
Classement