Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

Mojo — новый язык для разработки ИИ в 35000 раз быстрее Python

Новости

Рассказываем о новом языке программирования Mojo, который создан для разработки ИИ. Он в 35000 раз быстрее Python.

30К открытий32К показов

Mojo разработан как надстройка к Python, поэтому, если вы уже знаете Python, изучение Mojo не составит труда.

Также Mojo сочетает в себе удобство Python и производительность C. Такой синтез сделал Mojo до 35000 раз быстрее Python.

Если вы увлекаетесь искусственным интеллектом и уже знаете Python, Mojo определенно стоит попробовать.

Зачем нужен Mojo, если есть Python

Простота и универсальность Python сделали его самым популярным языком в таких областях, как Data Science, Machine Learning и AI.

У Python есть куча пакетов для работы с данными, но он проигрывает из-за отсутствия библиотек высокой производительности.

Python выступает лишь в качестве клеевого слоя и низкоуровневой привязки к C, C++ и другим языкам с лучшей производительностью.

Конечно, у Python-сообщества есть numpy и TensorFlow. Однако разработка библиотек сообществом — это долго и сложно. Разработка библиотек также требует низкоуровневого понимания внутренностей CPython, требует знания C/C++ и т.д.

Документация Mojo гласит, что проблемы Python слишком глубоки, и эти ограничения влияют на разработку ИИ.

Чтобы избавиться от проблем Python, был создан Mojo. Это язык программирования, который сочетает в себе удобство Python и производительность C.

Разработчиком Mojo стала компания Modular. Соучредитель Modular — Крис Латтнер, создатель Swift и LLVM.

Попробуете Mojo?
Да, высокой производительности и правда не хватало при разработке ИИ
Нет, это ещё один убийца Python
Я не ИИ-разработчик

Особенности Mojo

Mojo поставляется с множеством интересных функций из коробки. Вот некоторые из них.

Mojo разработан как надстройка к Python

Mojo стремится к полной совместимости с экосистемой Python.

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

Библиотеки numpy, pandas и matplotlib также доступны в Mojo.

Тем не менее, Mojo все еще находится на ранней стадии, поэтому ему не хватает многих возможностей Python (например, Mojo пока не поддерживает классы).

В будущих обновлениях Mojo станет полностью совместим с Python.

Код на Python:

			def softmax(lst):
  norm = np.exp(lst - np.max(lst))
  return norm / norm.sum()
		

Код на Mojo:

			def softmax(lst):
  norm = np.exp(lst - np.max(lst))
  return norm / norm.sum()

struct NDArray:
  def max(self) -> NDArray:
    return self.pmap(SIMD.max)

struct SIMD[type: DType, width: Int]:
  def max(self, rhs: Self) -> Self:
    return (self >= rhs).select(self, rhs)
		

Сильная проверка типов

Mojo использует типы для лучшей производительности и проверки ошибок.

Это поможет вам воспользоваться преимуществами безопасности памяти без шероховатостей.

			def reorder_and_process(owned x: HugeArray):
  sort(x)	# Update in place
  
  give_away(x^)	# Transfer ownership
  
  print(x[0])	# Error: ‘x’ moved away!
		

Автонастройка

У Mojo есть встроенная автонастройка, которая помогает автоматически найти наилучшие значения для параметров и использовать все преимущества вашего оборудования.

			def exp_buffer[dt: DType](data: ArraySlice[dt]):

  # Search for the best vector length
  alias vector_len = autotune(1, 4, 8, 16, 32)
  
  # Use it as the vectorization length
  vectorize[exp[dt, vector_len]](data)
		

Mojo использует MLIR

Mojo использует всю мощь многоуровневого промежуточного представления (MLIR). Это значит, что разработчики могут пользоваться векторами, потоками и аппаратными блоками AI.

MLIR также помогает Mojo достичь высокой производительности, так как, в отличие от однопоточного Python, Mojo работает с параллельной обработкой на нескольких ядрах.

Mojo — новый язык для разработки ИИ в 35000 раз быстрее Python 1

Это одна из причин, по которой Mojo в 35000 раз быстрее Python.

Mojo — новый язык для разработки ИИ в 35000 раз быстрее Python 2

Как начать использовать Mojo

Mojo все еще находится в процессе разработки, но его можно испытать в Playground на базе JupyterHub.

Чтобы попробовать Mojo, перейдите на этот сайт для регистрации и не забудьте поставить галочку напротив Mojo в разделе “Интерес к модульным продуктам”.

Следите за новыми постами
Следите за новыми постами по любимым темам
30К открытий32К показов