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