Telegram Web Link
🔥 Сбербанк сделал ru-CLIP

SberDevices выложили в открытый доступ Русско-язычною версию CLIP — модели от OpenAI (тык), которая в начале этого года придала ОГРОМНЫЙ импульс исследованиям на стыке NLP и CV (прям как я люблю).

По-сути, CLIP состоит из двух моделей: image-encoder и text-encoder. Они эмбеддят картинки и тексты в одно пространство, позволяя делать кучу всего интересного, например zero-shot классификацию картинок, поиск изображений по описанию, image captioning и много другой магии (тык, тык).

Для того чтобы прикрутить поддержку русского языка они заменили text-encoder на RuGPT3Small и вставили пару линейных слоёв после обоих энкодеров. Дальше эти хитрюги обучили только эти линейные слои (забавно, но этого хватило).

Блог, GitHub, HuggingFace

P.S. Астрологи объявили неделю CLIP, поэтому ниже будут ещё посты про эту чудо-модель 😉
Что такое CLIP и как он работает?

Почти полгода прошло с тех пор, как OpenAI представила CLIP: Contrastive Language–Image Pre-training. Это было то, чего мы так долго ждали — универсальная модель, которая одинаково классно понимает и картинки и текст, открывая возможности для исследований на стыке CV и NLP.

Если коротко, то эта штука энкодит картинки и их описания в близкие (в идеале — одинаковые) эмбеддинги. Но если копнуть глубже, то эта модель научилась выявлять «open-set visual concepts from natural language» и показывает удивительные способности к генерализации. Она понимает высокие уровни абстракции и неявные связи между ними.

CLIP состоит из двух моделей: image-encoder (ViT или resnet50) и text-encoder (transformer). Для обучения собрали огроменный датасет из 400M картинок с описаниями из интернета. Энкодеры одновременно учатся генерировать эмбеддинги для картинок и описаний, максимизируя косинус между правильными парами из батча и минимизирую между всеми остальными.

Статья, GitHub, блог
CLIP слишком сильно абстрагирует

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

Оказалось, что эта модель, подобно человеку, оперирует абстрактными концептами. Кроме того, в пространстве таких концептов действует более-менее линейная алгебра! Например, концепт «копилка» = «игрушка» + «животное» + «деньги».

Но у такой линейной алгебры есть и свой недостаток — adversarial атаки. Особым образом комбинируя концепты можно заставлять модель неправильно интерпретировать увиденное, например, если на собаку приклеить значки доллара, то она распознается как «копилка», а если на яблоке написать «ipod», то оно превратится в Apple Ipod 💁‍♂️

Статья, GitHub, блог

P.S. Такую овергенерализацию кто-то принимает за недостаток, но я считаю, что это очередной шаг в сторону general AI.
Как CLIP понимает эмоции:
😩=👸+🧠+👚
🥰=😊+❤️-🤢
😯=🥳+😱+😁
Darker than Black-Box: Face Reconstruction from Similarity Queries

Препринт моей статьи про privacy уязвимость систем распознавания лиц.

Получилось осуществить атаку в самом тяжёлом сценарии, когда атакуемая модель (ArcFace) — это чёрный ящик, принимающий на вход фотографию и выдающий только одно число — насколько эта фотография похожа на человека с заданным id.

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

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

P.S. Теперь получается, что к персональным данным нужно относить не только фото человека, но и его id 🤷‍♂️

Статья, GitHub
This media is not supported in your browser
VIEW IN TELEGRAM
Image Super-Resolution via Iterative Refinement (by Google)

Теперь моими любимыми диффузионными моделями занялся и Google, на этот раз для super-resolution (SOTA на CelebA-HQ).

Представленная модель называется «Super-Resolution via Repeated Refinement» (SR3). В её основе лежит UNet-based диффузионная модель (тык) с двумя модификациями:

1. К инпуту всегда конкатенируется bicubic up-sampled low-resolution image. Это нужно для кондишнинга на конкретной картинке, чтобы в высоком разрешении генерировалась именно она.
2. Учится не одна модель, а каскад из 3 юнетов для разных разрешений 64→256→1024. Это улучшает качество генерации и сильно упрощает сложность обучения.

P.S. Теперь можно не играть в MinMax игры Ганов и мучиться с их стабилизацией, ведь есть диффизионные модели с явным лоссом для оптимизации! Надеюсь, что в этом году нас ждёт ещё много крутых работ про них 👀

Статья, блог
This media is not supported in your browser
VIEW IN TELEGRAM
Огромная коллекция примеров и туториалов

Смотрите что нашёл. Похоже тут собрали вообще все крутые колаб ноутбуки и туториалы по CV | NLP. Их там больше 150, поэтому для тех, кому лень листать — отобрал несколько самых интересных 💁‍♂️

