STACK MORE LAYERS – Telegram
STACK MORE LAYERS
2.11K subscribers
82 photos
15 videos
3 files
161 links
Еще один канал в твоем списке, который ты не будешь читать
Author: @alxmamaev
Download Telegram
🏎 Pytorch Cuda Graphs ⚡️

К новостям обновлений Pytorch.
Обычно вычисления в пайторч происходят следующим образом: у нас есть какой-то код на питоне, который контролирует порядок операций, аля перемножения матриц, сверток и прочего. Каждая такая операция представляет из себя один или несколько cuda kernels, это такая маленькая функция которая может выполняться параллельно на множестве ядер видеокарты.

Проблема здесь заключается в том, что в угоду того, чтобы вам было удобно дебагать и получать результаты работы вашей модели, процесс вычислений контроллируется именно на CPU, а значит после каждого выполнения kernel'а управление программой возвращается процессору, в то время пока GPU простаивает, в связи с чем мы теряем в производительности.

На одной маленькой видеокарте это может быть совсем незаметно, но когда мы говорим о больших кластерах, то эти задержи преобретают колосальные масштабы. Ведь при обучении на множестве гпу нам необходима синхронизация между гпу/машинами, а такого рода задержки усугубляют весь процесс, ведь вся система движется с максимальной скоростью самого слабого звена (в нашем случае процессора, на который может влиять множество факторов, от текущей загрузки, до температуры и конфигураций троттлинга)

Cuda Graphs решает эту проблему - давайте вместо того, чтобы передавать управление cpu каждый раз, возвращая результат работы, мы построим конвеер прямо на видеокарте, на котором все будет считаться быстро, без задержек, а уже результат передавать обратно после расчета всего графа.
Звучит круто, и так оно и есть! Ребята смогли ускорить обучение Mask RCNN в 1.75 раза.
Но, конечно мы жертвуем гибкостью, никаких вам динамических шейпов или условий по среди модели, все четко и статично.

Подробнее и с примерами кода читать тут:
https://pytorch.org/blog/accelerating-pytorch-with-cuda-graphs/
Спасибо всем за предложенные варианты!
This media is not supported in your browser
VIEW IN TELEGRAM
✈️ Telegram Contest 🌆

Летом проходил контест от телеграма и мы решили принять в нем участие.
Сделали красивое приложение, ну вы только посмотрите на демку!
Были уверены в своей победе, но!
ПРОЕ...проиграли

А подвох здесь прост. Результатов мы ждали 5 месяцев, за это время сервер успел упасть, а я даже и не заметил.
Как иронично, что упал он 11 сентября.
Берегите ваши сервера. Они нуждаются в тепле, заботе и постоянном контроле.


Так выглядели его последние минуты жизни...
Но каждое провал это повод научиться новому!
Расскажите какими инструментами аларма и мониторинга вы пользуетесь, чтобы не попасть в такие ситуации?
Или может знаете модное сервер-лесс решение?
🚀 Flight to the moon 🌚

Случайно нашёл на ютюбе прекрасную лекцию про то, как работал компьютер автопилота Апполон 11, который прилунился на луну.

Лектор очень интересно рассказывает как вообще стало возможно осуществить почти полностью автоматический полет на луну, обладая мощностями середина 20 века, современные калькуляторы обладают куда большими мощностями (даже не калькуляторы, а чайники и стиральные машины)

Поражает гениальность людей, которые сделали это. Плюс это полезный материал, чтобы понимать как делать failure tolerance софт (отсылка к посту выше), ведь обидно, когда у вас упал сервачок для контеста, а еще обиднее, когда это не контест, а полет на луну

Ну и в целом интересно расширять кругозор!

P.S. Очень жаль, что наша наука и НИИ не так открыты, ведь интересно послушать как летал Буран на полном автопилоте!

https://youtu.be/B1J2RMorJXM
👍1
🆘 Нужна помощь 🙌

Есть идея очень забавного проекта!
Но для него нужна помощь с разметкой.
Нужно разметить 50 треков оксимирона. Я уже поднял тулу для разметки, все находится в браузере, ничего скачивать дополнительно не придется.
Даже если вы разметите только один трек, это будет огромный вклад.

Всех, кто поможет упомяну и дам ранний доступ до контента, который выйдет совсем скоро!

Если хотите помочь 👉@alxmamaev👈
В общем, спасибо всем, кто помог. Я решил привлечь артиллерию по тяжелее, и оказалось, что на you do полно людей, которые профессионально занимаются транскрибацией (не задумывался как-то). И разметить всего окси оказалось не так дорого.
🚊Self-Driving Train🧠

На прошлой неделе сгонял в Москву чтобы посмотреть как работает поезд на автопилоте от РЖД!
Я в целом ничего не ожидал от поездки, но это оказалось очень интересно!
Тестовый поезд существует в одном экземляре и представляет из себя ласточку которая ездит по МЦК несколько раз в неделю.

Вот несколько интересных моментов которые я узнал из первых уст:

* Все ласточки по умолчанию оснащены системой автоматического ведения с завода. Это такая система, которая имеет загруженную информацию по рельфу, в режиме реального времени получает данные о том, где находятся поезда и сама выставляет оптимальные параметры разгона и останова, чтобы поезд ехал с установленным ограничением скорости, не подъезжал слишком близко к другому поезду и не опаздывал. В целом это очень близко к тому, что устанавливается для автоматического вдения в самолетах.
* Казалось бы автопилот готов, что еще нужно? Но на деле этого мало, поезд помимо того, что должен ездить по расписанию должен улавливать опасные ситуации на путях, в случае чего притормаживать, сигналить и экстренно останавливаться. В базовой комплектации этого нет, но это есть на новой тестовой ласточке.
* На ней установлено множество оптических камер, лидары и тепловизоры, чтобы детектировать людей.
* На данный момент система может детектировать людей на путях (во время нашей поездки мы встречали их несколько раз), переход человека за ограничительную линию на платформе, и соответсвенно в зависимости от критичности ситуации сигналить или тормозить.
* Из железа -- на борту стоит два компа в каждом из которых по nvidia 3070 ti. Говорят, что есть проблемы с поставками железа, поэтому они пока не могут оснастить еще один поезд, который к ним скоро приедет.

Кроме того один замечательный момент, я спросил: а на сколько реально постаивить такую систему на сапсан? Оказалось очень сложно, и дело даже не в скоростях, а банально бюрократии, ласточки в отличие от сапсанов собираются российскрй крмпанией, и в случае чего можно быстро договориться на счет внедрения какого-то АПИ или подключении системы детекции к системе управления поездом, наши ребята готовы достаточно оперативно и быстро сделать в кратчайшие сроки. В то же время сименс, который поставляет поезда Сапсан на такие уступки идти не готов и запрашивает огромные деньги, в случае внесения каких-либо коррективов в заранее согласованный план поездов, т.к. у них все четко посчитано и сформированы команды и дополнительные правки не предусмотрены, и возможны только за большую переплату.

У меня по этому поезду есть еще много инфы, которой я не написал здесь, очень хочется смонтировать ролик, жаль пока времени не нашлось.

П.СЫ. Думаю сделать его на английском дабы несколько практиковать разговорную речь, но как бы не запороть такой интересный материал русским "лет ми спик фром май харт"
Media is too big
VIEW IN TELEGRAM
На видео слышно как поезд сигналит человеку который слишком близко подошел.
Еще видео о том как расположены камеры в кабине.
This media is not supported in your browser
VIEW IN TELEGRAM
Ну и я еще немнножко по хулиганил
🐊 Varuna

Нашел эту библиотечку достаточно давно, но как-то забыл про нее написать.
Если вы слышали как тренируют, или приходилось тренировать большие модели, вы знаете, что их порой достаточно сложно поместить на одну видеокарту, и обычный пайплайн data parallelism здесь не подходит.
Для этого использую методы pipeline parallelism, когда вы разделяете вашу модель на части, когда одна часть учится на одной машине/карте, другие - на других. Реализовать это с наскока не так то и просто, т.к. эффективная реализация этих алгоритмов не тривиально.
Обычно для таких задач используют библиотечку от Microsoft - DeepSpeed, она достаточно проста, но имеет некоторые особенности с настройкой конфигов, что может несколько смущать в некоторых ситуациях, плюс к этому она содержит в себе множество других опций, которые могут быть не нужны в вашем случае.
Microsoft выпустила еще одну библиотеку под названием varuna, которая возволяет сделать простое разделение модельки прямо в python коде.
ReadMe крайне простой, так что ознакочимиться не составит проблем.

