Лайк, если слышал об 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)
Если вы все ещё делаете деплой через костылики - присмотритесь.
Мы уже немного поговорили про то, какое железо бывает для запуска сеток. Но как правильно запускать сетки на 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)
Если вы все ещё делаете деплой через костылики - присмотритесь.
GitHub
GitHub - triton-inference-server/server: The Triton Inference Server provides an optimized cloud and edge inferencing solution.
The Triton Inference Server provides an optimized cloud and edge inferencing solution. - GitHub - triton-inference-server/server: The Triton Inference Server provides an optimized cloud and edge i...
🎹Генерация музыки🎵
Написал тут статейку про то, как генерировать музыку с помощью трансформеров. (Спойлер) В целом, почти ничем не отличается от работы с текстом.
Сделал это после участия в соревновании по генерации музыки от Yandex и AI Community.
https://alxmamaev.medium.com/generating-music-with-ai-or-transformers-go-brrrr-3a3ac5a04126
Написал тут статейку про то, как генерировать музыку с помощью трансформеров. (Спойлер) В целом, почти ничем не отличается от работы с текстом.
Сделал это после участия в соревновании по генерации музыки от Yandex и AI Community.
https://alxmamaev.medium.com/generating-music-with-ai-or-transformers-go-brrrr-3a3ac5a04126
Medium
Generating music with AI (or transformers go brrrr)
Let’s write own AI-musician
Будет приятно, если вы прочитаете и поставите clap в блоге.
🤔 Классический CV 🔨
Неожиданно для себя обнаружил, что далеко не все задачи в CV стоит решать словами. А, так тут Unet приделать надо, просто набрать пару тысяч картинок.
Нужно было для соревнования выделить хоккейное поле на картинке, начал я как полагается со сбора датасета, обучения сетки и в итоге уперся в количество картинок которое могу разметить. В итоге от скуки начал тыкать в open cv и играться с цветами, представляя, что я известный дизайнер. И как вдруг, у меня получилось выделить поле практически так, как я хотел, парой строчек кода без всяких сеток.
Если у вас есть интересные материалы про классическое CV, которые не протухли в 2021, закиньте мне @alxmamaev
Неожиданно для себя обнаружил, что далеко не все задачи в CV стоит решать словами. А, так тут Unet приделать надо, просто набрать пару тысяч картинок.
Нужно было для соревнования выделить хоккейное поле на картинке, начал я как полагается со сбора датасета, обучения сетки и в итоге уперся в количество картинок которое могу разметить. В итоге от скуки начал тыкать в open cv и играться с цветами, представляя, что я известный дизайнер. И как вдруг, у меня получилось выделить поле практически так, как я хотел, парой строчек кода без всяких сеток.
Если у вас есть интересные материалы про классическое CV, которые не протухли в 2021, закиньте мне @alxmamaev
Еще немного вам поспамлю
Ну вы прикиньте, никаких сеток, просто баланс белого, вырезание цвета в нужном пространстве по трешхолдам, удаление шума, объединение нескольих масок - и вуа ля, никаких сеток и датасетов.
Все таки в каких-то узких задачах можно обойтись без ML и сбора данных, я в шоках. (простите)
Ну вы прикиньте, никаких сеток, просто баланс белого, вырезание цвета в нужном пространстве по трешхолдам, удаление шума, объединение нескольих масок - и вуа ля, никаких сеток и датасетов.
Все таки в каких-то узких задачах можно обойтись без ML и сбора данных, я в шоках. (простите)
А теперь минутка полезности, если вдруг вам понадобится что-то подобное, вот ссылочка.
https://realpython.com/python-opencv-color-spaces/
https://realpython.com/python-opencv-color-spaces/
Realpython
Image Segmentation Using Color Spaces in OpenCV + Python – Real Python
In this introductory tutorial, you'll learn how to simply segment an object from an image based on color in Python using OpenCV. A popular computer vision library written in C/C++ with bindings for Python, OpenCV provides easy ways of manipulating color spaces.
Привет всем!
У меня образовалась задачка, что для моего проектика надо по размечать данные текстовые. Работка чутка монотонная, но не хитрая.
Может у кого найдутся племянники, знакомые школьники/студенты, кто готов немного посидеть вечерком и получить денежку на карманные расходы?
Если есть пишите мне @alxmamaev
У меня образовалась задачка, что для моего проектика надо по размечать данные текстовые. Работка чутка монотонная, но не хитрая.
Может у кого найдутся племянники, знакомые школьники/студенты, кто готов немного посидеть вечерком и получить денежку на карманные расходы?
Если есть пишите мне @alxmamaev
🖼 Giphy Engineering 👾
Неожиданно обнаружил для себя что у известного сервиса giphy по поиску гифок, есть очень интересный блог про машинное обучение и инженерию на картинках.
Статьи действительно интересные и в них много гифок :)
https://engineering.giphy.com
Неожиданно обнаружил для себя что у известного сервиса giphy по поиску гифок, есть очень интересный блог про машинное обучение и инженерию на картинках.
Статьи действительно интересные и в них много гифок :)
https://engineering.giphy.com
🐰 Зай, тут для тебя новый видос 🎬
Привет, я тут снял видеоролик с генерацией новостей артемия лебедева.
Теперь можно создавать свои альтернативные самые честные новости.
Как говорится, лайк и шер.
https://www.youtube.com/watch?v=hckrREWgjQ4
Привет, я тут снял видеоролик с генерацией новостей артемия лебедева.
Теперь можно создавать свои альтернативные самые честные новости.
Как говорится, лайк и шер.
https://www.youtube.com/watch?v=hckrREWgjQ4
YouTube
ЛЕБЕДЕВ - НЕЙРОСЕТЬ? | Большой заговор масонов и Била Гейтса
Видео сгенерировано с помощью нейронных сетей, распространите его, чтобы оно попало в новости к Артемию!
Контакты автора:
Instagram: https://www.instagram.com/alxmamaev/
Telegram: https://news.1rj.ru/str/stackmorelayers
В создании видео помогали:
Монтаж и motion…
Контакты автора:
Instagram: https://www.instagram.com/alxmamaev/
Telegram: https://news.1rj.ru/str/stackmorelayers
В создании видео помогали:
Монтаж и motion…
😦 Если вы используете Numpy + Pytorch, скорее всего у вас есть этот баг 😱
Нашёл публикацию в блоге NVidia, про то, как легко и ненавязчиво можно угодить в когти не честного рандома.
Суть бага заключается в следующем. Если использовать np.rand и (ему подобные) внутри Pytorch Dataset, то в случае использования multiprocessing, мы получим неожиданный результат.
Каждый независимый воркер будет генерировать случайные числа идентичные случайным числам других воркеров 🤷♂️
Казалось бы, ну и что? А дело в том, что вы теряете буст от мультипроцессинга для аугментаций и гоняете одни и те же батчи данных по несколько раз.
И этому багу подвержены множество популярных проектов на Pytorch.
Подробнее прочитать можно тут:
https://tanelp.github.io/posts/a-bug-that-plagues-thousands-of-open-source-ml-projects/
Нашёл публикацию в блоге NVidia, про то, как легко и ненавязчиво можно угодить в когти не честного рандома.
Суть бага заключается в следующем. Если использовать np.rand и (ему подобные) внутри Pytorch Dataset, то в случае использования multiprocessing, мы получим неожиданный результат.
Каждый независимый воркер будет генерировать случайные числа идентичные случайным числам других воркеров 🤷♂️
Казалось бы, ну и что? А дело в том, что вы теряете буст от мультипроцессинга для аугментаций и гоняете одни и те же батчи данных по несколько раз.
И этому багу подвержены множество популярных проектов на Pytorch.
Подробнее прочитать можно тут:
https://tanelp.github.io/posts/a-bug-that-plagues-thousands-of-open-source-ml-projects/
tanelp.github.io
Using PyTorch + NumPy? You're making a mistake.
A bug that plagues thousands of open-source ML projects.
Ну а для тех, кто вообще не связан с технологиями и разработкой моделей машинного обучения - посмотрите какую крутую технологию сделали украинские ребята из компании Respeecher.
Эта штука позволяет заменять ваш голос на голос знаменитости и качество поражает.
https://youtu.be/glwgybvxk-0
Эта штука позволяет заменять ваш голос на голос знаменитости и качество поражает.
https://youtu.be/glwgybvxk-0
YouTube
Speaking, whispering and singing in many voices
In this demo we are showing off our new voice cloning engine that supports more emotions and can sing! Visit us at https://respeecher.com if you want to give it a spin in your project.
Note that the processing is *not* real-time at the moment, so the lip…
Note that the processing is *not* real-time at the moment, so the lip…
⚡️Тренировка моделей не spot instance☄️
Полезная тула, которая может помочь вам сэкономить денег на тренировке моделей и организовать пайплайны обучения.
В AWS (Клауд сервис от Амазон) существует опция spot instence. Это аренда серверов по методу биржи.
Со своей стороны вы можете выставить максимальную цену, которую готовы платить за данный сервер в час, Амазон, же в свою очередь, дает вам право пользоваться этими мощностями ровно до тех пор, пока не найдется человек, который перебьет вашу цену.
Из плюсов вы получаете стоимость значительно ниже, чем обычные машины (В том числе GPU), соответсвенный минус - машинку могут забрать в любой момент (вам дается 15 минут для завершения процессов).
Настройка сервера для начала работы достаточно муторная операция, не хотелось бы каждый раз руками создавать машину через aws, настраивать окружение через ssh, а потом постоянно копировать результаты обучения, чтобы они не потерялись, в случае остановки машины.
Все эти проблемы решает spotty - инструмент берет на себя аренду инстанса по вашим авторизационным ключам AWS, разворачивание заранее созданного docker образа, а так же клонирование результатов обучения к вам на машину.
https://github.com/spotty-cloud/spotty/
Полезная тула, которая может помочь вам сэкономить денег на тренировке моделей и организовать пайплайны обучения.
В AWS (Клауд сервис от Амазон) существует опция spot instence. Это аренда серверов по методу биржи.
Со своей стороны вы можете выставить максимальную цену, которую готовы платить за данный сервер в час, Амазон, же в свою очередь, дает вам право пользоваться этими мощностями ровно до тех пор, пока не найдется человек, который перебьет вашу цену.
Из плюсов вы получаете стоимость значительно ниже, чем обычные машины (В том числе GPU), соответсвенный минус - машинку могут забрать в любой момент (вам дается 15 минут для завершения процессов).
Настройка сервера для начала работы достаточно муторная операция, не хотелось бы каждый раз руками создавать машину через aws, настраивать окружение через ssh, а потом постоянно копировать результаты обучения, чтобы они не потерялись, в случае остановки машины.
Все эти проблемы решает spotty - инструмент берет на себя аренду инстанса по вашим авторизационным ключам AWS, разворачивание заранее созданного docker образа, а так же клонирование результатов обучения к вам на машину.
https://github.com/spotty-cloud/spotty/
GitHub
GitHub - spotty-cloud/spotty: Training deep learning models on AWS and GCP instances
Training deep learning models on AWS and GCP instances - spotty-cloud/spotty
🕺 Fast Pose Estimation 🧍♂️
Смотрел, что есть сейчас модного и удобного для вычисления скелета человека на видео, и нашёл интересную библиотечку.
При первом поиске вы скорее всего найдёте популярный проект OpenPose, который реализует описанную выше задачу в виде небольшой C++ библиотеки.
Однако покопавшись дальше я нашёл HyperPose.
Ребята пишут, что они в 4 раза быстрее open pose и в 10 раз быстрее TF Pose.
Достигается это с помощью использования tensorrt (библиотека от nvidia, для ускорения сеточек).
Сама библиотчека достаточно легковесная и легко собирается.
К сожалению имеет api только из C++, но для моей задачи этого вполне хватило.
Использовать ее достаточно легко, ведь даже я, не являясь грандмастером-колбастером по C++ смог это сделать.
В общем, если вы будете делать какие-то домашние или не очень проекты по детекции позиции человека - настоятельно советую посмотреть.
https://github.com/tensorlayer/hyperpose
Смотрел, что есть сейчас модного и удобного для вычисления скелета человека на видео, и нашёл интересную библиотечку.
При первом поиске вы скорее всего найдёте популярный проект OpenPose, который реализует описанную выше задачу в виде небольшой C++ библиотеки.
Однако покопавшись дальше я нашёл HyperPose.
Ребята пишут, что они в 4 раза быстрее open pose и в 10 раз быстрее TF Pose.
Достигается это с помощью использования tensorrt (библиотека от nvidia, для ускорения сеточек).
Сама библиотчека достаточно легковесная и легко собирается.
К сожалению имеет api только из C++, но для моей задачи этого вполне хватило.
Использовать ее достаточно легко, ведь даже я, не являясь грандмастером-колбастером по C++ смог это сделать.
В общем, если вы будете делать какие-то домашние или не очень проекты по детекции позиции человека - настоятельно советую посмотреть.
https://github.com/tensorlayer/hyperpose
GitHub
GitHub - tensorlayer/HyperPose: Library for Fast and Flexible Human Pose Estimation
Library for Fast and Flexible Human Pose Estimation - tensorlayer/HyperPose
🔄TF.jS Converter🔃
Понадобилось мне тут сконвертить модель из tf.js в обычный tensorflow, поскольку оригинала модели на tf не существует.
Оказалось, что никаких официальных инструментов для этого нет, но хорошие ребята подсуетились и сделали.
https://github.com/patlevin/tfjs-to-tf
О том, как пользоваться - здесь:
https://christianjmills.com/tensorflow/tutorial/2020/09/15/How-to-Convert-a-TensorFlow-js-Graph-Model-to-a-Tensorflow-SavedModel.html
Понадобилось мне тут сконвертить модель из tf.js в обычный tensorflow, поскольку оригинала модели на tf не существует.
Оказалось, что никаких официальных инструментов для этого нет, но хорошие ребята подсуетились и сделали.
https://github.com/patlevin/tfjs-to-tf
О том, как пользоваться - здесь:
https://christianjmills.com/tensorflow/tutorial/2020/09/15/How-to-Convert-a-TensorFlow-js-Graph-Model-to-a-Tensorflow-SavedModel.html
GitHub
GitHub - patlevin/tfjs-to-tf: A TensorFlow.js Graph Model Converter
A TensorFlow.js Graph Model Converter. Contribute to patlevin/tfjs-to-tf development by creating an account on GitHub.
🌤ODS Summer of Code 🌞
Стартовала летняя школа проектов в сфере DL от ODS. Суть примерно та же, как и в Google Summer of Code. Записываетесь на проект, пилите в рамках него крутые и полезные задачки, а в конце получаете всякие ништяки и гору опыта.
Среди проектов есть и мой 🌚, пусть пока и не очень развитый, но есть шанс это исправить!
https://ods.ai/tracks/summer-of-code-2021
Стартовала летняя школа проектов в сфере DL от ODS. Суть примерно та же, как и в Google Summer of Code. Записываетесь на проект, пилите в рамках него крутые и полезные задачки, а в конце получаете всякие ништяки и гору опыта.
Среди проектов есть и мой 🌚, пусть пока и не очень развитый, но есть шанс это исправить!
https://ods.ai/tracks/summer-of-code-2021