Когда данные готовы остается придумать как обучать модель. Нужно, чтобы модель могла и читать текст, и писать текст, и квадратики с полигонами рисовать. В 2017 Vasvani et. al подарил нам универсальный способ представить и обработать что угодно: 1. Сделаем из входа последовательность токенов. 2. Засунем в трансформер. Изображение превращается в эмбеддинги патчей по методологии как в Visual Transformer. Текст превращается в эмбеддинги как в любой языковой модели. Здесь всё стандартно. Из необычных инноваций: давайте сделаем специальные токены для координат. Авторы покрыли изображение сеткой и для каждой точки на сетке ввели специальный токен. Например, есть токен для точки (0, 0). Это как бы служебное слово, точно так же как <pad>, <unk> и прочие. Вы можете подавать его на вход модели, можете получать на выход. Готово, ваша модель умеет оперировать координатами в явном виде, а значит может читать и создавать ббоксы и полигоны. Токенизация это одна из главных причин почему LLM на данный момент не умеют делать детекцию: у них нет нормальной репрезентации для локаций на изображении. Авторы решили вопрос максимально просто и элегантно. Теперь любой вход можно представить как последовательность и засунуть в трансформер. Ладно, мы можем засунуть это в трансформер. Но как же лейблы? Что на выходе? Нам нужно как-то обучать модель делать классификацию, детекцию и сегментацию. Но функции ошибок для каждой из этих задач совершенно разные. Вот это самая интересная часть статьи. Авторы просто выбрасывают всё, что мы придумали в CV, и заменяют одной функцией ошибки: cross-entropy loss. Они фиксируют, что вход должен быть json и выход должен быть json. Так что модель становится авторегрессионным генератором текста, точно так же как GPT, и просто предсказывает следующий токен. Следующий токен может быть в том числе одним из токенов зарезервированных под координаты. То есть эти ребята взяли и заменили весь наш computer vision на NLP. Одна функция ошибки, чтобы править всеми, и по наши костыли наконец-то пришел bitter lesson. То есть в плане архитектуры Florence-2 это на самом деле VLM.