Mojo: язык программирования для ИИ, который быстрее Python в 68 000 раз

29 марта новый язык программирования Mojo стал доступен для всех разработчиков. Рассказываем о языке, его особенностях, плюсах и минусах.

Мы — Digex Co. Создаем современные технологичные IT-продукты под ключ.

Mojo от Modular

О Mojo

Создатель Mojo — компания Modular. Они позиционируют язык как современную и успешную замену Python, полностью с ним совместимую. В отличии от Python, у Mojo лучше производительность, которая сопостваима с C и C++.

Язык Mojo используется при работе с платформой MAX. Это коммерческий проект компании Modular на основе ИИ. Платформа состоит из инструментов для работы с ИИ, среди которых запуск приложений в средах Kubernetes. 29 марта некоторые инструменты сделали доступными для всех разработчиков.

По своей сути Mojo — это тот же Python. Это рациональное решение, так как язык используют миллионы программистов по всему миру на протяжении нескольких лет. Впервые язык был анонсирован в мае 2023 года, а уже в августе его сделали доступным для всех желающих. В апреле 2024 года база пользователей языка составляет 180 тыс IT-специалистов и 55 тыс компаний. Вся документация по Mojo доступна на GitHub.

Mojo на GitHub

Производительность

Один из недостатков языка — отсутствие слияния. Mojo работает таким образом, что вся информация трансформируется из Python в C и обратно, что занимает какое-то время.

Чтобы не вызывать множество скомпилированных функций, разработчикам приходиться создавать сведенные версии популярных комбинаций, вызывать написанные функции из Python. От программистов требуется знание большого числа библиотечных функций.

Еще одна проблема — неэффективная параллельная обработка в Python. В питоне при работе задействуется только одно ядро. Чтобы одновременно задействовать два и более ядер, можно использовать некоторые способы создания параллельного кода, но у них есть свои ограничения.

Эту сложность стараются устранить. Например в библиотеке PyTorch на регулярной основе совершенствуются методы борьбы с производительностью. Например, в недавнюю выпущенную версию добавили функцию «compile», в которой применяется бэкенд компиляция для написания кода с высокой производительностью. Однако даже такие продвинутые функции не решают полностью проблему.

Отличительные черты

У языка есть быстрый режим. Для написания функции разработчики могут применять «fn», а не «def». В быстром режиме каждой переменной можно задать тип. В итоге получается оптимизированный код.

Вместо функции «class» применяют «struct». Это позволяет разработчикам использовать атрибуты в структурах данных без погони за показателями. Таким образом, часть функций из С перекочевала в Python. За счет этого возрастает производительность.

Входящие в язык функции позволяют оптимизировать настройки для алгоритма обработки данных ИИ. Пользователям доступны не только некоторые функции библиотеки, но и история их изменений.

Станет ли Mojo заменой Python

В таблице сравнили языки и собрали основные отличия Mojo от Python:

Пока рано делать выводы, станет ли Mojo альтернативой Python в процессе обучения ИИ. Язык новый и активно развивается. Пройдет как минимум несколько лет прежде чем он наберет повсеместную популярность. Но потенциал и уникальные преимущества у Mojo есть.

0
Комментарии
-3 комментариев
Раскрывать всегда