Этот сайт использует файлы cookies. Продолжая просмотр страниц сайта, вы соглашаетесь с использованием файлов cookies. Если вам нужна дополнительная информация, пожалуйста, посетите страницу Политика файлов Cookie
Subscribe
Прямой эфир
Cryptocurrencies: 9889 / Markets: 82738
Market Cap: $ 2 324 629 095 773 / 24h Vol: $ 74 779 057 217 / BTC Dominance: 53.272229184853%

Н Новости

Mojo: убийца Python и будущее AI

8ccd697308475472824cae52abcf81b9.jpeg

AI технологии в последнее время на вершине хайпа, вы и сами знаете. В особенности популярные большие языковые модели, но и компьютерное зрение не остается в стороне. Эти и другие области ML объединяет то, что большинство библиотек для машинного обучения написано на Python. Безусловно, этот факт приносит как свои преимущества, так и недостатки. Сначала взглянем на преимущества

f94f2ca457e1145c0368d1c6437c4edd.png

А из недостатков первое что приходит на ум это всем известная скорость вычислений.

Меня зовут Вадим, я работаю Data Scientist в компании RAFT.

И сегодня мы с вами заглянем в новенький фреймворк для AI Mojo, который по описанию производителей сочетает в себе удобство использования и производительность, а так же включает в себя возможность работы над моделями искусственного
интеллекта. Погнали!

Что это такое?

Mojo - специализированный язык программирования, ориентированный на разработку в сфере AI. Он был представлен 2 мая 2023 года компанией Modular. В этом проекте учавствуют большое количество гуру специалистов AI, главные из них:

Крис Лэттнер - со основатель и директор Modular, в прошлом - один из ключевых разработчиков языка Swift, компилятора Clang, а также технологий LLVM и MLIR. Также работал в Google, Tesla и Apple.

Тим Дэвис - со основатель и руководитель продукта, внёс большой вклад в инфраструктуру искусственного интеллекта Google в Google Brain и Core Systems.

Рисунок 1 - Крис Лэттнер (слева) и Тим Дэвис (справа)
Рисунок 1 - Крис Лэттнер (слева) и Тим Дэвис (справа)

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

На данный момент Mojo поддерживается на Ubuntu Linux и macOS, но вскоре обещают добавить поддержку и на Windows. Более подробно с требованиями вы можете ознакомиться на официальном сайте Mojo.

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

Примеры проектов на Mojo

  1. Инференс Llama2 на Mojo - проект, в котором автор переписал инференс Llama2 с Python на Mojo, при этом производительность повысилась аж в 250 раз. Ниже можно увидеть средний показатель token per seconds.

Рисунок 2 - график Avg. token per second
Рисунок 2 - график Avg. token per second
  1. Фреймворк для ML - проект, который написан с использование библиотеки Infermo (также написана на чистом Mojo) и представляет необходимый функционал для обучения своих моделей. В ней присутствуют различные слои, функции активаций, прямой и обратные проходы сети и другое.

  2. HTTP-фреймворк Lightbug- это та самая база необходимая для разработки веб-сервисов, работы с маршрутизацией и HTML-страницами. Фреймворк использует преимущества Mojo ,такие как статическая типизация и буст производительности.

  3. Простая реализация Stable Diffusion на Mojo - проект, который реализует маленькую версию Stable Diffusuion. Как утверждает автор, проект на 100% реализован на Mojo: каждый компонент модели был реализован с нуля, от целых чисел до матричных умножений и сверток, существующих в PyTorch.

Основное преимущество в том, что генерация занимает гораздо меньше времени, чем стандартный SD, написанный на Python. Текущее решение является супербазовым из-за этого результаты генераций получаются достаточно сырыми. Вы можете оценить их ниже.

Рисунок 3 - примеры генерации изображений SD на Mojo
Рисунок 3 - примеры генерации изображений SD на Mojo
  1. Симуляция квантовых вычислений - проект, который предоставляет простой и понятный интерфейс для моделирования операций в квантовой системе с использованием параллельных вычислений.
    Кроме Mojo интерес представляют другие новые языки, такие как Quill и Cirq , которы также набирают обороты в области квантовых вычислений, упрощая реализацию квантовых схем и моделирования.

А что всё-таки нового?

Давайте посмотрим что же все-таки принципиально нового внутри Mojo, и какие механизмы под капотом позволяют так сильно разгонять вычислительные процессы.

  1. Производительность. Mojo использует MLIR (Multi-Level Intermediate Representation), позволяя разработчикам использовать преимущества векторизации, многопоточности и аппаратного обеспечения.

Рисунок 4 - выполнение процессов на Python и Mojo
Рисунок 4 - выполнение процессов на Python и Mojo

