Как видят нейросети. Часть 2 (о трансформерах)
Некоторое время назад был у меня пост про обработку изображений сверточными нейронными сетями. Там я писала, что сверточные нейросети постепенно вытесняются трансформерами (но пока не сдаются).
Сегодня поговорим о том, как именно устроены трансформеры для работы с изображениями.
Истоки
По традиции для начала поговорим о той самой статье, с которой все началось. Это была статья 2020 года, «An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale» («Изображение на 16х16 слов: Трансформеры для распознавания изображений c масштабированием»).
«Все началось» – это началась обработка изображений, с текстом-то трансформеры уже работали на тот момент. А теперь их стали прилаживать к изображениям.
Идея вот какая: разбиваем изображение на кусочки, преобразуем в векторы и передаем трансформеру. Эти кусочки – аналог токенов в обработке естественного языка (токены – это слова или части слов). То есть, из изображения как будто сделали текст (или суррогат текста, если точнее: он ничего не значит). Выяснили, что если обучить модель на достаточно большом наборе данных (14 – 300 млн. изображений), получается вполне себе достойный результат.
Отметим важный нюанс. У сверточных сетей есть так называемое «индуктивное смещение» (inductive bias). Грубо говоря, это допущение, которое делает модель относительно данных для того, чтобы обучаться. Например, сверточные нейросети не чувствительны к тому, в каком месте изображения находится паттерн, важный для распознавания (кошка распознается по усам, лапам и хвосту; не важно, находятся ли искомые признаки в центре изображения или в углу; расположены ли усы выше хвоста или наоборот – модель все равно кошку распознает. Это возможно благодаря определенному уровню обобщения. Без него модель не узнала бы кошку, если бы мы, скажем, перевернули изображение). У трансформера это смещение выражено гораздо меньше, потому что он получает изображение по частям (лапы и хвост могут быть в одном фрагменте, а усы в другом; при недостаточном наборе тренировочных данных может оказаться, что на всех изображениях была одна конфигурация элементов. В таком случае трансформер уже не узнает отличающуюся конфигурацию). Поэтому им нужно очень много данных для обучения, на маленьких выборках они работают не очень хорошо.
В ходе экспериментов сравнивали новую модель (ViT – трансформер для работы с изображениями), ReSNet, про которую пост был тут, и гибридную модель. ViT была представлена в трех размерах. 16х16 – это, кстати, размер кусочков, на которые изображения были поделены.
После ViT были другие трансформеры. Их научились обучать более качественно, представили в разных размерах и много тестировали. Это все мы здесь опустим и перейдем сразу в сегодняшний день.
Сегодняшний день
Как раз недавно вышла пара очень интересных релизов, о которых мы здесь расскажем.
Первый релиз – Pixtral. Это мультимодальная модель, которую я упоминала в посте про LLaVA, но совсем коротко. Это модель из большой семьи Mistral – успешных языковых моделей, которые по многим параметрам выступают на уровне коммерческих Claude и GPT или открытой Llama. И да, модели Mistral с открытым исходным кодом, их можно использовать в собственных проектах (и мы такие проекты очень приветствуем).
Потестировать способности моделей этой группы можно бесплатно здесь, в удобном интерфейсе. Pixtral не умеет рисовать, но хорошо распознает изображения, расшифровывает капчи и даже может написать код для вебсайта по вашему скетчу (это примеры я взяла с канала Mattew Berman на YouTube).
У меня есть свой тест: я прошу модели нарисовать мне очаровательного паука за работой. Вот несколько примеров вам для настроения.
Pixtral не умеет рисовать, поэтому выдала на запрос вот такое описание:
Вот что нарисовала DALL-E по этому описанию:
Я очень люблю Ламу и всегда продвигаю всем эти модели, но на сей раз, кажется, они переборщили с политиками безопасности. У Mattew Berman, которого я цитирую и буду дальше цитировать, есть видео с тестом, на котором модель отказывается отвечать на часть вопросов, предполагая, что они задаются про что-то нелегальное (хотя вопросы максимально невинные, и в них сложно найти хоть что-то подозрительное).
В общем, будем смотреть за обновлениями. Такие перехлесты в политиках безопасности ожидаемы, потому что они в сфере ИИ пока довольно сырые. Я об этом в телеграме писала здесь. У кого-то тренировочные данные, содержащие личную информацию пользователей, утекают (да, OpenAI?), у кого-то вот слишком строгие правила. Но со временем это должно выправиться (а пока не сообщайте моделям никакой чувствительной информации о себе!)
Заключение
Тут не буду отступать от традиции: обещаю следить за развитием визуальных трансформеров (но не так пристально, как за языковыми, все-таки это мой основной интерес).
Спасибо, что были со мной, заходите еще.
*Деятельность Meta запрещена в России
Midjourney в этом плане пока все еще лидирует по моему, но глядя на то, что делают другие можно сказать конкуренты вплотную подобрались уже.
А чтобы сгенерировать успех не нужны никакие нейросети!