Вы когда-нибудь хотели создавать более быстрые и эффективные приложения, но обнаруживали, что стандартные языки программирования не соответствуют вашим требованиям?
Именно тогда в игру вступает язык Mojo.
Mojo — новый язык программирования, разработанный модульная, компания, которая специализируется на инфраструктуре искусственного интеллекта.
Он специально разработан, чтобы позволить разработчикам создавать более быстрые и надежные приложения для нескольких вариантов использования, включая разработку ИИ. В этом посте мы рассмотрим, что Mojo как это работает и почему вы должны использовать его в своем следующем проекте.
Истоки моджо
Создатели Mojo осознали потребность в языке программирования, сочетающем удобство использования Python со скоростью и эффективностью C.
И они создали язык, который позволил бы разработчикам создавать высокопроизводительные приложения без необходимости изучения стандартных языков описания оборудования.
В результате они создали Mojo, который должен быть полностью совместим с экосистемой Python, обеспечивая при этом скорость уровня C.
Modular: организация, стоящая за языком Mojo
Итак, кто создатели этого футуристического языка?
Modular — ведущий в мире стартап в области инфраструктуры ИИ, созданный Крисом Латтнером и Тимом Дэвисом, которые встретились в Google и поняли, что слишком сложная и фрагментированная инфраструктура ограничивает глобальное влияние ИИ.
Цель и задача Modular — переосмыслить инфраструктуру ИИ для улучшения человечества. Их культура и принципы делают ставку на клиентов, высококачественное производственное программное обеспечение и достижение значимых результатов.
Цели Моджо
Mojo был разработан, чтобы предоставить уникальную модель программирования для ускорителей машинного обучения.
Modular определил, что Mojo должен позволять программирование общего назначения, потому что современные процессоры имеют тензоры и другие ускорители ИИ. Кроме того, поскольку Python широко используется в машинном обучении и других областях, Modular решила присоединиться к экосистеме Python.
Использование Python еще больше упростило разработку языка. Поскольку большая часть синтаксиса уже была определена, корпорация могла вместо этого сосредоточиться на построении механизма компиляции и предоставлении специализированных возможностей программирования.
Важные особенности, которые следует учитывать
программируемость
Прогрессивные типы
Функция прогрессивных типов в Mojo Language позволяет разработчикам использовать аннотации типов для повысить эффективность и проверки ошибок.
Разработчики могут разрабатывать более эффективный код, обнаруживающий ошибки во время компиляции, устраняющий ошибки и повышающий эффективность за счет предоставления более подробной информации о типах.
Абстракции с нулевой стоимостью
Разработчики могут управлять хранилищем путем встроенного распределения данных в структуры благодаря бесплатным абстракциям, предоставляемым языком Mojo.
Благодаря устранению необходимости в дополнительном выделении памяти эта функция повышает эффективность кода и снижает объем шаблонного кода.
Встроенная автонастройка языка
Встроенная в язык функция автонастройки в Mojo Language позволяет разработчикам автоматически определять идеальные значения параметров, чтобы извлечь выгоду из целевого оборудования.
Благодаря этой функциональности проще оптимизировать код без необходимости вручную настраивать его для каждой комбинации оборудования.
Язык Mojo — это гибкий и эффективный инструмент для разработки ИИ, поскольку он также обеспечивает всю мощь MLIR (многоуровневое промежуточное представление), параллельную гетерогенную среду выполнения и быстрое время сборки.
Распараллеливание
Mojo использует MLIR, который позволяет программистам использовать векторы, потоки и аппаратные единицы для ИИ для распараллеливания. Mojo поддерживает параллельную обработку нескольких ядер, в отличие от однопоточного выполнения Python.
С ускорением в 35,000 XNUMX раз по сравнению с Python, Mojo превосходит другие языки с точки зрения скорости.
Взаимодействие
Взаимодействие со всей экосистемой Python — одно из уникальных преимуществ Mojo. Это означает, что вы можете комбинировать Mojo с любыми произвольными библиотеками, такими как Numpy и Matplotlib, а также со своим кодом на заказ.
Например, вы можете визуализировать данные в своем коде Mojo, используя библиотеку Python Matplotlib.
растяжимость
Mojo также довольно гибок, позволяя пользователям просто добавлять шаги предварительной и последующей обработки в модели или заменять существующие шаги новыми.
Чтобы улучшить свои модели и модульный стек, разработчики могут использовать слияние ядра, перезапись графов, функции формы и другие методы.
Почему вы бы предпочли его Python?
Python — популярный язык разработки ИИ из-за его гибкости и высокопроизводительных скомпилированных библиотек. Однако он значительно медленнее, чем такие языки, как C++.
Поэтому программисты учатся использовать оболочки Python для более быстрых языков, чтобы не использовать Python для областей, критически важных для производительности.
Это приводит к проблеме двух языков, в которой модели должны быть преобразованы из Python в более быструю реализацию, такую как ONNX или скрипт torch, который не поддерживает все возможности Python. У Python также есть проблемы с производительностью и отсутствие хорошей параллельной обработки.
Даже опытным программистам трудно изучать, отлаживать и решать проблемы с производительностью из-за дилеммы двух языков.
Существуют также основные ограничения на то, что может делать Python, из-за того, как устроен язык. Хотя реальная реализация алгоритмов, использующих базовые компоненты, может показаться простой, она значительно сложнее и требует использования более быстрого языка.
С чего начать?
Вы можете начать использовать Mojo Language прямо сейчас на их игровой площадке. Игровая площадка на базе JupyterHub дает уроки и возможность создать свой собственный код Mojo, хотя работа над Mojo все еще продолжается.
Вы можете зарегистрироваться для доступа на их веб-сайте, чтобы получить доступ к игровой площадке.
Для достижения своих целей производительности Mojo использует технологии компиляции нового поколения с интегрированными технологиями кэширования, многопоточности и облачного распространения.
Он добавляет дополнительные примитивы в системное программирование и со временем стремится стать надмножеством Python. Чтобы начать кодирование с помощью Mojo, используйте компилятор Mojo для запуска программы Mojo из терминала так же, как это делает Python.
В настоящее время язык находится в стадии разработки и предназначен для разработчиков, имеющих опыт системного программирования.
Итоги
Mojo считается надмножеством Python. И у него есть потенциал революционизировать программирование, сочетая простоту Python с производительностью C++ и Rust.
Он может использовать все преимущества Библиотека Python Экосистема, позволяющая разработчикам создавать высокопроизводительные библиотеки без использования C, C++, Rust или CUDA.
Он позволяет создавать переносимый код благодаря функциям автонастройки и метапрограммирования во время компиляции.
Хотя он все еще находится в стадии разработки, он может стать мощным инструментом программирования и преобразовать индустрию программирования. Итак, мы должны следить за будущими разработками Modular!
Крис Сантос
Как вы думаете, сможет ли человек со знаниями от базового до среднего начать изучение этого нового языка? Или вы советуете сначала изучить более простой язык, такой как Javascript или Python?
Ильке Кандан Бенги
Здравствуйте, Крис, извините за поздний ответ! Я считаю, что предварительное базовое понимание/опыт работы с Python может быть полезным перед началом работы с Mojo.