STACK MORE LAYERS – Telegram
STACK MORE LAYERS
2.11K subscribers
82 photos
15 videos
3 files
161 links
Еще один канал в твоем списке, который ты не будешь читать
Author: @alxmamaev
Download Telegram
STACK MORE LAYERS
🥤Яндекс Кружка🏆 Неожиданно раньше пришли результаты контеста Яндекс Cup по трекам ML. С удивлением обнаружил, что я попал в призовые и получу не только футболку! Интересные замечания по поводу контеста в этом году. Трек ML в отличие от прошлого года был…
Интересный факт про Яндекс Cup. Оказывается за пятое место ничего не полагается, а спутал я это из-за плохой верстки сайта.
На главной странице показаны призы для первых вторых и так далее мест: https://yandex.ru/cup/

Но это справедливо для всех треков, кроме ml, там призы распределяются только среди первых мест. Что можно узнать, перейдя в эту секцию
https://yandex.ru/cup/ml/


Запутали, так запутали 🤷‍♂️
Есть вещи, про которые разработчики могут говорить вечно, это клавиатуры, тракторы и оптимальное количество мониторов.

Клавиатуру я уже заказал, трактор пока ждет своего часа, а вот с монитором вопрос не решен.

Ultrwide? Изогнутый? С кранштейном или с подставкой?

Расскажите про свой опыт, что лучше взять сейчас
🚀AI Jorney 💻

Канал на время превратился в доску почета.
Поэтому немного продолжу ее.

🎉 1 Место в треке Code2Code translation на AI Jorney


В этом году Сбер сделал призовой фонд больше чем когда либо.
Я учавствовал в задаче Fusion Brain, где было необходимо обучить мульти-таск модель, которая способна решать сразу несколько задач из разных категорий - NLP, CV, CV+NLP

За первое место можно было получить до 3х млн рублей в зависимости от скора.
Я же, обладая не большим ресурсом времени, решил решать только одну подзадачу - перевод кода из java в python. За первое место подзадаче тоже полагались призы, но поменьше.
Мое финальное решение оказалось по сути компиляцией работы фейсбука по переводу кода в код с большой пачкой эвристик над сгенерированным кодом. Эвристики в данном случае решали финальный исход и чем лучше они были, тем лучше результат.
По сути это была больше инженерная работа, чем работа DL специалиста, поэтому на решение я совсем не надеялся, заслал и забыл.

Но простое решение далеко не всегда плохое 🤷‍♂️


Учавствуйте в соревнованиях!
Кстати, помимо Code2Code я пытался решать задачу ZeroShot object detection.

Для этого я использовал подход поиска BBox'ов из FasterRCNN с классификатором CLIP поверх.
https://openai.com/blog/clip/


Скора это не дало, т.к. для клипа сложно подобрать идеальный трешхолд, чтобы избешать miss detection.

Но какие красивые черрипики!
🐡Google Coral 🎣

Приехала игрушка. Узнаём, что это за TPU этот ваш такой.
🏎 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