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

🤔 Что нового?


⚡️ 16bit precision
В Pytorch core был интегрирован модуль AMP, который теперь позволяет использовать для вычисления 16 битные числа с плавающей точкой, вместо 32 битных. Это уменьшает потребляемую память и ускоряет вычисления на тех GPU, где это поддерживается.
Самый кайф в том, что вам не нужно думать о том, как и какие тензоры перевести в 16 бит, все производится автоматически.
Ранее это было доступно с помощью отдельного модуля APEX от Nvidia.
Теперь поддержка вычислений с половинной точностью доступно прямо из коробки с помощью простого интерфейса.

Подробнее в блоге:
https://pytorch.org/blog/accelerating-training-on-nvidia-gpus-with-pytorch-automatic-mixed-precision/


📈 Beta версия профайлера памяти
В виде бета версии встроен профайлер, с помощью которого вы сможете отследить сколько CPU/GPU памяти потребляет каждый конкретный слой сети.

Подробнее здесь:
https://pytorch.org/docs/stable/autograd.html#profiler


Параллельные операции в TorchScript
Теперь на уровне языка поддерживаются операции для параллелизации операций на уровне TorchScript. То есть параллельное выполнение хардкодится прямо внутрь модели.
Это может быть полезно, например в случае bi-directional сетей, или еще где вы это придумаете.

Подробнее тут:
https://pytorch.org/docs/stable/jit.html


Об остальных изменениях можно прочитать в чейнжлоге:
https://github.com/pytorch/pytorch/releases
👀 Превью архитектуры нейронок 🔬

Бывало такое, что есть условный граф нейронки одного из фреймворков (grapdef, savedmodel, torch script, onnx ….)

И хочется просто клацнуть и посмотреть как устроены операции внутри?
Прямо как в TensorBoard, но быстро и прямо сейчас.

Предтавляю вам тулзу, которая поменяла мою жизнь в лучшую сторону, Netron:
https://github.com/lutzroeder/netron
Реально, очень удобно
⚡️Быстрый поиск по векторным пространствам🔎


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

Эта статья рассказывает об эффективных алгоритмах поиска на больших векторных пространствах

https://habr.com/ru/company/mailru/blog/338360/
🏳️‍🌈Transformers, transformers everywhere 🏳️‍🌈

Мы уже видели примеры, когда трансформеры эффективно применяются для анализа текста и генерации звука, при этом побивая все бенчмарки

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

А ещё авторы статьи предпочли остаться анонимными 👀 и не написали свои имения в заголовке статьи

https://youtu.be/TrdevFK_am4
💭 Production QA 💬

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

* Внутри есть возможность конвертации базы документов во внутренний формат из PDF и DocX
* Готовые препроцессоры текстов
* Совместимость с ElasticSearch, FAISS, SQL и InMemory
* Различные движки поиска от Elastic Search, до поиска по векторам
* Встроенные Reader модели на базе трансформеров претренированные на SQuAD (это только английский, если что)
* RestAPI
* А так же тулзу для разметки ваших датасетов внутри веб интерфейса!

https://github.com/deepset-ai/haystack
🔉Facebook denoiser🎧

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

Тулза работает сразу из консоли и позволяет вам почистить ваши аудио.

(примеры ниже)
https://github.com/facebookresearch/denoiser
🏎Modin speed up ur pandas🏃‍♂️

Недавно рассказывал про pandaparllel, который позволяет легко сделать операцию apply в pandas быстрее, благодаря параллелизму.

Нашёл более прокаченную тулзу. Она позволяет вам продолжать писать код в рамках pandas api, но при этом под капотом будут работать другие движки на выбор, например dask.

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

Если ваша табличка особенно большая, советую к осмотру.

Сами бэкэнды поддерживают вычисления на кластерах, но в этой обертке это пока экспериментальная фича. В общем, будем посмотреть.

https://github.com/modin-project/modin
🐞Open CV resize bug 🖼

Неожиданно оказалось, что resize в cv2 работает с критическим недостатком.
А именно сглаживание при понижении разрешении картинки работает неправильно, при этом resize в PIL работает правильно и это редкий пример такой библиотеки.
Казалось бы - и что?
Но на самом деле это значительно влияет на качество алгоритмов повышения разрешения картинки - super resolution, которые тренировались с различными параметрами сглаживания.


Подробнее в треде.
https://twitter.com/kl_div/status/1333906978100297728?s=21
Еще один интересный пример Resize уже в Pytorch.

Здесь сравнили два варианта изменения размера картинки в 32 раза: передать размер скейла параметром в функцию resize, либо же повторить уменьшение в два раза в цикле 16 раз.

Результат поражает, я даже не мог об этом подумать
https://twitter.com/rzhang88/status/1258222917986312195
📷 Вычислительная фотография 🖼

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

Так же, оказывается гугловое определение глубины по одной камере, это не просто “neural network doing brrr”

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

https://vas3k.ru/blog/computational_photography/
📔 Пару слов про Jupyter 📓

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

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

Jupyter - главное зло, если он у вас есть в боевых проектах.


https://towardsdatascience.com/5-reasons-why-jupyter-notebooks-suck-4dc201e27086
✍️ Best image labeling tool 🔨

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

В итоге я нашел CocoAnnotator: https://github.com/jsbroks/coco-annotator


Он позволяет из коробки легко настроить разметку разных датасетов под задачи:
* Image labeling
* Image detection
* Image segmentation
* Keypoints detection

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

Запускается легко через docker compose. Короче must have!


И вот вам пару скриншотиков интерфейса
Давайте попробуем ввести лайки к постам. Оцените, будет ли болезна штука выше для вас?
🍎 Apple M1 vs Tesla v100🔥

Может прозвучать глупо, но не спешите делать свои выводы. На презентации чипа m1 Apple, заявили, что у них будет аппаратная поддержа для Deep learning штук. Ранее я думал, что он будет способен применяться только для инференса всяких TFLite моделек, но сегодня на Reddit наткнулся на интересный пост.

https://wandb.ai/vanpelt/m1-benchmark/reports/Can-Apple-s-M1-help-you-train-models-faster-cheaper-than-NVIDIA-s-V100---VmlldzozNTkyMzg

Чувак просто взял и сравнил работу чипа M1 с карточкой от Nvidia Tesla V100 и получил интересные результаты.
Понятное дело, что в общем и целом V100 выигрывает, но эта штука и весист как полмакбука, а электричества кушает как чайник.

На задачах с малым количеством весов, например тренировка последнего полносвязного слоя сети на MacMini проходит быстрее, чем на Tesla V100.
Только представьте, вы уже можете решать часть задач на Mac быстрее чем на топовых карточках. При этом потребление элетричества процессором M1 в 4 раза меньше.

На больших сетках пока, понятное дело проигрыш. Автор так же заметил, что learning rate на чипах m1 более привередливый и модель иногда не сходится, возможно это баги в ранних реализациях библиотеки.

Конечно, использовать все это еще рано, но это выглядить очень многообещающе, от того интересно, что покажут Pro версии девайсов от Apple. (Macbook pro не в счет)