Мова Mojo для розробника AI

Світ технологій постійно рухається. Найновішим у блоці є мова програмування Mojo. Потрібна манія, щоб покращити швидкість виконання проектів на основі Python, даючи розробникам швидкість, подібну до C.

Python є однією з найкращих мов програмування. Це універсальна проста у вивченні мова програмування, яка пропонує новачкам шлях до програмування/інформатики.

Крім того, це чудова мова програмування для рук компетентних розробників, які можуть використовувати її для створення складних програм. Однак одним із найбільш істотних недоліків Python є його швидкість виконання. І тут на допомогу приходить Моджо.

У цій статті розповідається про Mojo та його зв’язок з екосистемою Python. Давайте розпочнемо.

Що таке Mojo?

Mojo — сучасна мова програмування високого рівня. Він пропонує інтуїтивно зрозумілий дизайн, щоб допомогти розробникам швидко створювати програми. Крім того, він спрямований на подолання розриву між виробництвом і дослідженнями, дозволяючи користувачам використовувати функції метапрограмування та системне програмування з синтаксисом і екосистемою Python.

Він багато в чому запозичив у Rust і забезпечує високу швидкість виконання для екосистеми Python. Технічно Mojo є надмножиною Python, яка надає вам доступ.

Команда Mojo — це компанія Modular, яка розробляє інфраструктуру ШІ. А це також означає, що це мова програмування для розробників ШІ. Разом із мовою програмування Mojo вони також представили Interference Engine, який дозволяє розробникам покращувати свій робочий процес, масштабувати продукти штучного інтелекту та зменшувати затримку логічного висновку (про це пізніше).

За словами генерального директора Modular Кріса Латтнера, Mojo в 35 000 разів швидший за Python. Він також стоїть за швидкою розробкою мови програмування. Збільшення швидкості досягається завдяки тому, як Mojo використовує ланцюжок компіляторів LLVM та інфраструктуру компілятора MILR (Огляд багаторівневого проміжного представлення).

  Як увімкнути перегляд сітки Google Meet

Цілі мов програмування Mojo включають:

  • Працюйте з повною сумісністю з екосистемою Python.
  • Дозвольте розробникам розгортати підмножини коду на прискорювачах.
  • Контроль низького рівня для забезпечення передбачуваної продуктивності.
  • Забезпечити відсутність фрагментації екосистеми.

Щоб спробувати Mojo, вам потрібно буде використовувати його в їхньому хмарному середовищі Mojo Playground. Він попросить вас увійти, і ви зможете отримати робоче середовище!

Навіщо нам Mojo?

Основна ідея Mojo полягає в тому, щоб уніфікувати інфраструктуру ML/AI, забезпечивши мову програмування, яка працює у всьому стеку. Крім того, це забезпечує простоту використання, усуваючи необхідність писати код MLIR.

Згідно з Modular, Mojo запропонує масштабовану та інноваційну модель програмування. Завдяки цьому польові користувачі ШІ зможуть легко працювати з прискорювачами та гетерогенними системами.

Технічно це робить Mojo мовою програмування, яка підтримує метапрограмування під час компіляції. Він також підтримує інші функції, такі як кешування під час компіляції, методи адаптивної компіляції тощо. Ці функції відсутні в інших мовах програмування.

Якщо ви хочете прочитати більше про філософію Mojo, перегляньте Modular Docs – Чому Mojo🔥

Особливості мови програмування Mojo

У цьому розділі ми розглянемо ключові особливості мови програмування Mojo.

#1. Повна сумісність з Python

Mojo прагне працювати з екосистемою Python, а не проти неї. Це видно з того факту, що Mojo використовує ті самі функції, бібліотеки та можливості, які пропонує Python. Отже, ви можете використовувати будь-яку бібліотеку Python у Mojo.

Щоб імпортувати, вам потрібно буде використати такий код:

from PythonInterface import Python

Після цього ви можете використовувати Python.import_module() для імпорту будь-якої бібліотеки Python.

Наприклад, щоб імпортувати numpy, вам потрібно буде використати наступний рядок коду.

let np = Python.import_module(“numpy”)

У Python вам потрібно буде виконати «імпортувати numpy як np»

  Як створити гру на вгадування чисел на Python?

Оскільки він імпортований, тепер ви можете використовувати його для створення масивів, виконання обчислень тощо.

