Vision-language модели: как картинка попадает в языковую модель
RT-1 из урока 3.1 знает о мире ровно то, что было в 130 тысячах демонстраций робота. Знание о мире есть у больших языковых моделей, но они читают текст, а робот видит камерой. В этом уроке разберём, как картинку превращают в последовательность токенов и подают в языковую модель. ViT режет изображение на квадраты 16 × 16 пикселей и делает из каждого токен. LLaVA берёт готовую сеть зрения из CLIP и готовую языковую модель и учит между ними одну матрицу, которая переводит токены картинки в векторы, понятные языковой модели. PaliGemma собрана по той же схеме из открытых частей и весит 3 миллиарда параметров. Модели, которые читают картинку вместе с текстом и отвечают словами, называют vision-language моделями, или VLM. В лаборатории маленькая VLM обучается в браузере и описывает предмет двумя словами, а сеть зрения, обученная заранее, соревнуется с сетью, которая учится с нуля.
Робот знает демонстрации, языковая модель знает мир
RT-1 в уроке 3.1 выбирает действие как токен из 256 корзин, и делает это по 130 тысячам демонстраций. В них нет ничего, кроме того, что люди показали роботу: предметы со стола в офисной кухне, команды из набора, который собирали 17 месяцев. Попроси RT-1 взять предмет, которого не было в демонстрациях, или объяснить, что значит «потухший экран», и модели неоткуда это взять.
Знание о мире есть у больших языковых моделей. В уроке 2.3 SayCan спрашивал языковую модель, какой шаг полезен для просьбы, Code as Policies просил её писать код, а VoxPoser по её коду строил карты. Но каждый раз модель получала текст и отдавала текст, а сцену ей пересказывали детекторы: список предметов, координаты, ответ «успех — нет». Детектор видит только то, чему его учили, и всё, что не попало в его словарь, до языковой модели не доходит.
Хочется убрать пересказчика и показать языковой модели саму картинку. Модель, которая получает картинку и текст и отвечает текстом, называют vision-language моделью, или VLM. Трудность в том, что языковая модель читает последовательность токенов: каждый токен — вектор фиксированной длины из таблицы эмбеддингов, и внимание из урока 1.6 работает с такими векторами. Картинка — это сетка пикселей 224 × 224 × 3, полторы сотни тысяч чисел без всякой последовательности. Как превратить её в токены, которые трансформер прочитает так же, как слова?
ViT: патчи становятся токенами
Трансформер читает последовательность векторов одинаковой длины, а картинка — сетка пикселей. В уроке 1.6 мы уже резали кадр кухни на патчи, чтобы посчитать стоимость внимания; Vision Transformer (ViT, Dosovitskiy и соавторы, Google, 2021) делает из этой нарезки всю модель. Картинку 224 × 224 режут на патчи — квадраты 16 × 16 пикселей, получается 14 × 14 = 196 патчей. Каждый патч разворачивают в вектор из 16 · 16 · 3 = 768 чисел и умножают на одну и ту же обучаемую матрицу: это линейный слой, он переводит патч в вектор ширины модели. Авторы называют результат эмбеддингами патчей, и дальше с ними работает обычный трансформер из урока 1.6: внимание всех ко всем, полносвязные блоки, нормализация. Отдельный обучаемый токен в начале последовательности, как [class] в BERT, собирает ответ для классификации.
Внимание не знает порядка токенов: переставь их, и выход переставится так же. Для слов это решали позиционные кодировки из урока 1.6, для патчей — так же: к эмбеддингу каждого патча прибавляют обучаемый вектор его позиции. В ViT эти векторы в начале обучения ничего не знают о том, что патч 2 лежит правее патча 1: все пространственные отношения модель выучивает из данных, в отличие от свёрточной сети, где соседство зашито в каждом слое.
На сцене — иконка 16 × 16 из мира стола урока 2.1, нарезанная на 16 патчей по 4 × 4 пикселя. Линейный слой переводит каждый патч в вектор из 16 чисел, к нему прибавляется вектор позиции, и 16 токенов идут в один блок внимания. Это энкодер — часть модели, которая превращает картинку в векторы; он понадобится маленькой VLM в лаборатории ниже. Справа — среднее всех токенов на выходе и его сходство с выходом для исходной, неперемешанной картинки.
Схема энкодера на одной картинке, а не рисунок модели. Слева — иконка 16 × 16 пикселей, нарезанная на 16 патчей 4 × 4; число в углу — исходный номер патча, оранжевое — если патч переставлен. В середине — 16 токенов: столбик — вектор из 16 чисел, оранжевая клетка — положительное число, синяя — отрицательное, чем ярче, тем больше по модулю. Фиолетовые квадратики с номерами под столбиками — векторы позиций 0–15. Справа — выход энкодера, среднее всех токенов после блока внимания, для исходной картинки и для текущей; сходство — косинус угла между ними, 1,000 — выходы совпадают.
Под капотом: формула ViT, размеры моделей и что дали позиции
Картинку режут на патчей со стороной ; и есть длина последовательности. Вход трансформера в статье записан так:
Одна матрица для всех патчей, своя строка для каждой позиции, дальше одинаковых блоков: внимание с несколькими головами и полносвязный блок, каждый с нормализацией перед входом и остаточной связью. Три размера из статьи: ViT-Base — 12 слоёв, ширина 768, 86 млн параметров; ViT-Large — 24 слоя, ширина 1024, 307 млн; ViT-Huge — 32 слоя, ширина 1280, 632 млн. Запись ViT-L/16 означает модель Large с патчем 16 × 16; длина последовательности обратно пропорциональна квадрату стороны патча, поэтому ViT-L/14 с патчем 14 дороже, чем ViT-L/16.
Позиционные векторы в статье одномерные: 196 обучаемых строк, по одной на номер патча в порядке чтения. Двумерные (отдельно для строки и столбца) и относительные кодировки авторы тоже проверили: на ImageNet в режиме пяти примеров на класс ViT-B/16 без позиционных векторов даёт 0,614, с одномерными — 0,642, с двумерными — 0,640, с относительными — 0,640. Разрыв между «без позиций» и «с позициями» большой, между способами кодирования — почти никакого. Без позиций авторы называют вход «мешком патчей» (bag of patches).
Данные решили больше, чем архитектура. Предобученный на ImageNet с 1,3 млн картинок ViT-Large проигрывает ViT-Base, на ImageNet-21k с 14 млн они сравниваются, и только на закрытом наборе JFT с 303 млн картинок большие модели раскрываются. ViT-H/14 после JFT даёт 88,55% на ImageNet за 2,5 тысячи ядро-дней TPUv3, ResNet BiT-L — 87,54% за 9,9 тысячи. У нас энкодер крошечный: патч 4 × 4 × 3 = 48 чисел, ширина 16, один блок, одна голова, 3200 параметров.
После нарезки картинка ничем не отличается от текста: это последовательность векторов, и трансформер читает её тем же вниманием. На этом стоит всё дальнейшее: PerAct в уроке 2.2 резал сетку вокселей на патчи 5 × 5 × 5, RT-1 в 3.1 брал 81 токен из свёрточной сети, а VLM, о которых пойдёт речь, получают от ViT сотни токенов картинки. Но у языковой модели своя таблица эмбеддингов: вектор слова «красный» — строка этой таблицы, а вектор патча — выход чужой сети другой ширины и другого масштаба. Как положить их в одну последовательность?
LLaVA и PaliGemma: проектор между энкодером и языковой моделью
Токены картинки и токены слов живут в разных пространствах: у энкодера своя ширина и свой смысл осей, у языковой модели — своя таблица эмбеддингов, под которую настроено всё её внимание. Обучать с нуля одну сеть, которая читает и то и другое, означало бы заново собирать и знание о мире из текстов, и зрение из картинок.
LLaVA (Liu и соавторы, Университет Висконсина и Microsoft Research, 2023) берёт обе части готовыми. Зрение — энкодер картинок CLIP из урока 2.1 в варианте ViT-L/14; его веса заморожены. Язык — модель Vicuna. Между ними стоит проектор: обучаемая матрица , которая переводит каждый выходной токен энкодера в вектор той же размерности, что эмбеддинги слов языковой модели. Токены картинки после проектора просто ставят в последовательность перед токенами вопроса, и языковая модель читает их обычным вниманием, не отличая от слов. Авторы называют этот этап обучением «визуального токенизатора для замороженной языковой модели».
Обучение идёт в два этапа. На первом замораживают и энкодер, и языковую модель и обучают только проектор на 595 тысячах пар «картинка — подпись», отобранных из набора CC3M: модель учится по картинке выдавать подпись. На втором проектор и языковую модель дообучают вместе на инструкциях: 158 тысяч примеров, которые текстовая GPT-4 написала по подписям и рамкам картинок COCO — 58 тысяч диалогов, 23 тысячи подробных описаний и 77 тысяч ответов с рассуждением. Энкодер заморожен всегда. Всё обучение шло на восьми видеокартах A100, и результат на синтетическом наборе вопросов составил 85,1% от оценки GPT-4; без второго этапа способность следовать инструкциям падала больше чем на 50 пунктов. В LLaVA-1.5 того же года линейный проектор заменили двухслойным MLP, а энкодер взяли с разрешением 336 px.
PaliGemma (Beyer, Steiner, Pinto, Kolesnikov, Wang и соавторы, Google DeepMind, 2024) собрана по той же схеме из открытых частей: энкодер SigLIP-So400m на 400 млн параметров, обученный контрастно с сигмоидной функцией потерь, языковая модель Gemma-2B и линейный проектор между ними, инициализированный нулями. Всего меньше 3 млрд параметров. Картинку приводят к квадрату 224, 448 или 896 пикселей, и она даёт 256, 1024 или 4096 токенов; они идут первыми, за ними токен начала текста, запрос и перевод строки как разделитель, потом ответ. Внимание префиксное: токены картинки и запроса видят друг друга целиком, в обе стороны, так что картинка может «подсмотреть» вопрос, а токены ответа порождаются авторегрессивно и видят только то, что перед ними. Авторы проверили и обычную каузальную маску из урока 1.6 на запросе и на картинке: обе работают хуже. Потери считают только по токенам ответа.
В отличие от LLaVA, PaliGemma не замораживает ничего уже на первом мультимодальном этапе: энкодер дообучается вместе с языковой моделью на миллиарде примеров при 224 px, с медленным разогревом его скорости обучения, чтобы градиенты ещё не выровненной языковой модели не испортили признаки. По абляции авторов после переноса на задачи разницы между замороженным и обучаемым энкодером нет, но на задачах про положение предметов перплексия без заморозки заметно лучше; замороженная языковая модель — значительно хуже, а любая часть, обученная с нуля вместо готового чекпойнта, обрушивает результат. Сравнили и проектор: линейный против MLP — 77,2 против 77,1 балла при обучении всех весов. Потом разрешение поднимают до 448 на 50 млн примеров и до 896 на 10 млн, и три базовые модели дообучают под конкретную задачу.
Схема одна: готовый энкодер, готовая языковая модель и обучаемый мост между ними. Чтобы увидеть, что именно происходит на этом мосту, соберём такую модель в миниатюре и обучим её здесь. Сработает ли готовый энкодер лучше, чем энкодер, обученный вместе со всем остальным?
Мини-VLM описывает картинку
Соберём LLaVA в миниатюре из трёх частей, и каждая будет обучаться здесь, в браузере. Энкодер — мини-ViT из интерактива выше: 16 патчей, один блок внимания, 3200 параметров. Его предобучаем контрастно, той же целью InfoNCE, что у мини-CLIP в уроке 2.1: среднее токенов картинки сближается с суммой векторов двух слов подписи, а чужие пары расталкиваются. Поток картинок для предобучения — все 24 сочетания шести цветов и четырёх форм, по 16 новых картинок на шаг: это «интернет» энкодера. Проектор — линейный слой из 16 чисел энкодера в 16 чисел языковой модели, 272 параметра. Языковая модель — один блок трансформера с префиксным вниманием, как в PaliGemma, и словарём из десяти слов и двух служебных токенов, 2400 параметров; её предобучаем на тексте подписей без картинок, чтобы она знала, что после цвета идёт форма, а после формы — конец ответа.
Подписи для самой VLM — 200 картинок с подписями из двух слов. Среди них нет ни одного фиолетового кубика: 23 сочетания из 24. Обучение идёт как в LLaVA: сначала при замороженных энкодере и языковой модели учится только проектор, потом проектор и языковая модель вместе, а энкодер остаётся замороженным. Ответ порождается слово за словом: по токенам картинки и токену начала модель выбирает цвет, по картинке и слову цвета — форму, затем токен конца. Проверка — на новых картинках всех 24 сочетаний, которых в обучении не было.
Схема мини-VLM на одной картинке, а не рисунок модели. Слева — иконка, нарезанная на 16 патчей. Дальше столбики — векторы по 16 чисел (оранжевое — положительные, синее — отрицательные, ярче — больше): 16 токенов энкодера, проектор W — матрица 16 × 16 — и 16 токенов картинки после него, которые читает языковая модель. Справа — ответ слово за словом: полоска — вероятность выбранного слова, зелёное — слово верное, красное — ошибка, <eos> — конец ответа. После миссии 2 внизу справа синим — ответ модели с энкодером с нуля.
Проверка на новых картинках
24 новые картинки, по одной на каждое сочетание шести цветов и четырёх форм. Под картинкой — подпись модели: ✓ зелёным — верно, ✗ красным — ошибка. Вторая строка появляется после миссии 2 — подпись модели с энкодером с нуля: ✓ синим — верно, ✗ красным — ошибка. Пунктирная рамка — фиолетовый кубик: этого сочетания не было среди 200 подписей.
Под капотом: контрастная цель, префиксная маска и потери мини-VLM
Энкодер предобучаем на пакетах из пар. Пусть — нормированное среднее токенов картинки , — нормированная сумма векторов слов подписи , . Потери симметричные, как в CLIP и в уроке 2.1:
Проектор — матрица со сдвигом, как в LLaVA: токены энкодера (16 × 16) становятся токенами картинки в пространстве языковой модели. Последовательность языковой модели — 16 токенов картинки, затем , цвет, форма; у текстовых токенов свои позиционные векторы. Маска внимания префиксная, как на рисунке 2 PaliGemma: токен видит токен , если — токен картинки или . Выход читается через ту же таблицу эмбеддингов, что и вход (tied embeddings): логит слова на позиции — скалярное произведение нормированного состояния и вектора слова . Потери — перекрёстная энтропия по трём позициям ответа:
Как и в LLaVA, потери считаются только по токенам ответа; токены картинки и ничего не предсказывают. Этап 1: обновляется только , 20 проходов по 200 подписям. Этап 2: и языковая модель, 80 проходов. Оптимизатор Adam, пакет 10. Модель с энкодером с нуля обучается с тех же начальных весов проектора и языковой модели на тех же подписях теми же 80 проходами, но энкодер в ней случайный и обучается вместе со всем.
Одинаково в любом браузере. Все числа на сцене считаются при каждом запуске заново и повторяются: зёрна случайности фиксированы, а экспоненту, логарифм, гиперболический тангенс и степени в Adam движок считает сам, сложениями, умножениями и делениями. Встроенные Math.exp и Math.pow в Chrome и Safari иногда расходятся в последнем знаке, а обучение энкодера с нуля раздувает такую разницу примерно в десять раз за проход, и к концу у модели другие ответы.
Десять зёрен. В лаборатории зерно одно, 9. На зёрнах 1–10 предобученная модель права на новых картинках в 82–98% случаев, модель с энкодером с нуля — в 60–87%, и предобученная точнее на каждом зерне, на 5–32 пункта. Модель с нуля учится неустойчиво: при зерне 9 её точность на обучении в последних десяти проходах скачет между 82 и 97%, и если изменить шаг обучения на одну триллионную долю, на проверке она даёт от 78 до 90%. Фиолетовый кубик модель с нуля не описала верно ни разу. Предобученная на семи зёрнах из десяти тоже ни разу, на трёх — в 1–3 картинках из 8, и на девяти зёрнах её самый частый ответ — «фиолетовый мяч».
Три части, обученные порознь, после короткого совместного обучения отвечают словами на картинку, которую ни одна из них раньше не видела. Проектор при этом — всего лишь матрица 16 × 16, и в LLaVA он тоже одна матрица. Что именно эта матрица делает с токенами картинки, если языковая модель на первом этапе заморожена и своих эмбеддингов слов не меняет?
Проектор: что меняется в пространстве слов
На первом этапе LLaVA языковая модель заморожена: её таблица эмбеддингов, внимание и полносвязные блоки не меняются, учится только матрица проектора. Авторы пишут, что так токены картинки выравниваются с эмбеддингами слов, и называют проектор визуальным токенизатором. Посмотрим, что это значит в нашей мини-VLM: возьмём пространство её языковой модели, 16 чисел, и спроецируем на две главные оси — два направления, вдоль которых векторы различаются сильнее всего, — три вида векторов. Слова — десять строк таблицы эмбеддингов. Чтение модели — состояние на последней позиции перед тем, как выбрать слово: именно его скалярное произведение с векторами слов даёт вероятности, так что чтение обязано лежать ближе всего к слову, которое модель назовёт. И сами токены картинки после проектора — для каждой из 24 картинок их среднее.
Слева всегда состояние до обучения проектора: матрица случайная, языковая модель обучена только на тексте. Справа — после первого этапа, когда учился один проектор, или после второго, когда дообучилась и языковая модель. Оси общие для обеих панелей.
Карта пространства языковой модели: векторы из 16 чисел спроецированы на две главные оси. Единиц у осей нет — важны расстояния и направления; оси общие для обеих панелей, подпись внизу панели — какую долю разброса векторов они показывают. Кольца с подписью — слова-цвета, квадраты с подписью — слова-формы, маленькие значки — 24 картинки: цвет значка — цвет предмета, форма значка — его форма. Что именно показывают значки, задаёт переключатель «Точки».
Легенда: значки на сцене
Под капотом: как считаются оси и почему чтение обязано быть рядом со словом
Две главные оси считаются по ковариации набора из 10 векторов слов и 24 чтений перед цветом после второго этапа; все три вида точек на обеих панелях проецируются на одни и те же оси, поэтому панели можно сравнивать. Логит слова на позиции — , и softmax выбирает слово с наибольшим скалярным произведением. Чтение нормировано, поэтому «ближе всего по скалярному произведению» почти совпадает с «ближе всего по углу»; на плоскости двух осей это видно приблизительно, часть расстояния остаётся в остальных 14 измерениях.
У токенов картинки такого обязательства нет. Их никто не сравнивает со словами напрямую: они входят во внимание как ключи и значения, и языковая модель сама решает, что из них взять. Поэтому выравнивание проектора в LLaVA не значит, что токен картинки становится похож на вектор какого-то слова. Оно значит, что замороженная языковая модель начинает извлекать из этих токенов то, что нужно для ответа. В статье PaliGemma проектор инициализируют нулями: в начале обучения токены картинки — нулевые векторы, и языковая модель не видит ничего, пока проектор не начнёт их заполнять.
Проектор переводит токены картинки не в слова, а в векторы, из которых языковая модель умеет собрать слово. Это и есть мост между двумя готовыми частями: чем лучше энкодер и чем больше подписей, тем лучше он выучивается. Соберём теперь весь путь картинки в одну схему.
От пикселей до ответа словами
Соберём вместе всё, что было в уроке. Картинку режут на патчи, линейный слой с позиционными векторами делает из патчей токены, энкодер пропускает их через свои блоки внимания, проектор переводит выходы энкодера в ширину языковой модели, за ними встают токены текстового запроса, и языковая модель читает всё одной последовательностью: токены картинки и запроса — целиком, как в префиксном внимании PaliGemma, ответ — слово за словом. В PaliGemma при 224 px это 256 токенов картинки на один кадр; в RT-1 из урока 3.1 кадр давал 81 токен, а TokenLearner оставлял 8.
Для робота важно, что на этом пути нет ничего, что знает только о словах: ответом языковой модели может быть любой токен из её словаря. Если научить её выдавать после картинки и команды не слова, а токены действий, как RT-1 выдавал корзины, получится модель, которая по пикселям и словам сразу выдаёт действия. Что из устройства VLM живёт в системах 2025–2026 годов?
VLM внутри роботов 2026 года
Схема «энкодер — проектор — языковая модель» стала основой почти всех моделей части 3. π0 (Physical Intelligence, 2024) берёт PaliGemma целиком как основу на 3 млрд параметров и добавляет к ней эксперт действий на 300 млн — всего 3,3 млрд; авторы пишут, что выбрали PaliGemma за открытость и небольшой размер, важный для управления в реальном времени, и что подошла бы любая предобученная VLM. π0.5 (2025) оставляет ту же основу. OpenVLA (2024) построена на VLM Prismatic-7B: энкодер из двух частей, SigLIP и DINOv2, двухслойный MLP-проектор и языковая модель Llama 2 на 7 млрд, а сама Prismatic дообучена на наборе данных LLaVA-1.5. GR00T N1 (NVIDIA, 2025) читает сцену через VLM Eagle-2 с энкодером SigLIP-2: кадр 224 × 224 даёт 64 токена картинки. Gemini Robotics (Google DeepMind, 2025) построена на Gemini 2.0 — VLM общего назначения, которой авторы добавили рассуждение о физическом мире.
SigLIP, контрастно обученный энкодер семейства CLIP, стоит почти везде; споры идут о том, замораживать ли энкодер картинок (LLaVA — да, PaliGemma — нет) и сколько токенов картинки оставлять: 256 на кадр у PaliGemma и π0, 64 у GR00T N1. Чем больше токенов, тем лучше видны детали и тем дороже каждый шаг управления — тот же компромисс, который RT-1 решал TokenLearner.
Первой моделью, которая научила VLM выдавать действия, была RT-2: она взяла готовые PaLI-X и PaLM-E и дообучила их на демонстрациях робота вместе с данными из интернета. Как действия становятся токенами языковой модели и что при этом переносится из интернета на робота — следующий урок.
Восемь вопросов о типичных заблуждениях
Итоги урока
- Картинку превращают в последовательность так же, как текст: ViT режет её на патчи 16 × 16, один линейный слой делает из каждого патча вектор, к нему прибавляют вектор позиции, дальше работает обычный трансформер. Без позиций вход — мешок патчей.
- Токены картинки и слова живут в разных пространствах. Проектор — в LLaVA одна матрица, в LLaVA-1.5 и OpenVLA двухслойный MLP, в PaliGemma линейный слой с нулевой инициализацией — переводит выходы энкодера в ширину языковой модели, и она читает их как часть последовательности.
- Готовые части дешевле новых. LLaVA оставляет энкодер CLIP замороженным и за два этапа на 595 тысячах подписей и 158 тысячах инструкций от GPT-4 учит проектор, а потом проектор с языковой моделью; в нашей лаборатории предобученный энкодер на тех же 200 подписях точнее энкодера с нуля.
- PaliGemma собрана из SigLIP-So400m и Gemma-2B, меньше 3 млрд параметров, 256 токенов картинки при 224 px и 4096 при 896. Внимание префиксное: картинка и запрос видят друг друга целиком, ответ порождается авторегрессивно. Ничего не заморожено, и это не хуже после переноса, а на задачах о положении предметов лучше.
- Языковая модель отвечает по картинке и по привычке сразу. Наша мини-VLM называла фиолетовый кубик мячом, потому что в подписях после «фиолетовый» ни разу не было «кубик», хотя энкодер кубик видел; LLaVA так же отвечала «да» про клубничный йогурт. Разнообразие подписей — такая же часть модели, как её веса.
- На выходе языковой модели может стоять любой токен словаря. Это открывает путь к моделям, которые по картинке и команде выдают токены действий, — к RT-2 в уроке 3.3.
Открытые вопросы
Токены картинки после проектора не лежат рядом с векторами слов. Значит ли это, что проектор можно обучать как угодно, лишь бы ответы были верны?
Нет: пространство, в которое проектор кладёт токены картинки, определяет, что замороженная языковая модель сможет из них извлечь своим вниманием. В LLaVA первый этап учит проектор на подписях при замороженной модели, и авторы отмечают, что без второго этапа, где дообучается и языковая модель, качество следования инструкциям падает больше чем на 50 пунктов. PaliGemma идёт дальше и не замораживает ничего, а проектор инициализирует нулями, чтобы в начале обучения языковая модель не получала случайного шума вместо картинки. Открытым остаётся, сколько токенов и какой ширины нужно картинке на самом деле: PaliGemma берёт 256 на кадр, GR00T N1 оставляет 64.
Энкодер в LLaVA заморожен, в PaliGemma обучается. Что выбрать для робота?
Абляция PaliGemma говорит, что после переноса на задачи разницы нет, а на задачах о положении предметов обучаемый энкодер даёт лучшую перплексию — для робота положение предметов как раз важно. Но обучаемый энкодер требует разогрева скорости обучения и больших данных, иначе градиенты от не выровненной языковой модели портят его признаки, что и показывает наша модель с энкодером с нуля на 200 подписях. OpenVLA вместо этого добавляет к SigLIP второй энкодер DINOv2 ради признаков положения. Какой путь выигрывает при данных робота, которых всегда мало, — вопрос части 4.
Гид по статье
H. Liu, C. Li, Q. Wu, Y. J. Lee, «Visual Instruction Tuning», NeurIPS 2023 — LLaVA.
- Читать внимательноРаздел 4: архитектура с проектором , два этапа обучения и что на каждом заморожено. Раздел 3: как текстовая GPT-4 написала 158 тысяч инструкций по подписям и рамкам.
- Можно пропуститьТаблицы с примерами диалогов и подробности оценки через GPT-4 как судью; результаты на ScienceQA.
- Вопрос по ходуАвторы берут признаки CLIP до последнего слоя трансформера, а не после. Почему последний слой энкодера, обученного контрастно, может быть хуже для языковой модели?
L. Beyer, A. Steiner, A. S. Pinto, A. Kolesnikov, X. Wang и соавторы, «PaliGemma: A versatile 3B VLM for transfer», 2024 — разделы 3.1 и 3.2 про архитектуру и стадии, раздел 5 с абляциями: маска внимания, заморозка, проектор.
A. Dosovitskiy и соавторы, «An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale», ICLR 2021 — раздел 3.1 с уравнением 1, раздел 4.3 про размер данных и приложение D.4 про позиционные кодировки.
Материалы
- LLaVAСтраница проекта: демо, код, данные инструкций и веса
- LLaVA-1.5«Improved Baselines with Visual Instruction Tuning»: MLP-проектор и энкодер 336 px
- big_visionКод Google Research для ViT, SigLIP и PaliGemma
- Vision TransformerОфициальная реализация ViT и предобученные веса
Дальше: RT-2. У VLM на выходе любой токен словаря. RT-2 берёт готовые PaLI-X и PaLM-E, записывает действия робота как токены и дообучает модель на демонстрациях вместе с данными из интернета: знание о мире начинает переноситься на движения. Урок 3.3 →