Просто классные штуки:
• Deep Fake ~ video face swap (тык)
• YOLOv5 (тык)
• Neural Machine Translation ~100 языков (тык)
• Music VAE (тык)
• Style Transfer (тык)
• Face2Video (тык)
• Training GPT2 (тык)
• Video | Image colorization (тык | тык)
• BERT score evaluation metric (тык)
• StyleGAN 2 (тык)

Туториалы:
• Pix2Pix (тык)
• Detectron2 (тык)
• Neural style transfer (тык)
• CycleGAN (тык)
• BERT for text classification (тык)
• Image captioning (тык)
• Image segmentation (тык)
• ruGPT3 (тык)

P.S. На видео дипфейк, сгенерированный в колабе из первой ссылки.
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Over-the-Air Adversarial Flickering Attacks

Атака на систему видеонаблюдения при помощи мигающего фонарика.

Научным языком это «real-world transferable white-box adversarial attack on action recognition system». Если простым языком, то ребята научились генерировать особую последовательность миганий фонарика, которая заставляет нейронку неправильно распознавать действия на видео.

Представьте такой сюжет: человек заходит в банк, направляет фонарик на камеру видеонаблюдения, и через несколько секунд срабатывает сигнализация, ведь нейронка подумала, что происходит вооружённое ограбление. В ближайшем будущем такие пранки могут стать реальностью.

Как это работает?

Нужно взять классические методы атак, такие как FGM и добавить специальные ограничения однородности и цикличности генерируемого возмущения. В итоге, атака выглядит как последовательность цветных прямоугольников, которые нужно либо добавить к видео, либо повторить с помощью RGB-светодиодов.

Статья, GitHub
Парсил википедию и заметил какой-то глюк. Ну не может же слово быть таким длинным. Оказалось может 😂

P.S. Это какое-то греческое блюдо
Do Vision Transformers See Like Convolutional Neural Networks? (by Google)

В Google Brain попытались разобраться, чем отличается зрение трансформеров от CNN.

Они обучили оба типа моделей на одном и том же датасете, а затем статистически сравнивали активации с помощью Centered Kernel Alignment.

Выводы:
1. Трансформеры извлекают больше глобальной информации из картинки, чем CNN. Они «видят» картинку целиком.
2. Они сначала учат глобальные фичи, и только потом локальные. Из-за этого receptive field растёт почти мгновенно в отличие от CNN (см. картинку).
3. Но для того чтобы выучить локальные фичи, трансформерам нужно очень много обучающих данных.
4. Skip-connections в трансформерах делают больше полезной работы, чем в резнетах.
5. Информация о позиции объекта в трансформерах сохраняется более точно.
6. MLP-Mixer ведёт себя скорее как ViT, чем ResNet.

P.S. Ещё одно подтверждение того, что сильный inductive bias (e.g., конволюции) только мешает нейронкам учиться 🤦‍♂️

Статья
Forwarded from DLStories
Большой брат следит за тобой еще пристальнее
#tech

NTechLab обновил свою систему FindFace и выпустил FindFace Multi. Это система для распознавания лиц, силуэтов и действий людей, а также детекции автомобилей. В основе FindFace Multi лежит нейросеть kiwi, которая заняла 1 место в мире по точности распознавания лиц в конкурсе NIST в 2021 году.

Кроме стандартного распознавания лиц FindFace Multi определяет еще много всего:
- возраст человека;
- надета ли на человеке маска;
- если маска надета, то правильно ли она надета ;
- силуэт человека;
- цвета одежды;
- марку и номера автомобилей.

Также FindFace стало сложнее обмануть. В FindFace Multi используется система антиспуфинга: нейросеть обрабатывает сразу несколько кадров с камеры наблюдения и анализирует изменения на лице человека. Так система убеждается, что перед ней — реальный человек, а не фотография на бумаге или с экрана телефона.
Подробнее про новую систему читайте на сайте компании.

Учитывая, что NTechLab плотно сотрудничает с правительством Москвы и поставляет решения для камер наблюдения города, то... кажется, скоро в метро все же придется носить маску. Причем еще и надевать ее строго правильно 😕
А о других применениях этой технологии даже думать не хочется...
🔥 SimVLM: Simple Visual Language Model Pre-training with Weak Supervision (by Google Brain)

Гугл продолжает радовать меня статьями на стыке CV и NLP. На этот раз они придумали ОДНУ МОДЕЛЬ ДЛЯ ВСЕГО (а заодно получили 6 SOTA результатов).

SimVLM умеет:
- Image Captioning
- Image Classification
- Question Answering
- Multimodal Translation
- Visual Reasoning

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

Например, если загрузить в модель картинку панды и попросить дополнить текст «это животное обитает …», то SimVLM допишет «в центральном Китае».

В следующем посте расскажу об этой модели более подробно 🧐

Статья
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»
2025/07/13 18:29:46
Back to Top
HTML Embed Code: