AbstractDL – Telegram
AbstractDL
11.5K subscribers
244 photos
16 videos
282 links
Коротко про классные штуки в CV, NLP и AI 🤷‍♂️
By Anton Razzhigaev
Download Telegram
SimVLM step-by-step

1. Будем учить модель на парах картинка-описание (датасет).
2. Картинку разрезаем на прямоугольники — визуальные токены.
3. Каждый визуальный токен пропускаем сначала через Conv-часть резнета, а затем через ViT и получаем визуальные эмбеддинги.
4. Токенизируем текстовое описание картинки.
5. Делим список текстовых токенов на две части.
6. Левую часть эмбеддим линейным слоем и конкатенируем со списком визуальных эмбеддингов. Это будет инпут модели.
7. Аггрегируем этот список эмбеддингов с помощью bidirectional трансформера (наподобие BERT).
8. Декодим всё это с помощью авторегрессионного трансформера (наподобие GPT).
9. С помощью Cross-Entropy Loss учим модель генерировать именно правую часть описания картинки.
10. Тренируем модель ровно одну эпоху.

Готово!
Встречайте: Нейро Путин!

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

@neural_chat_bot: это нейронный чатбот на основе GPT-2, который думает, что он президент. У бота есть контекстная память, и, если что-то идёт не так — почаще посылайте команду /reset, она удаляет вашу историю сообщений и прочищает боту мозги.

Скриншоты забавных диалогов с ботом кидайте в комменты)

Disclaimer. Все персонажи вымышлены, любые совпадения с реальными людьми случайны. Бот не преследует цели оскорбить кого-либо. Его реплики сгенерированы в автоматическом режиме. Все ваши сообщения будут использованы против вас. Не учите бота плохому.
Из-за большой нагрузки ответ бота может занимать около минуты 😅

UPD: Пофиксил баги и сменил хост, теперь бот будет работать шустрее. Не забывайте использовать /reset, если он начинает нести бред)
Real-World Adversarial Attack with Makeup

Можно ли обмануть системы распознавания лиц с помощью макияжа? На самом деле, это сложнее, чем кажется. Современные модели успешно игнорируют любые рисунки на лице и с лёгкостью идентифицируют вашу личность даже с липовой бородой и очками.

Ребята из IBM Watson Research Center предлагают генерировать специальный adversarial макияж с помощью Cycle-GAN (см. рисунок) и перерисовывать его на живого человека. Во время обучения они дополнительно накладывают Gaussian Blur, который немного «размазывает» рисунок, делая его более устойчивым к дальнейшим ошибкам и неточностям во время нанесения.

Таким образом, у них получилась targeted & untargeted white-box real-world атака на простенький классификатор (vgg16).

P.S. На картинке представлены и другие методы обмана surveillance систем: очки, футболка и шапка со сгенерированными adversarial рисунками

Статья
🔥LAION-400M открытый датасет из 423M картинок с описаниями

Хотели обучить свой CLIP или DALL•E? Теперь это возможно!
Опубликован самый большой в мире датасет из пар картинка-текст 💁‍♂️

Датасет получен парсингом страниц из Comon Crawl. Затем всякий мусор отфильтровали с помощью CLIP по трешхолду 0.3.

Что есть в датасете?
• Картинки с текстовым описанием
• CLIP эмбеддинги картинок (NumPy)
• KNN индекс эмбеддингов

В итоге: 10TB данных!

P.S. Авторы говорят, что постарались удалить часть NSFW (unsafe) контента, но полностью избавиться от него не удалось. Возможно именно поэтому такие штуки не публикуют крупные компании типа Google.

Dataset
👍3
Дропаут градиентов: как не испортить модель во время файн-тюнинга (Alibaba)

Во время файн-тюнинга очень глубокие модели (e.g. BERT, GPT) начинают тупеть, оверфитясь на новые данные. Ведь для огромной capacity таких моделей, информации во время дообучения просто недостаточно.

Частично эту проблему решала специальная регуляризация: MSE лосс между старыми весами и новыми (RecAdam). Но похоже, что в Alibaba придумали как полностью решить эту проблему — они предлагают дообучать не всю сеть сразу, а только случайно выбранные сабсеты параметров.

По сути они делают dropout градиентов. Во время инференса задействуются все параметры, а во время бэкварда часть градиентов зануляется. Это эффективно уменьшает capacity нейронки и спасат её от оверфита.