Высокая производительность, которая превосходит Python аж в 68000 раз.

Производительность измерена на алгоритме построения множества Мандельброта

Рисунок 5- сравнение производительности на Python и Mojo
Рисунок 5- сравнение производительности на Python и Mojo

2)Расширяемость. С помощью Mojo можно расширять свои модели с помощью предобработки и постобработки, также вы можете заменять какие-либо операции пользовательскими, переписав необходимый функционал.

3)Интеграция Mojo с Python. Есть возможность писать код на Python и интегрировать его с Mojo, также можно использовать базовые библиотеки, такие как Numpy и Matplotlib. Не требуется подключение CUDA и C++.

4) Open Source Mojo. С недавних пор этот проект является открытым и находится под лицензией Apache 2.0. О том как можно внести свой вклад, можно почитать тут.

Теперь давайте погрузимся немного в синтаксис языка и узнаем, чем он может нас удивить.

Немного о синтаксисе языка

Давайте немного окунемся в особенности синтаксиса языка.

Mojo поддерживает только несколько типов данных: Int, Float, String, Bool, Uint. Также некоторые вещи Mojo перенял из Python: комментарии, циклы, условия.

1) изменяемые с помощью ключевого слова var

2) неизменяемые с помощью ключевого слова let

3) выражения именованных параметров, задаются с помощью ключевого слова alias

1) fn - обеспечивает проверку типов и безопаснее для поведения памяти (Rust stryle);

2) def - не допускает объявления типов и имеет динамическое поведение (Python стиль).

Интеграция с Python

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

Существую некоторые ограничения совместимости Mojo с Python на момент выхода статьи:

  1. импортировать и использовать модули, написанные на Mojo в Python не представляется возможным;

  2. нельзя импортировать отдельные компоненты (классы, функции) из определенного пакета. Необходимо импортировать весь модуль Python, а затем получить доступ к компонентам через имя модуля;

  3. пока нет поддержки кода верхнего уровня, поэтому вызов должен находиться внутри другого метода.

  4. В Mojo исключения имеют очень ограниченное использование из соображений производительности

Примечание:

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

Заключение

В этой статья я описал только верхушку айсберга Mojo. Если следить за новостями проекта, то можно заметить, что он постоянно развивается, каждую неделю появляются новые статьи и проекты.

А что думаете насчёт него вы, заменит ли он Python и ближайшем будущем или нет?

P.S. авторы языка решили покреативить и сделали так, что файлы языка можно хранить в 2-х вариантах: *.mojo и * .🔥

Пишите в комментариях!

Полезные ссылки

[1] Официальный сайт Mojo: Modular: Accelerating the Pace of AI

[2] Официальная документация Mojo: Modular Docs

[3] Хороший репозиторий для изучения Mojo: rd4com/mojo-learning: 📖 Learn some mojo ! (github.com)

[4] Хороший репозиторий с различными проектами Mojo: mojicians/awesome-mojo: A curated list of awesome Mojo 🔥 frameworks, libraries, software and resources (github.com)

[5] Раннее демо Mojo: Product Launch 2023 Keynote (youtube.com)

[6] Playground Mojo: Modular Docs

[7] Статья о том, как измеряли производительность Mojo на алгоритме построения множества Мандельброта: Modular: Mojo🔥 - A journey to 68,000x speedup over Python - Part 3

[8] Хороший туториал об основанх Mojo: Mojo Programming Language – Full Course for Beginners - YouTube

