Супер быстрый Mojo - Замена Python для AI ?
Вставка
- Опубліковано 28 лют 2024
- В этом видео мы посмотрим на новый язык Mojo, который в 60k раз быстрее Python и сделан специально для AI !
Расскажу, зачем он нужен, особенности синтаксиса, текущее состояние экосистемы и, конечно, запустим бенчмарк Mojo vs Python.
Официальный сайт Max Platform - www.modular.com/max
Официальный сайт Mojo - www.modular.com/max/mojo
Mojo Playground - playground.modular.com/
ТГ канал про жизнь в Нью-Йорке: t.me/korney3_travel
ТГ канал про машинное обучение: t.me/deeplearnme
ТГ чат про машинное обучение: t.me/deeplearnme_chat - Наука та технологія
Hotfix:
5:38 Типизированный
7:25 В питоне и mojo изменяемость про разное. В mojo var и let влияют на то, можно ли переприсвоить переменную, в питоне мы вообще про такие проблемы не слышали :D
16:28 SIMD - docs.modular.com/mojo/stdlib/builtin/simd.html
Чтобы тайм-коды работали, необходимо их указывать с 00:00, а если они будут в описании - еще лучше
Синтаксис похож на rust-lang, думаю лучше проще и выгоднее на rust-lang перейти
Сначала mojo был просто убийцей python, сейчас убийца в ai, хоть куда-нибудь возьмите mojo😂
Так он изначально для AI и делался
Он разработан специально для того, чтобы заменить Python в "AI".
Как писал Крылов в басне:
Ай моджа! Знать она сильна
Что лает на путхона ))
Из каждого утюга предлагают курсы питона
Данный материал "деды прогали на питоне"
9,4 тыс програмистов увидели женщину и застыли 😂😂😂
Некоторые фичи взяты из rust
Мутабельные и иммутабельные переменные нужны для сохранности данных, асинхронности и многопоточности, немножко для компилятора. Такое есть в rust, kotlin и даже в какой-то степени в js let/const. В расте целая история с концепцией владения и поведение у мутабельных и иммутабельных ссылок разное.
Трейты что-то типа абстрактного класса (за исключением php там трейты это как миксины в руби) в них описываются сигнатуры методов и также можно реализовать методы. В расте они используются повсеместно и очень хорошо ложатся на дженерики
❤ милашка. 😊
только фонарь этот мигающий - не в центре пожалуйста размещайте
хорошее видео! спасибо за такой краткий обзор
О ак это же почти как rust только для ML. Круто, спасибо за обзор!
Тоже об этом подумал
скоро будет много подписчиков, удачи
15:00 - Запара со списками в Mojo от того, что язык ещё разрабатывается. Списки пока что тупо не реализованы. Но их реализация лишь вопрос времени.
Ну наконец-то хоть кто-то сказал про циклы в циклах и реализацию матриц) в питоне тоже можно работать с SIMD кстати, есть либа сишная. Не думаю что у mojo что-то получится, у Пайтон сообщества больше ресурсов, все активно переписывается на всякие расты и си, ускоряется и оптимизируется. Да и одной скорости слишком мало, чтобы прям отказываться от Пайтона. Плюс как мы видим, можо в реализации каких-то сложных вещей совсем не таков как Пайтон, плюс там много чего нет на текущий момент. А говорить о том что будет... Ну пусть выживут сначала)))
Вообще компиляция это киллер фича по сравнению с пистоном.
Ну штука во многом от разраба LLVM. А это как бы ни хухры мухры
Трейты (если они сделаны как в rust'e) это больше похоже на интерфейс, но не совсем то же самое. По поводу mutable и immutable нужны потому что вы обрабатываете данные и вам нужно быть уверенным в том, что вы не меняете исходные данные это нужно для безопасности и конкурентности (concurrency),
Умный компилятор на основании имутабельности может делать ряд полезных оптимизаций. Еще это нужно для local reasoning
Надо скорей с Matlab сравнивать
7:35 это очень полезная инфа для компилятора и для программиста
когда у тебя переменная объявлена как неизменяемая, компилятор легко может сделать инлайнинг и др оптимизации
а мне как прогеру понятно, что эта сущность статична
и тут сишный препроцессор обиделся
Спасибо рекомендациям ютуба, что подарил Ваш канал🥺
А вы знаете, что Engineering Director at Modular (контора что Mojo пилят) Tatiana Shpeisman является носителем русского языка? Может сможете через Linkedin договориться с ней об интервью? Они вроде сейчас активно продвигаются
Интересная идея, спасибо! Подумаю над этим
Интересно сравнение с Julia и Mojo в плане потребления памяти и в сравнении с С++ 20(ranges и std:span) и C++ 23(std:mdspan) для операций с векторами и матрицами.
Увидел котиков, поставил лайк 😂
Слушай гордость за умных девченок . Супер !
радует что ии работает на всяких"пайтонах" и мойо, плюс продвигают это всё такие интеллектуальные интеллектуалы, просто изумительно.
По поводу mutable/immutable. Если я верно понимаю, let определяет конкретный тип переменной, а var позволяет использовать переменную с данными любого типа. Наверное var удобен в отдельных случаях, но выглядит ненадёжно.
Нет. var позволяет только переприсвоить тип
Mutable фича нужна, это важно по мнению Rust’овчан
8:15 - это реализация интерфейса, аналогия - интерфейс в Go. Штука эта называется "утиная типизация". Далее как в примере: если это выглядит как утка и крякает как утка - значит это утка.
thx
Ставить мигающую штуку на фоне не оч хорошая идея, минус глаза уже на 2 минуте, а так видос топ
ты весь видос только на вебку смотрел?)
Спасибо за разбор с примерами, сам когда услышал про mojo - сразу начал подозревать что все эти ускорения в 100500 раз явно какой-то маркетинговый буллщит, но т.к. сам из геймдева и с питоном знаком только на уровне простеньких скриптов для инфраструктуры, в подробности вдаваться не стал. Но, конечно, сравнивать однопоточный код с тремя вложенными циклами против симдов и параллелизации - это прям кек. А, главное, что ускорение в 5 (и уж тем более 55) раз это и без того выглядит довольно солидно, а потому совершенно непонятно какой "гений маркетинга" решил продвигать преимущества этого mojo настолько сомнительными способами.
Я не понял, это типа прорыв, как УЕ движкок для игр, в свое время, или так себе...
Чото мало математики, кватернионы то там есть? )
Спасибо за обзор. Не часто попадается действительно актуальное в плане новостей чтоли
Остаётся теперь motorch имплементировать и будет успех)
7:35 довольно таки странный вопрос, зачем нам нужны неизменяемые переменные))
Спроси любого +- шарящего джаваскриптезера зачем в js добавили let и const
У нас в питоне лапки, мы живем без них :D
Если речь идёт о производительности и не упоминается ассемблер - выглядит довольно странно.
21:42 Вроде бы в турбо-паскале (4.0?) было сообщение об ошибке компиляции «в этой строке чего-то не хватает или что-то лишнее». 😉
Ассемблер под GPU?
Adorei o video, voce pode subir os exemplo para o Colab ? Beijo na boca !
Ничего не понятно, но интересно.
Сейчас идет вторая волна машинных мозгов, если не считать начала века эвм. Только сейчас манагеры купи-продай подключились. Так что и эта волна загнется.
Умножение матриц через numpy - это всё же не python, а C. И сравнивать производительность нужно именно с ним. Но даже так, ускорение расчёта - это не заслуга Mojo, а алгоритмов параллелизации и SIMD. Похоже, что всё это большой маркетинговый пшик...
Гуд пойнт, соглашусь, с исследовательской точки зрения действительно норм сравнение с чистым питоном.
Мне хотелось подчеркнуть, что с точки зрения практики пользователи питона для мл с большей вероятностью пойдут возьмут известный фреймворк пусть с меньшим ускорением, чем перепишут все на моджо
Про симд - да, действительно ускорение на конкретно этом бенчмарке только благодаря нему, тоже факт. Хз, может для более сложных случаев у них есть еще интересные плюшки, но я пока дальше не смотрела
Весь "Питон" это языки "Си".
Лайк за Пут-хон и Плясы!
путхон....ахахаха=)))надо посмотреть что там с поддержкой новых маковских чипов.
Только не регистры, а хеш. Регистры это другое.
Mojo это какой-то микс раста и питона)
Еще в сентябре его поковырял, но за полгода ни разу не видел его применения. Но видимо через еще полгода пойдет хайп на моджо.
Сейм, но вот фреймворки под него вроде делаются, мб что-то получится
Так до 1.0 ещё далеко
Это что за отсылки на деда 😂
сладко
Def и весь сахар питоновский больше похож на вазелин, что бы чуть легче в новый язык войти. По поводу traits это из раста скорее всего взяли.
Странное ощущение. Вроде и новый язык делают, но зачем то тащат телегу под названием "python like язык"
Как я вижу этот язык облегченная(более абстрактная) версия раста. По крайней мере по первым признакам.
"зачем-то тащат телегу под названием "python like язык" - потому что ML-щики любят python именно из-за его pythonic style. Им не нужен очередной хардкорный C-подобный язык.
Обычный C не то что бы хардкорный, но идею понял.
Посмотрим. Некоторые из продвинутых ml разработчиков используют раст. Но это только некоторые компании. Скорее всего даже стартапы
@@Derian_De_Grey
Я попал к школьникам не знающих истории и основ?? Что пишут в комментах и в видео говорят
Синтаксис похож на rust-lang, думаю лучше проще и выгоднее на rust-lang перейти
Хорошо получилось, не забрасывай канал. Ютуб спасибо за рекомендацию
Давайте почекамо Python 4)) або Python 3.15
Сочетает в себе быстроту разработки и работы? Да он же прекрасно подходит для разработки видеоигр
Пожалуйста, берите, нам не жалко, у нас путон :D
Скриптовый язык для разработки игр - сомнительная штука.
@@Zlo_Studio ну не знаю, насколько это хорошо или плохо, но сейчас набирает популярность опенсорсный движок Godot - и он поддерживает 2 языка, C# и скриптовый, динамически типизированный GDScript, созданный специально для этого движка. Плюс еще есть RenPy на питоне, там конечно производительность не особо нужна, ибо 3д игры на нем не пишут, но может комментатор что-то подобное и имел ввиду: ускоренная версия RenPy или около того.
@@Zlo_Studio Он компилируемый же
Nim еще рассмотрите
Ляяяяяяя какая 🙃
Mutable & Imutable нужны чтобы выделять либо динамическую либо статическую память записывая фиксированный диапазон
Нееет я только Python для AI выучил а тут уже Mojo да блфываолфывоалфывафы
забей, еще лет 10 никто про можо не вспомнит, как и про Go в свое время. Скорее pypy в питон перенесут в следующих версиях лет через 5, чем народ на можо уйдет.
озадачила, сейчас учу python, для написания автотестов.
Python по мне хорошо для автоматизации чего-либо и для "лёгкой" предобработки данных с помощью Pandas или Polars
С другой стороны теже данные можно обработать с использованием Intel one api на C++ или libcudf если хочется использовать GPGPU для пред обработки данных
@@technotarius4444у нас все QA пишут на питоне. Вообще в планах изучить ещё Java Script & Java
Насколько бы люди не хвалили моджо, учитывайте, что ещё не все аспекты аи адекватно перенесены с R на питон, а вы тут про третий яп))))
папка shared last modified !!!!54 year ago!!!! ?
Папка от папки досталась :-D
Я вообще не понимаю почему его сравнивают с пайтон. Из-за синтаксиса? Из-за мимикрии? Может быть. Хотя это скорее конкурент к расту или С-лайк. При том что он крайне сырой что даже нету годных списков, массивов и словарей. В целом кажется что "конкуренция" с питоном чистый маркетинг так как при сравнении с тем же растом его просто размажут.
Гут пойнт. С пайтоном сравнивают в основном из-за их маркетинга, в котором они обещают, что моджо заменит пайтон :D
Жесть конечно там подлог в ноутбуках) Нельзя сравнивать разные скорости с разным размером массивов, можете ручками проверить, что от размера gflops скейлится
Воу, интересно. А что именно случается, если размеры матриц поменять?
@@deeplearnme эффективность вычислений растёт, можешь попробовать сравнить numpy для того же размера 512х512 и будет выигрыш с обычным питоном порядка 50-60 тысяч раз. Всё дело как раз в симдах и меньших кешмисах, обычный питон так не делат, в нампай очевидно такое есть. Создатели mojo преподнесли это как какое-то чудо, хотя на деле всё давно уже сделано...
Лист листов как то странно звучит? Может список листов лучше
Вообще, там наверное даже лист numpy arrayев в итоге был, не внимательно посмотрела. Мне хотелось подчеркнуть, что тип лист используется. Но понятно, что лист списком тоже можно назвать в принципе
Список списков, вложенный список, многомерный список.
от женщин мне нужен только сенкс =)
Понятно, питонщики опять изобрели typescript
Typescript это аналог pyright или mypy. А это расширения языка + компилятор в нативный код
16:20 что это было то
диды пейсали мандельброта на ассемблере
Вау ❤❤❤ такая Сипотяжка
Ты в Сша 🇺🇸 живешь?
Ai не пишется на python. На нём реализуется интерфейс для реализаций на С
Фейр пойнт. Имелось в виду, что большинство кода, относящегося к эйай пишется на питоне, что и хотят поменять создатели mojo
Если бы все писали мл код на сях, то скорее всего в mojo не было бы нужды)
@@deeplearnmeА почему не пишут на сях?
Ну, сейчас уже пишут все на питоне, потому что экосистема разрослась. Изначально, наверное, на сях тяжело прототипировать быстро эксперименты
На сях, мне кажется, переписывают уже модели, которые стопроцентно работают и нужно просто заставить их это делать быстро, типа OpenVino какой-нибудь
Я в целом не против пересесть на сишные языки была бы, но мне кажется, они замедлили бы прогресс в создании новых архитекрур
@@deeplearnme не важно что вам там кажется. Все существующие модели написаны на высокоэффективных скоростных языках, таких как с и с++. На python и других языках написаны библиотеки, предоставляющие api к этим алгоритмам. Это факт
@@deeplearnme я не говорил о том, что нужно пересаживаться на с. Я говорил о том, что вы не знаете о чём говорите. Модули на python это интерфейсы для алгоритмов машинного обучения, которые написаны на с.
Люди, разрабатывающие системы не базе алгоритмов должны использовать интерфейсные языки, по типу python, потому что они удобны для прототипирования, экспериментов и разработки. Люди, пишущие сами алгоритмы машинного обучения должны писать на языках, предназначенных для этих целей.
Уже заменил...
Зачем нужен еще один язык программирования?
Cython сочетает простоту пайтон и скорость С
Не поспоришь:D
Странный недостаток не компелируется?
Помойму это плюс не надо декомпелировьб чтобы исправить баг после компеляции.
Ну, ту офкорс плюсы и минусы есть. Компилируемый плюс, потому что быстрее работать будет, а интерпретируемый, да, быстрее разрабатывать :D
@@deeplearnme В теории можно сделать язык с гибридной реализацией. У Mojo такого нет, но компиляция ячеечки ноутбука займет мало времени
Неужели существуют девушки с логичной логикой!? Это такая редкость❤
Мужчины с логичной логикой - тоже редкость(
люди с логичной логикой это вообще редкость, а людей у которых мозги работают и вообще почти не осталось )))
Windows support coming soon...
Так всегда. Все новое на Mac/Linux
Да, это даже не julia.
Моджо, видимо, новое поколение. Может, у него всё-таки получится!
хм. mojo 68000x vs scalar c++ 9000x. Звучит как читерство. А что если С++/Си + OpenCL vs mojo : ).
Отличная идея для бенчмарка, кстати
Но конечно для сиподобных языков есть аргумент, что да, они быстрее, но большинство кода для аи пишут на питоне, хотя он медленнее, потому что на нем разработка быстрее получается и гибче
так весь чит в том, что у них распараллеливание встроенное, как в нумбе. А на Си они в одном потоке наверняка запускали.
Интересно конечно, но зачем кому-то писать матмул на CPU?)
Гуд пойнт
Я кому-то в комментах скидывала ссылку с прикольным сравнением mojo и torch.compile() на cpu и gpu, и да, на гпу torch compile() лучше. Сравнивали, правда, на бенчмарке мандельброта t.me/deeplearnme/60
@@deeplearnme Компайл прикольная штука, но вообще хороший вопрос насколько сравнивать такое разумно. С другой стороны очевидно, что если написать ручками инструкции для конкретной задачи, то скорость будет выше, чем в случае generic функции, так что все эти сравнения mojo с чем-либо это просто смешно)
Чо т, сомневаюсь, что mojo способна побить связку Python + numba | jax
Не говоря уже про более высокоуровневые техники векторизации.
По сути, питон - просто удобный интерфейс к сишным и фортрановским либам. Куда быстрее?
Интерфейс очень уж накладный.
@@Derian_De_Grey Не, ну это уже вкусовщина. Тут я говорю конкретно про разницу между mojo и python.
Про numba не видела, но про torch.compile() чувак делал сравнение t.me/deeplearnme/60
Там на cpu mojo лучше, но на gpu нь
@@deeplearnme спасибо за ссылку, почитал. Отмечу, что даже там сравнение не корректное (хоть по существу и показательное) - все запускалось на разной конфигурации железа. Но это претензия скорее к проприетарности mojo.
я написал модуль на fortranе и сравнил с нумбой. в общем фортран все еще рвет. потому что как и в моджо AVX использует, а намба чет тупит пока что
Mojo? А Julia куда делась?
Уже не на хайпе, видимо :(
Mojo - это инцест внешки питона, скорости с++ и приколов Rust
В общем язык все еще сырой и я считаю пока не готов к норм использованию языка
Так Rust быстрее или такоей же. Ну а приколов Rust в питоне очень не хвататет (субъективно мне)
@@vas_._sfer6157 они по скорости не отличаются с растом
Кажется, что вообще язык собирался сделать что то похожее на Трейты и Структуры на в расте, но решили просто добавить функции в структуры
@@animemchik Единственное, что стоит свеч это MLIR. Очень многообещающий. Но это если оно будет хорошо допилено
очень интересно но ничего не понятно
Нет классов? Дальше можно не смотреть.
Скорость «Си» и добавляет того плюсов, о да, я вижу профессионализм и закрываю нахуй видео.
Очередной убийца Си) В Си++ существует 23 стандарт, но особо никого не заманишь на него переходить, 17 года стандарт еще норм.
Привет, у тебя на прнхабе нет страницы?
mojo читается мохо
Интересное прочтение, лайк
"Мойо".
Немного моджо
Не оперсурс что ли? Кому он такой нужен. Полтора разраба будут пилить то, что 10 лет писалось всем сообществом.
Пока не опенсурс, но обещают потом когда-нибудь выпустить на свободу
Вам нужно разобраться в вопросе, чтобы выглядеть профессионально. Излагать кратко и по делу. И убрать нафиг все эти тупые вставки с тупизмами. А то просто бесит.
Тупизмы - это авторский стиль, ничего не поделаешь
Дорогой мой, можно посмотреть на твой ролик который посмотрело хотя бы 100 человек? Если конкретно тебе чото не понравилось, просто иди дальше смотри душные теоретизирования, которых миллион на ютубе и их никто не смотрит, как раз потому что там нет никаких вставок и всё как ты хочешь сделано.
Гоподи, лучше кртлин, сори
Где ты живешь красавица?)
я хочу от вас детей
Можно без пуков пожалуйста 🙏
Не заменит
Эмммм так это же раст
Списали, только не точь-в-точь
я из сектантов и мы юзаем самый удобный и красивый браузер ARC, я всё время смотрел на вот эту ужасную полосу вверху твоего ужасного хрома, у меня слов нету....
У меня тоже стоит Arc, я что-то в прошлых видосах с ним снимала, он действительно каеф
Вы как больные линуксоиды: под каждым видео пишут, ли Линукс круче, при чем не важно в тему видео или нет.
Приветствую соседов по секте 🔥
@@deeplearnme что за ARC и чем он лучше хромаподобных браузеров, а как же Mozilla?
😂 когда говорят что Питон это язык для ИИ я начинаю думать, а почему? То есть С, С++, С# да и вообще другие языки не подходят 😂😂😂 Девочка, первое машинное зрение было сделано за долго основных языков программирования. Там вообще грубо говоря без языка делали на транзисторах. Когда слышу такое громкое заявление то сразу понятно что человек знает как написать пару строк чего либо но не знает как это работает 🎉
Мальчик с раздутым самомнением. Посмотри на вакансии по условному AI и там в большинстве мест будет Python. Речь именно о том на чем пишут код непосредственно дата саентисты в большинстве случаев и на каком языке большинство библиотек.
Если ты искал повод всунуть сюда свои непрошенные пять копеек, то делай это хотя бы уважительно. Я могу сказать что JS это язык для фронтенда, а ты придешь, чтоб вскукарекнуть что это некорректно, так как frontend можно писать и на Rust.
У тебя с головой всё нормально? Только демотивируешь человека на ровном месте.
@@DecembristITTV да только нормальный прогер и на своем исполнит, ай ай ) думать в одной плоскости
Теперь ещо большее отвращение от программирования
привет, милашка.
Ко всем интерпретируемым языкам у меня стойкое неприятие. Нет, они конечно хороши в своих узких сферах - написание скриптов, автоматизация, нейросети (Python), но вот когда их начинают тащить в мобильную разработку, геймдев, в разработку десктопных приложений, то таким горе разработчикам хочется пожелать всего "хорошего"...
во во!
нафига делать обзор на то в чем не шаришь? дизлайк
Этот блик на заднем фоне крайне плохое решение, от него болят глазки. 😢
Ты же АААААААхуительно сексапильная, я так и не понял где ссылка на онлифанс ?
Типа больше к С тяготеет, чем к С++. trait как я понимаю - это что-то вроде интерфейсов на С++ или C#.