В итоге они получили лучшие результаты на NLI и NLU бэнчмарках для кучи трансформеров. Ещё они доказали пару теорем, показывающих, что такая регуляризация позволяет находить flat local minima, что классно для обобщающей способности (тык).

Статья, GitHub
Fine-Tuned Transformers Show Clusters of Similar Representations Across Layers

Оказывается, после файн-тюнинга, некоторые слои в трансформерах начинают «игнорироваться». Видимо, модель считает, что проще их не учить, а просто выключить (перекинуть через skip-connection).

Это ещё одна работа, которая использует новомодный Centered Kernel Alignment для оценки похожести активаций на разных слоях. Тут зафайнтюнили RoBERTa и ALBERT на 12 NLU бэнчмарках, и, оказалось, что у них возникают кластеры слоёв с практически идентичными активациями, которых не было до дообучения.

Раз активации одинаковые на разных слоях, то, может быть, стоит выкинуть всё что между ними? Так авторы и сделали, и увидели, что перформанс моделей упал совсем чуть-чуть (~1%). Выходит, что CKA можно использовать для такого хитрого сжатия трансформеров.

P.S. Вот вам и доказательство того, что даже трансформеры бывают ленивыми 🦥

Статья
Нашёл простенький сайт для генерации картинок по тексту. Подробностей нет, но, скорее всего, это работает как-то так.

P.S. Текст «Neural God»
Forwarded from эйай ньюз
В Google Colab на подписке Pro+ стали выпадать 40-гиговые Nvidia A100. И это хорошо!
Pix2Seq: Object Detection as Language Modeling (by Google)

Это гениально! Image Captioning, который вместо описаний картинок генерирует КООРДИНАТЫ ОБЪЕКТОВ (и лэйблы тоже)!

Зачем мучиться с bounding boxes, region proposals и прочими неприятными штуками в object detection? Оказалось, можно решить задачу детекции как задачу image captioning! (см. картинку)

P.S. Теперь этот подход кажется мне более очевидным, чем всякие Faster R-CNN. И почему это не придумали раньше?

Статья, GitHub
👍1
On Isotropy Calibration of Transformers

Давно известно, что трансформеры очень слабо используют своё пространство эмбеддингов, и, более того, это пространство анизотропно. Практически все эмбеддинги находятся в узком конусе, а не занимают гиперсферу полностью (см. картинку).

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

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

И вообще, они локально изотропны (тык), а тщательные эксперименты со всеми типами трансформеров на всевозможных бенчмарках показали, что нет никакого статистически значимого улучшения от калибровки изотропии 🤷‍♂️

Статья
This media is not supported in your browser
VIEW IN TELEGRAM
Keypoint Communities: новая SOTA в pose estimation

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

Таким образом, они получили соту на COCO WholeBody (human pose estimation) и на ApolloCar3D (car pose estimation).

Для человека модель генерит 133 ключевые точки, включая тело, кисти рук и выражение лица.

Статья, GitHub, Demo
This media is not supported in your browser
VIEW IN TELEGRAM
Как обучить нейронку виртуозно управлять дроном

Идея довольно простая: нужно использовать для обучения 3D симуляцию. В виртуальной среде в любой момент времени доступна точная информация о координатах всех препятствий. Таким образом сэмплируются collision-free траектории методом Монте-Карло (см. гифку), а затем нейронка учится предсказывать эти траектории на основе симуляции шумного и ограниченного зрения дрона.

Несмотря на то, что дрон учился только на синтетических данных, в реальном мире он летает очень круто. Пишут, что он может разгоняться до 40(!) км/ч в густом лесу.

P.S. новость подсмотрел тут.

Статья, GitHub, видео, блог
Media is too big
VIEW IN TELEGRAM
🎴 NVIDIA выкатили StyleGAN3

Как и планировалось сегодня NVIDIA выложила в доступ (код и модели) StyleGAN3, который описали 23 июня 2021 в пейпере Alias-Free Generative Adversarial Networks.

Имя StyleGAN3 планировали дать в день публикации кода и моделей.

p.s.: думаю, что на днях мы увидим колаб и поиск в латентщине CLIP’ом

🤖сайт проекта 💻 код 📰 paper
Media is too big
VIEW IN TELEGRAM
Нашел тут анимацию, полученную при помощи StyleGan3, которая удивительно точно передаёт все генеративные особенности этой модели.

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

