Как видят нейросети. Часть 2 (о трансформерах)

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

Истоки

По традиции для начала поговорим о той самой статье, с которой все началось. Это была статья 2020 года, «An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale» («Изображение на 16х16 слов: Трансформеры для распознавания изображений c масштабированием»).
«Все началось» – это началась обработка изображений, с текстом-то трансформеры уже работали на тот момент. А теперь их стали прилаживать к изображениям.
Идея вот какая: разбиваем изображение на кусочки, преобразуем в векторы и передаем трансформеру. Эти кусочки – аналог токенов в обработке естественного языка (токены – это слова или части слов). То есть, из изображения как будто сделали текст (или суррогат текста, если точнее: он ничего не значит). Выяснили, что если обучить модель на достаточно большом наборе данных (14 – 300 млн. изображений), получается вполне себе достойный результат.

<i>(Схема из цитируемой статьи: изображение разбито на фрагменты, каждый фрагмент преобразован в вектор с учетом его позиции. Справа архитектура модели. Более подробно архитектура трансформеров описана <a href="https://vc.ru/ai/1269371-generative-pre-trained-transformer-gpt-vnutrennee-ustroistvo" rel="nofollow noreferrer noopener" target="_blank">здесь</a>, в этом посте я уже не буду раскрывать детали)</i>
(Схема из цитируемой статьи: изображение разбито на фрагменты, каждый фрагмент преобразован в вектор с учетом его позиции. Справа архитектура модели. Более подробно архитектура трансформеров описана здесь, в этом посте я уже не буду раскрывать детали)

Отметим важный нюанс. У сверточных сетей есть так называемое «индуктивное смещение» (inductive bias). Грубо говоря, это допущение, которое делает модель относительно данных для того, чтобы обучаться. Например, сверточные нейросети не чувствительны к тому, в каком месте изображения находится паттерн, важный для распознавания (кошка распознается по усам, лапам и хвосту; не важно, находятся ли искомые признаки в центре изображения или в углу; расположены ли усы выше хвоста или наоборот – модель все равно кошку распознает. Это возможно благодаря определенному уровню обобщения. Без него модель не узнала бы кошку, если бы мы, скажем, перевернули изображение). У трансформера это смещение выражено гораздо меньше, потому что он получает изображение по частям (лапы и хвост могут быть в одном фрагменте, а усы в другом; при недостаточном наборе тренировочных данных может оказаться, что на всех изображениях была одна конфигурация элементов. В таком случае трансформер уже не узнает отличающуюся конфигурацию). Поэтому им нужно очень много данных для обучения, на маленьких выборках они работают не очень хорошо.
В ходе экспериментов сравнивали новую модель (ViT – трансформер для работы с изображениями), ReSNet, про которую пост был тут, и гибридную модель. ViT была представлена в трех размерах. 16х16 – это, кстати, размер кусочков, на которые изображения были поделены.

<i>(По вертикали разные наборы данных, которые были использованы для тестирования. По горизонтали – модели. Полужирным начертанием выделен лучший результат – самая высокая точность. Первые три столбца – это предлагаемая авторами модель в трех размерах)</i>
(По вертикали разные наборы данных, которые были использованы для тестирования. По горизонтали – модели. Полужирным начертанием выделен лучший результат – самая высокая точность. Первые три столбца – это предлагаемая авторами модель в трех размерах)

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

Сегодняшний день

Как раз недавно вышла пара очень интересных релизов, о которых мы здесь расскажем.
Первый релиз – Pixtral. Это мультимодальная модель, которую я упоминала в посте про LLaVA, но совсем коротко. Это модель из большой семьи Mistral – успешных языковых моделей, которые по многим параметрам выступают на уровне коммерческих Claude и GPT или открытой Llama. И да, модели Mistral с открытым исходным кодом, их можно использовать в собственных проектах (и мы такие проекты очень приветствуем).
Потестировать способности моделей этой группы можно бесплатно здесь, в удобном интерфейсе. Pixtral не умеет рисовать, но хорошо распознает изображения, расшифровывает капчи и даже может написать код для вебсайта по вашему скетчу (это примеры я взяла с канала Mattew Berman на YouTube).
У меня есть свой тест: я прошу модели нарисовать мне очаровательного паука за работой. Вот несколько примеров вам для настроения.

<i>(Один из первых экспериментов -- Midjourney в ее ранние годы. Кажется, здесь был запрос на уставшего паука)</i>
(Один из первых экспериментов -- Midjourney в ее ранние годы. Кажется, здесь был запрос на уставшего паука)
(Kandinsky образца 2023 года, тоже ранний)
(Kandinsky образца 2023 года, тоже ранний)
<i>(Забыла, кто, вроде бы DALL-E. Год 2024)</i>
(Забыла, кто, вроде бы DALL-E. Год 2024)
<i>(PaLM, на данный момент это мой любимый паучок, 2024 год)</i>
(PaLM, на данный момент это мой любимый паучок, 2024 год)
<i>(Imagen 3 от Google, тоже 2024 год. Плюсик за реализм, но с милотой не очень получилось)</i>
(Imagen 3 от Google, тоже 2024 год. Плюсик за реализм, но с милотой не очень получилось)

Pixtral не умеет рисовать, поэтому выдала на запрос вот такое описание:

<i>(Она добавила маленький уютный гамачок из паутины на фоне, мне нравится эта идея)</i>
(Она добавила маленький уютный гамачок из паутины на фоне, мне нравится эта идея)

Вот что нарисовала DALL-E по этому описанию:

<i>(У DALL-E небольшие сложности с анатомией. И с проводами)</i>
(У DALL-E небольшие сложности с анатомией. И с проводами)

Ладно, это я увлеклась. Продолжим. Второй релиз – Llama 3.2. Разные размеры, открытый исходный код – все, что мы так любим. Ее можно попробовать здесь, через интерфейс Meta AI. Он доступен не во всех странах, придется потанцевать с бубнами.

Я очень люблю Ламу и всегда продвигаю всем эти модели, но на сей раз, кажется, они переборщили с политиками безопасности. У Mattew Berman, которого я цитирую и буду дальше цитировать, есть видео с тестом, на котором модель отказывается отвечать на часть вопросов, предполагая, что они задаются про что-то нелегальное (хотя вопросы максимально невинные, и в них сложно найти хоть что-то подозрительное).
В общем, будем смотреть за обновлениями. Такие перехлесты в политиках безопасности ожидаемы, потому что они в сфере ИИ пока довольно сырые. Я об этом в телеграме писала здесь. У кого-то тренировочные данные, содержащие личную информацию пользователей, утекают (да, OpenAI?), у кого-то вот слишком строгие правила. Но со временем это должно выправиться (а пока не сообщайте моделям никакой чувствительной информации о себе!)

Заключение

Тут не буду отступать от традиции: обещаю следить за развитием визуальных трансформеров (но не так пристально, как за языковыми, все-таки это мой основной интерес).
Спасибо, что были со мной, заходите еще.

11
3 комментария

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

1
Ответить

Класс!

1
Ответить

А чтобы сгенерировать успех не нужны никакие нейросети!

Ответить