array = np.array([1, 2, 3])

print(array)

Так само ви можете імпортувати matplotlib.pyplot або створити діаграму в Mojo.

Ось як це виглядає, коли я запускаю код у Mojo Playground.

Якщо ви хочете випробувати код, скопіюйте та вставте його знизу.

from PythonInterface import Python

let np = Python.import_module("numpy")

array = np.array([1, 2, 3, 4, 5])

print(array)

#2. МІЛР

MILR означає Multi-Level Intermediate Representation. Mojo підтримує MILR. Це, у свою чергу, дозволяє розробникам використовувати повний набір нових розширених функцій. Ці функції включають апаратні блоки ШІ, потоки та вектори.

MILR покращує продуктивність завдяки паралелізму, роблячи Mojo швидшим за Python. Крім того, це дозволяє розробникам використовувати переваги кількох ядер.

#3. Перевірка прав власності та позичальника

Керування пам’яттю Python є безпечним. Він використовує збирач сміття, тому програмісти повинні переконатися, що код не потрапляє в умови змагання.

Mojo, подібно до Rust, реалізує сувору модель перевірки власності та позичальника. Наразі він частково реалізований. Ідея використання моделі полягає в тому, щоб покращити паралелізм і забезпечити чудове керування пам’яттю.

Модель власності також забезпечує потокобезпечний підхід, який ідеально підходить для забезпечення відмінної підтримки одночасного виконання. Таким чином, програми не стикаються з умовами змагання. Крім того, засіб перевірки позичальника гарантує, що змінні завжди перевіряються під час виконання.

#4. Нульова вартість абстракції

Mojo пропонує безкоштовні абстракції, що дозволяє розробникам повністю контролювати сховище. Тут програмісти можуть робити вбудовані значення розподілу для структур.

#5. Автонастройка

Mojo також пропонує автоматичне налаштування. Це забезпечує автоматичний розподіл найкращих значень параметрів залежно від цільового обладнання.

Автоматичне налаштування усуває необхідність вручну оптимізувати ваш код відповідно до цільового обладнання.

  Як створити гру «Змійка» на Python

Швидкість: наскільки швидка мова Mojo?

Python — це мова програмування високого рівня, яка спрямована на простоту використання та обслуговування. На жаль, це робить його повільним порівняно з іншими рішеннями чи мовами програмування.

У тесті Modular вони виявили, що Mojo становить 35000x. Вони використали алгоритм Мандельброта та запустили його на екземплярі AWS із процесором Intel Xeon. Вони протестували PYPY, SCALAR C++ і MOJO разом із Python. Результати були надзвичайно швидкими, і ви можете побачити результати нижче.

Джерело: modular.com

Щоб дізнатися більше про швидкість Mojo, перегляньте цю публікацію в спільноті Julialang.

Modular Inference Engine – дешево запускайте моделі штучного інтелекту

Modular також розробляє модульний механізм перешкод, який здешевлює використання моделей AI у виробництві. Mojo за замовчуванням підтримує Modular Interfence Engine. Це дозволяє командам спростити свій робочий процес. Це також дозволяє розробникам зменшити затримку висновків, полегшуючи масштабування продуктів AI.

Крім того, розробникам не потрібно змінювати свою модель, щоб використовувати Engine. Після завантаження він може заряджати моделі PyTorch і TensorFlow, здатні працювати з високою продуктивністю з широкою апаратною підтримкою.

Чи замінить це Python?

Mojo новий. Виглядає багатообіцяюче. Отже, потрібен час, щоб охопити цільову аудиторію, наприклад спеціалістів із обробки даних або мов програмування. І, так, це вирішує певні проблеми для ентузіастів і тих, хто навчається ШІ. Однак існує багато подібних рішень, які покращують швидкість мови Python. Наприклад, ви знайдете Jax, Codon і Julia — мову, орієнтовану на науку про дані.

Отже, можуть статися дві речі. По-перше, він експоненціально зростає щодо функцій, і спільнота приймає його. Іншим результатом є те, що вона стає спеціальною мовою програмування, яка використовує бібліотеки Python і модульний механізм перешкод.

Отже, чи замінить Mojo Python? Тільки час може сказати.

Далі ознайомтеся з корисними однорядковими кодами Python, щоб спростити типові завдання.