P.S. Как работает StyleGan3 я писал тут.
Zero-Shot NLP Task Generalization

Huggingface совместно с исследователями из 250(!) институтов представили модель T0, которая обходит GPT-3 и при этом в десятки раз компактнее.

Ещё в статьях про GPT-2 и GPT-3 показали, что языковые модели умеют не только дописывать текст, но и кучу всего классного: QA, summarization, translation и тд. Главное, в правильном формате текст подавать — например, для summarization в конце нужно дописать «TL;DR:» и модель выдаст краткое содержание всего что выше. Это называется prompt engineering, и, по сути, это побочный эффект.

А что если во время обучения сфокусироваться на этом «побочном эффекте»? Авторы статьи создали prompted-task датасет: они взяли все главные NLP бэнчмарки и переписали их в prompted формате. Потом они взяли модель T5 и дообучили на всём этом.

В итоге они получили SOTA почти везде, даже на тех задачах, которые модель никогда не видела (они проверили). Это и есть zero-shot task generalization.

Статья, GitHub, Huggingface
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 GPT-CC: GitHub Copilot для бедных

Уже все слышали про GitHub Copilot? Это расширение для VS Code, которое дописывает код за вас. В основе этой штуки лежит нейросеть CodeX, которая по сути является GPT-3.

К сожалению, доступа ни к Copilot, ни к CodeX у простых смертных нет — нужно вставать в waitlist на бета-тестирование.

Так вот, оказывается есть open source версия этих штук! Ребята сами собрали датасет запарсив GitHub и обучили на этом GPT-Neo (аналог GPT-3).

GitHub, dataset, demo, models
8-битный оптимизатор (by Facebook)

Твой ноутбук не тянет обучение глубоких трансформеров? А если видео-памяти станет в 4 раза больше? Facebook представил 8-битный оптимизатор, который уменьшает потребление памяти во время обучения на 75%.

8-бит это что-то сверхъестественное. Только представьте, у 32-битных чисел значений больше 4 млрд, а тут их всего 256! Как такое вообще можно оптимизировать😅

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

Для использования этого чуда достаточно всего двух строчек кода (см. картинку). Даже не надо заново гиперпараметры подбирать — судя по экспериментам из статьи, замена оптимизатора почти ни на что не повлияет.

P.S. Советую посмотреть видео, там простым языком описано как это работает (и зачем).

Статья, GitHub, видео
Как подружить GPT-3 с математикой

Языковые модели приблизились по своим возможностям к человеку, но у них всё ещё остались проблемы с multi-step reasoning и, особенно, с математикой.

В OpenAI предполагают, что дело в авторегрессионной генерации, ведь если модель чуть-чуть ошибётся в начале своих рассуждений, то и дальше всё пойдёт не так.

Как с этим бороться? Для начала, они создали датасет со школьными задачками и подробными текстовыми решениями. Затем они зафайнтюнили на этом две копии GPT-3: одна училась писать решение, а вторая — проверять правильное это решение или нет. Во время теста вторая модель выбирала лучшее решение из 100 сгенерированных.

Кроме этого, если в рассуждениях модели попадались формальные выражения, например «2+2=» то они автоматически вычислялись и заменялись на правильный ответ (да, это читерство 🤷‍♂️)

В итоге, получилось приблизиться к способностям живых школьников: 55% vs 60%.

Статья, blog, dataset
Коллекция русского мата, классификатор токсичности и детоксификатор

Всё это недавно представили исследователи из Сколтеха совместно с МТС.

Классификатор основан на RoBERTa и работает он очень классно. Есть модели для русского (тык) и для английского (тык).

А вот детоксификатор иногда выдаёт странные перлы 🌚

P.S. Да, матерных корня всего 4, но различных форм там собрано больше 130 тысяч. Словообразование у нас очень богатое 💁‍♂️

Статья, GitHub, маты, блог
🔥Сбер представил ruDALL·E

DALL·E — это крутейшая text2image модель, которая является гибридом GPT и VQVAE. О том как работают такие модели я писал тут.

Вслед за OpenAI и Alibaba, аналогичную модель на русском языке представил и наш Сбер! Есть варианты на 1.3 и 12 млрд параметров.

P.S. Сгенерировал для вас «Рождение вселенной»

GitHub, colab, демо, блог