Источник

  • 07.09.23 16:24 CherryTeam

    Cherry Team atlyginimų skaičiavimo programa yra labai naudingas įrankis įmonėms, kai reikia efektyviai valdyti ir skaičiuoti darbuotojų atlyginimus. Ši programinė įranga, turinti išsamias funkcijas ir patogią naudotojo sąsają, suteikia daug privalumų, kurie padeda supaprastinti darbo užmokesčio skaičiavimo procesus ir pagerinti finansų valdymą. Štai keletas pagrindinių priežasčių, kodėl Cherry Team atlyginimų skaičiavimo programa yra naudinga įmonėms: Automatizuoti ir tikslūs skaičiavimai: Atlyginimų skaičiavimai rankiniu būdu gali būti klaidingi ir reikalauti daug laiko. Programinė įranga Cherry Team automatizuoja visą atlyginimų skaičiavimo procesą, todėl nebereikia atlikti skaičiavimų rankiniu būdu ir sumažėja klaidų rizika. Tiksliai apskaičiuodama atlyginimus, įskaitant tokius veiksnius, kaip pagrindinis atlyginimas, viršvalandžiai, premijos, išskaitos ir mokesčiai, programa užtikrina tikslius ir be klaidų darbo užmokesčio skaičiavimo rezultatus. Sutaupoma laiko ir išlaidų: Darbo užmokesčio valdymas gali būti daug darbo jėgos reikalaujanti užduotis, reikalaujanti daug laiko ir išteklių. Programa Cherry Team supaprastina ir pagreitina darbo užmokesčio skaičiavimo procesą, nes automatizuoja skaičiavimus, generuoja darbo užmokesčio žiniaraščius ir tvarko išskaičiuojamus mokesčius. Šis automatizavimas padeda įmonėms sutaupyti daug laiko ir pastangų, todėl žmogiškųjų išteklių ir finansų komandos gali sutelkti dėmesį į strategiškai svarbesnę veiklą. Be to, racionalizuodamos darbo užmokesčio operacijas, įmonės gali sumažinti administracines išlaidas, susijusias su rankiniu darbo užmokesčio tvarkymu. Mokesčių ir darbo teisės aktų laikymasis: Įmonėms labai svarbu laikytis mokesčių ir darbo teisės aktų, kad išvengtų baudų ir teisinių problemų. Programinė įranga Cherry Team seka besikeičiančius mokesčių įstatymus ir darbo reglamentus, užtikrindama tikslius skaičiavimus ir teisinių reikalavimų laikymąsi. Programa gali dirbti su sudėtingais mokesčių scenarijais, pavyzdžiui, keliomis mokesčių grupėmis ir įvairių rūšių atskaitymais, todėl užtikrina atitiktį reikalavimams ir kartu sumažina klaidų riziką. Ataskaitų rengimas ir analizė: Programa Cherry Team siūlo patikimas ataskaitų teikimo ir analizės galimybes, suteikiančias įmonėms vertingų įžvalgų apie darbo užmokesčio duomenis. Ji gali generuoti ataskaitas apie įvairius aspektus, pavyzdžiui, darbo užmokesčio paskirstymą, išskaičiuojamus mokesčius ir darbo sąnaudas. Šios ataskaitos leidžia įmonėms analizuoti darbo užmokesčio tendencijas, nustatyti tobulintinas sritis ir priimti pagrįstus finansinius sprendimus. Pasinaudodamos duomenimis pagrįstomis įžvalgomis, įmonės gali optimizuoti savo darbo užmokesčio strategijas ir veiksmingai kontroliuoti išlaidas. Integracija su kitomis sistemomis: Cherry Team programinė įranga dažnai sklandžiai integruojama su kitomis personalo ir apskaitos sistemomis. Tokia integracija leidžia automatiškai perkelti atitinkamus duomenis, pavyzdžiui, informaciją apie darbuotojus ir finansinius įrašus, todėl nebereikia dubliuoti duomenų. Supaprastintas duomenų srautas tarp sistemų padidina bendrą efektyvumą ir sumažina duomenų klaidų ar neatitikimų riziką. Cherry Team atlyginimų apskaičiavimo programa įmonėms teikia didelę naudą - automatiniai ir tikslūs skaičiavimai, laiko ir sąnaudų taupymas, atitiktis mokesčių ir darbo teisės aktų reikalavimams, ataskaitų teikimo ir analizės galimybės bei integracija su kitomis sistemomis. Naudodamos šią programinę įrangą įmonės gali supaprastinti darbo užmokesčio skaičiavimo procesus, užtikrinti tikslumą ir atitiktį reikalavimams, padidinti darbuotojų pasitenkinimą ir gauti vertingų įžvalgų apie savo finansinius duomenis. Programa Cherry Team pasirodo esanti nepakeičiamas įrankis įmonėms, siekiančioms efektyviai ir veiksmingai valdyti darbo užmokestį. https://cherryteam.lt/lt/

  • 08.10.23 01:30 davec8080

    The "Shibarium for this confirmed rug pull is a BEP-20 project not related at all to Shibarium, SHIB, BONE or LEASH. The Plot Thickens. Someone posted the actual transactions!!!! https://bscscan.com/tx/0xa846ea0367c89c3f0bbfcc221cceea4c90d8f56ead2eb479d4cee41c75e02c97 It seems the article is true!!!! And it's also FUD. Let me explain. Check this link: https://bscscan.com/token/0x5a752c9fe3520522ea88f37a41c3ddd97c022c2f So there really is a "Shibarium" token. And somebody did a rug pull with it. CONFIRMED. But the "Shibarium" token for this confirmed rug pull is a BEP-20 project not related at all to Shibarium, SHIB, BONE or LEASH.

Для участия в Чате вам необходим бесплатный аккаунт pro-blockchain.com Войти Регистрация
Есть вопросы?
С вами на связи 24/7
Help Icon