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

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

Вопрос очень компексный, т.к. я сам люблю класть что-то в папочку “почитать позже” и никогда ее не открывать.
Сколько постов в день сделаем?
Anonymous Poll
67%
1
18%
2
14%
3
💻 Железо для ускорения сетей 🖥

Вы наверняка слышали, что для ускорения сеток можно использовать не только GPU?
Так, например Google предоставляет на своем Cloud сервисе доступ к TPU (Tensor Processor Unit). Apple и Samsung встраивают чипы для расчета сеток на мобильных телефонах. Intel выпускает фремворки для оптимизации сеток под свои процессоры. А, что если мы засунем сетку прямо в память процессора в виде последовательности транзисторов? Мы получим FPGA и ASICS! Что на счет сеток на базе аналоговых сигналов вместо бинарных - IBM тут как тут.


Короче, эта статься позволит поставить кучу разных букв названий процессорвов на свои места. Автор доступным языком пояснил, что уже можно использовать сейчас, а что, вероятно, будет нашим must have в 2050 (никогда не стоит забывать, что всего 40 лет назад мы играли в Commodore с всего 64КБ на борту)

https://m.habr.com/ru/post/455353/
Лайк, если слышал об ASICS и FPGA, только в контексте майнинга битка.
🥷Запускаем сетки на Triton🧜‍♂️

Мы уже немного поговорили про то, какое железо бывает для запуска сеток. Но как правильно запускать сетки на backend, так чтобы у нас была максимальная производительность и пользователи не замечали простоев?

Писать свой сервер на Flask - заведомо плохая идея. Конечно есть специфические фреймворки для каждого из фреймворков: tfservering, PyTorch Serv, Redis AI (кстати, его крайне не рекомендую, очень мало можно настроить и документация так себе), and e.t.c.

Но есть серебренная пуля для всего? Так чтобы быстро, удобно и сразу все фреймворки? Да!

Nvidia Triton 🧜‍♂️

https://github.com/triton-inference-server/server


Тритон умеет работать со большинством популярных фреймворков, автоматически собирает запросы в батчи. Для него легко можно написать свой модуль с кастомной логикой на C++/Python/TorchScript, где вы можете делать например препроцессинг данных и соединить это с моделью в единый пайплайн не выходя из конфигов тритона!

У него есть поддержка GRPC и HTTP, что позволяет легко сгенерировала клиент под любую платформу, при этом есть уже готовые официальные для python, c++ и go.

А если вы хотите аркестрировать ваши модели на нескольких машинах, triton поддерживает KFservering (да, да, тот самый kubernetes)

Если вы все ещё делаете деплой через костылики - присмотритесь.
🎹Генерация музыки🎵

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

Сделал это после участия в соревновании по генерации музыки от Yandex и AI Community.

https://alxmamaev.medium.com/generating-music-with-ai-or-transformers-go-brrrr-3a3ac5a04126
Будет приятно, если вы прочитаете и поставите clap в блоге.
🤔 Классический CV 🔨

Неожиданно для себя обнаружил, что далеко не все задачи в CV стоит решать словами. А, так тут Unet приделать надо, просто набрать пару тысяч картинок.

Нужно было для соревнования выделить хоккейное поле на картинке, начал я как полагается со сбора датасета, обучения сетки и в итоге уперся в количество картинок которое могу разметить. В итоге от скуки начал тыкать в open cv и играться с цветами, представляя, что я известный дизайнер. И как вдруг, у меня получилось выделить поле практически так, как я хотел, парой строчек кода без всяких сеток.


Если у вас есть интересные материалы про классическое CV, которые не протухли в 2021, закиньте мне @alxmamaev
Используешь классические подходы?
Еще немного вам поспамлю

Ну вы прикиньте, никаких сеток, просто баланс белого, вырезание цвета в нужном пространстве по трешхолдам, удаление шума, объединение нескольих масок - и вуа ля, никаких сеток и датасетов.

Все таки в каких-то узких задачах можно обойтись без ML и сбора данных, я в шоках. (простите)
Привет всем!

У меня образовалась задачка, что для моего проектика надо по размечать данные текстовые. Работка чутка монотонная, но не хитрая.

Может у кого найдутся племянники, знакомые школьники/студенты, кто готов немного посидеть вечерком и получить денежку на карманные расходы?

Если есть пишите мне @alxmamaev
🖼 Giphy Engineering 👾

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

Статьи действительно интересные и в них много гифок :)

https://engineering.giphy.com
🐰 Зай, тут для тебя новый видос 🎬

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

Как говорится, лайк и шер.

https://www.youtube.com/watch?v=hckrREWgjQ4
Тем временем незаметно подкрался поворотный момент
Будешь считать свои сеточки на картах AMD?
Хотел потестировать, но похоже не выйдет. Если у вас случайно завалялась машинка на линуксе с карточкой от AMD (зачем), отпишите мне как оно себя проявляет в целом.
💻 Tensorboard VSCode 🖥

Маленькая полезность. Не так давно в vscode повилась поддержка tensorboard прямо внутри редактора.

Чтобы его запустить вызвать командную строку (cmnd + shift + P) и написать launch tensorboard


Еще бы возможность менять тему, был бы полный кайф
😦 Если вы используете Numpy + Pytorch, скорее всего у вас есть этот баг 😱

Нашёл публикацию в блоге NVidia, про то, как легко и ненавязчиво можно угодить в когти не честного рандома.

Суть бага заключается в следующем. Если использовать np.rand и (ему подобные) внутри Pytorch Dataset, то в случае использования multiprocessing, мы получим неожиданный результат.
Каждый независимый воркер будет генерировать случайные числа идентичные случайным числам других воркеров 🤷‍♂️

Казалось бы, ну и что? А дело в том, что вы теряете буст от мультипроцессинга для аугментаций и гоняете одни и те же батчи данных по несколько раз.

И этому багу подвержены множество популярных проектов на Pytorch.

Подробнее прочитать можно тут:
https://tanelp.github.io/posts/a-bug-that-plagues-thousands-of-open-source-ml-projects/
Ну а для тех, кто вообще не связан с технологиями и разработкой моделей машинного обучения - посмотрите какую крутую технологию сделали украинские ребята из компании Respeecher.

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


https://youtu.be/glwgybvxk-0