Например, эта библиотека была бы полезна при обучении мультитаск модели в последнем соревновании Сбера.

https://github.com/microsoft/varuna
Итого 14 минут данных, сведение, битло и оксиморон готов.

Конечно, до цели «сделать как оригинал далеко», но что уж вышло! Эксперимент на то и эксперимент
Audio
Для любителей $$о4N0ГО БА$$A
Можно сказать, успех!
🧑‍💻 Open Source 🤲

Я не придирчив к коду людей. По большей части потому, что я не уверен, что я сам пишу его хорошо.
Часто я забиваю на какие-то косяки, т.к. Этот код не приследует цели жить долго, а просто должен отработать свою задачу.

Но порой случаются странные вещи, которых я не понимаю.

Пытаюсь запустить один пейпер от фейсбука.
Код в целом из коробки не работает, в нем есть ошибки, такое можно простить каким-то ноунейм китайским лабам, но это FAIR.
Если код заставить работать, то он будет делать это медленно, т.к. не сделаны элементарные вещи по оптимизации (кеширование штук, которые долго считаются), если их написать то ускорение x50.
Ну и конечно неймниг, что на счет того, чтобы считать mel спектрограмму внутри датасета и назвать ее mel_loss, о дааа давай еще 🤤


В общем, опенсорс это не просто выложить свои исходники в сеть, но и проверить, что они работают и что за них не будет стыдно. Хороших опен сорсов!
🐉ДРАКОН 🐲

В эфире не регулярная рубрика байки computer science.
Серьезно, я в последний год углубляюсь в CS как таковой, и даже не сколько как прикладную науку, сколько как в религию и историю.

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

СССР был могучей страной с точки зрения таланта инженеров. Этот инженерный гений позволил создать космический корабль Буран. Про него я могу говорить вечно, но краткая сводка: это был советский ответ американским шатлам, эдакий космический самолёт, который взлетает как ракета, может подняться на орбиту, украсть чужой спутник и приземлиться как самолёт.
Но мало сделать аналог, нужно догнать и перегнать и сделать круче. Поэтому в буране была убер фича - автопилот. Корабль мог сам полетать вокруг земли и самостоятельно же приземлиться. Чтобы управлять это махиной, нужно разработать софт и не абы какой, а надежный и понятный, с привлечением тысяч инженеров, многие из которых не умеют программировать. Для того, чтобы этой стало возможно был создан новый язык программирования.

Встречайте — ДРАКОН.
Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность

Одно название может вселить ужас в сердца врага, а армию бросить оружие и сдаться. Но этого мало.

Дракон представляет из себя графический язык программирования, где «программист» двигает некоторые логические блоки, формируя из них условия и действия. Сами логические блоки могут быть написаны на любом языке программирования: C, Dephi … JS, Python. Да, оно живо до сих пор.

Идея создания языка заключалась в том, что им смогут пользовать не программисты, а нормальные люди, а так же физики и инженеры, люди которые имеют большее понимание о бизнес процессах.

Вот что писали создатели языка:
При решении практических прикладных задач инженеры досконально владеют материалом и прекрасно знают постановку задачи. В отличие от них программисты не знают физику процесса и становятся «лишними людьми», без которых в ряде случаев (хотя и не всегда) вполне можно обойтись.

То есть саму бизнес логику предполагалось делать в графическом редакторе. Блок схема программы напоминает схему логических цепей (если вы занимались радиоэлектроникой или проходили курс дискретной математики, вы знаете о чем я). А сами блоки действий писали бы бородатые программисты. Нормальные люди никогда бы не спускались на этот уровень, так же как и мы с вами не обращаемся к ассемблеру.

Язык используется до сих пор в программе «морской старт» (ее лет 5 назад выкупил S7), в ракетах Протон и Ангара (земля им пухом) и даже в какой-то корейской ракете. Так же предполагалось его использование в бизнес среде, но тут как мы знаем победил 1С.


Говорить можно долго, но я лучше оставлю вам ссылки.
Огромная статья на вики: https://ru.wikipedia.org/wiki/ДРАКОН#Разработка_инструментальных_средств_языка_ДРАКОН_для_широкого_применения

Туториал на Хабре: https://habr.com/ru/post/345320/

У языка есть свой сайт, и он расположен в ДОМЕННОЙ ЗОНЕ СОВЕТСКОГО СОЮЗА: https://drakon.su
👍2