Содержание статьи +
- TL;DR
- Зачем это нужно знать
- Ментальная модель: изображение – это последовательность патчей
- Почему Механизм Внимания – Это Вся Суть
- Почему ViT Обогнал CNN – И Где CNN Всё Ещё Выигрывает
- Математика токенов – проговорённая вслух
- Размер патча, разрешение и ручки, которые действительно важны
- От изображения к видео – почему простого ViT недостаточно
- ViViT – рецепт чистого Transformer для видео
- TimeSformer – Разделённое внимание
- Video Swin Transformer – Иерархическое окно-внимание
- Hiera – Отрезаем лишнее
- VideoMAE и вопрос предобучения
- DINO, DINOv2 и DINOv3 – самосупервизия без реконструкции
- Где Vision Transformer живут в продакшен-системе 2026 года
- Ошибки при отгрузке ViT-Backbone в видео-продукты
- Выбор правильного Backbone – прохождение по решениям
- Где Тут Фора Софт
- Ключевые выводы
- Что Почитать Дальше
TL;DR
Vision Transformer – сокращённо ViT – это архитектура, которая с 2020 по 2024 год вытеснила свёрточные сети, став стандартным backbone для серьёзной работы в области компьютерного зрения. ViT разбивает изображение на сетку небольших квадратных патчей (обычно 16×16 пикселей), преобразует каждый патч в вектор с помощью линейного проецирования и подаёт полученную последовательность в тот же Transformer-энкодер, что и в основе больших языковых моделей. Для обработки видео в продакшене ключевыми стали три расширения: ViViT и TimeSformer (2021) открыли эру pure-attention для пространственно-временных данных, Video Swin Transformer (2021) внедрил иерархическое window-внимание, позволив обрабатывать видео в высоком разрешении, а Hiera (2023, ICML Oral) вернул в архитектуру компоненты, специфичные для компьютерного зрения, и в 2026 году остаётся самым быстрым и точным video-backbone с открытыми весами. Эта статья объясняет нетехническому читателю, как работает ViT, почему он превзошёл CNN, как видео-варианты развивают его идеи и какую модель выбрать при извлечении признаков для видео-продукта в 2026 году.
Зачем это нужно знать
Почти в каждой современной модели компьютерного зрения, которую ваша команда запускает в продакшен, внутри используется Vision Transformer. Детектор, выбранный в уроке про production-линейку YOLO, имеет Transformer-архитектуру в качестве бэкбона или нека. Open-vocabulary детектор из урока про Grounding DINO – это ViT от начала до конца. Модель сегментации из урока про SAM 2 использует Hiera-бэкбон. Видео-VLM, которые классифицируют сцены, описывают клипы и отвечают на вопросы о видео, начинаются с ViT-энкодера изображения. Если вы не понимаете архитектуру, вы не сможете объяснить, почему одна модель работает быстро, а другая – медленно, почему одной нужно миллиард примеров для обучения, а другая обучается на тысячах, и почему инженеры спорят о размере патча, разрешении и размерности эмбеддингов, будто это просто технические детали. На самом деле – это действительно важные параметры. Этот материал – фундамент для всех уроков Phase 2, всех мультимодальных уроков Phase 4 и всех генеративных уроков Phase 5. Это также самая понятная ментальная модель, которую мы знаем, чтобы объяснить «foundation model для зрения» на языке, доступном продакт-менеджеру или основателю.
Ментальная модель: изображение – это последовательность патчей
До ViT каждая серьёзная модель обработки изображений была свёрточной нейронной сетью – CNN. CNN последовательно применяют небольшие фильтры к изображению, постепенно сводя признаки к всё более мелким сеткам, пока всё изображение не сжимается в один вектор. В архитектуру заложены два сильных индуктивных байеса: локальность – предположение, что соседние пиксели связаны между собой, и эквивариантность к сдвигу – предположение, что объект остаётся тем же, независимо от того, находится ли он в левом верхнем или правом нижнем углу. Эти байеси полезны. Но они же и становятся пределом – ограничивают, что модель может выучить.
Статья Vision Transformer, опубликованная Алексеем Досовицким и коллегами из Google Research в 2020 году под названием «An Image is Worth 16×16 Words», поставила вопрос: что будет, если отказаться от предвзятых настроек и позволить модели обучаться с нуля? Рецепт почти неприлично прост. Берёте изображение, например размером 224×224 пикселя. Разбиваете его на сетку патчей 16×16 – получается 14 патчей по ширине и 14 по высоте, всего 196 патчей. Каждый патч преобразуете в вектор из 768 чисел (16 × 16 × 3 канала). Умножаете каждый вектор на обучаемую матрицу, чтобы спроецировать его в пространство эмбеддингов – обычно это 768-мерный вектор. К каждому патчу добавляете обучаемый position embedding, чтобы модель понимала, откуда он взят в изображении. В начало последовательности прикрепляете специальный обучаемый «class token» – его финальное состояние станет общим представлением изображения. Все 197 токенов подаёте на вход стандартному Transformer-энкодеру – тому же, что используется в языковых моделях. На выходе берёте вектор class-токена и передаёте его через небольшую классификационную голову.
Это вся архитектура. Никаких свёрток. Никакого пулинга. Никакой специальной «vision-машинерии». Изображение трактуется как последовательность из 196 токенов, и тот же трансформер-энкодер, который обрабатывает предложение из 196 слов, может работать и с этой последовательностью. Число яркости – то, что инженеры называют «patch embedding» – простыми словами, это 768-числовое резюме одного 16×16-патча изображения.
Цифры сошлись. ViT-Base – 12 слоёв, размерность эмбеддинга 768, 12 голов внимания, 86 миллионов параметров – сравнялся с лучшими CNN-байзлайнами на ImageNet при обучении с нуля. ViT-Large – 24 слоя, 1024 dim, 16 голов, 307M параметров – обогнал их. ViT-Huge – 32 слоя, 1280 dim, 16 голов, 632M параметров – превзошёл state of the art от EfficientNet на ImageNet с заметным отрывом, установил новые топовые результаты на CIFAR-100 и бенчмарке VTAB и потребовал меньше вычислительных ресурсов для обучения, чем CNN, которую он сместил. Единственный нюанс – данные: ViT потребовалось около 300 миллионов размеченных изображений (датасет JFT-300M, доступный внутри Google), чтобы обогнать CNN. При обучении на стандартных 1,3 миллиона изображений ImageNet ViT уступал сопоставимому ResNet. CNN показывала лучшие результаты на малых данных; ViT – на больших объёмах.
Почему Механизм Внимания – Это Вся Суть
Причина, по которой ViT превосходит CNN на больших масштабах, – это механизм внимания. Свёртка 16×16 видит сразу только 16 пикселей; чтобы информация передавалась с одной стороны изображения на другую, CNN приходится использовать множество слоёв, каждый из которых постепенно объединяет соседние патчи. Распространение информации из одного угла в противоположный происходит медленно. В отличие от этого, слой self-attention в каждом блоке трансформера позволяет каждому патчу напрямую взаимодействовать с любым другим – за один шаг. Патч номер 1, находящийся в левом верхнем углу, может за один проход задать вопрос: «Насколько я связан с патчем 196 – правым нижним углом?» – и получить обученный вес. Связи на больших расстояниях, на формирование которых у CNN уходит двенадцать слоёв, в трансформере доступны уже на первом уровне.
Сам механизм – это взвешенное среднее. Для каждой пары токенов модель вычисляет три вектора – query, key и value – и attention-скор от токена A к токену B определяется как скалярное произведение query A и key B, делённое на квадратный корень из размерности эмбеддинга и прошедшее через softmax. В результате получается распределение вероятностей, которое указывает, «на что обращать внимание при формировании следующего представления». Новое представление токена A – это взвешенная сумма value-векторов всех остальных токенов, где веса заданы softmax. Повторите эту операцию двенадцать раз – и модель построит богатое глобальное представление изображения.
Цена – это стоимость. Self-attention квадратично растёт с числом токенов: изображение 224×224 при размере патча 16×16 даёт 196 токенов – вполне комфортно; изображение 1024×1024 при том же размере патча даёт 4096 токенов, и матрица внимания содержит 16,7 миллиона элементов. Это непреодолимая преграда, которая и мотивирует все архитектурные решения, описанные ниже.
Почему ViT Обогнал CNN – И Где CNN Всё Ещё Выигрывает
Два эффекта позволяют ViT добиться превосходства. Первый: отсутствие индуктивного байеса становится преимуществом при большом масштабе данных. Когда датасет мал, встроенные предположения помогают – CNN не нужно с нуля учить локальность. Когда же данных много, эти предположения становятся ограничением: модель сама могла бы выучить локальность, а затем – формы, которые CNN не видит, но только при наличии достаточного объёма данных. В статье ViT 2020 года это сказано прямо: при достаточном количестве данных масштаб обучения побеждает индуктивный байес. Второй эффект: глобальное поле восприимчивости механизма внимания даёт каждому слою доступ ко всему изображению. У CNN эффективное поле восприимчивости растёт постепенно, слой за слоем; у ViT оно уже на первом слое охватывает всё изображение.
Где CNN всё ещё выигрывают в 2026 году: на малых датасетах, в моделях с небольшим числом параметров, на edge-устройствах с жёстким ограничением по задержке и в задачах, где эквивариантность к сдвигу – реальное требование (например, в медицинской визуализации, где модель должна одинаково реагировать на признак независимо от его положения). EfficientNet и ConvNeXt остаются сильными бенчмарками при количестве параметров ниже 100 миллионов. Сегодня правильнее говорить не «Transformer заменил CNN», а «Transformer заменил CNN на больших масштабах». Для развёртывания на телефоне с лимитом инференса в 50 мс маленькая CNN часто по-прежнему лучше. А для облачного GPU с бюджетом 200 мс и возможностью использовать предобучение на сотнях миллионов изображений преимущество переходит к ViT.
| Свойство | CNN (например, ResNet, EfficientNet) | ViT |
|---|---|---|
| Индуктивный байас | Локальность + эквивариантность к сдвигу | Нет – выучивается из данных |
| Receptive field на слой | Локальное (ядра 3×3, 5×5, 7×7) | Глобальное (каждый токен видит каждый токен) |
| Поведение на малых данных | Отличное – байасы помогают | Плохое – нужны миллионы примеров |
| Поведение на больших данных | Выходит на плато | Продолжает улучшаться |
| Throughput на edge | Сильное (зрелые кернелы) | Улучшается, но исторически медленнее |
| Память на высоком разрешении | Управляемая | Квадратичная по количеству токенов – дорого |
Математика токенов – проговорённая вслух
Пройдёмся по числам для ViT-Base на изображении 224×224, потому что арифметика – самый чистый способ понять, что происходит изнутри.
RGB-изображение размером 224×224 – это тензор формы (224, 224, 3), содержащий всего 150 528 чисел. Размер патча – 16×16. Сетка состоит из 224 / 16 = 14 патчей по ширине и 14 по высоте, всего – 14 × 14 = 196 патчей. Каждый патч преобразуется в вектор из 16 × 16 × 3 = 768 чисел.
Patch embedding – это одно линейное проектирование, обученная матрица формы (768, 768), которое отображает каждый вектор патча в 768-мерный embedding. Это 196 × 768 = 150 528 чисел, входящих в Transformer. Модель также добавляет в начало обучаемый [CLS] токен (один 768-мерный вектор) и прибавляет обучаемые position embeddings формы (197, 768). Transformer-энкодер получает тензор формы (197, 768).
У ViT-Base – 12 блоков Transformer-энкодера. В каждом из них используется механизм multi-head self-attention с 12 головами размерности 64 (поскольку 768 / 12 = 64), а также feed-forward слой со скрытой размерностью 3072 (стандартное 4× расширение). Общее количество параметров составляет около 86 миллионов.
Стоимость одного слоя self-attention над 197 токенами – 197 × 197 × 768 ≈ 30 миллионов умножений-сложений на одну голову, умноженных на 12 голов – составляет около 360 миллионов операций на слой только для механизма внимания. На 12 слоёв это даёт 4,3 миллиарда операций внимания. Слой feed-forward добавляет примерно столько же. От начала до конца один прямой проход через ViT-Base на изображении 224×224 требует около 17 GFLOPs.
Теперь масштабируем до изображения 1024×1024 при том же размере патча. Сетка становится 64 × 64 = 4 096 патчей. Стоимость attention на слой составляет 4 096 × 4 096 × 768 ≈ 12,9 миллиарда операций на одну голову – это в 35 раз дороже случая 224×224 только за счёт attention. Вот та квадратичная стена, о которой мы говорим. Почти каждая архитектура ниже была придумана, чтобы её обойти.
Размер патча, разрешение и ручки, которые действительно важны
Три ключевые инженерные параметры определяют каждое решение о развёртывании ViT: размер патча, входное разрешение и размерность эмбеддинга. Они кажутся незначительными, но именно эти три числа решают, будет ли ваша модель работать на 60 FPS или на 6 FPS.
Размер патча определяет, насколько агрессивно модель уменьшает дискретизацию изображения. ViT-Base/16 использует патчи размером 16×16 и генерирует 196 токенов из изображения 224×224. ViT-Base/14 применяет патчи 14×14 и выдаёт 256 токенов. Чем меньше патч – тем больше токенов, выше детализация признаков, квадратично растёт вычислительная стоимость механизма внимания и, как правило, улучшается точность на плотных задачах, таких как сегментация. Увеличение размера патча до 32×32 снижает количество токенов в 4 раза и стоимость внимания в 16 раз, но ценой потери детализации.
Входное разрешение важно, потому что количество токенов растёт пропорционально квадрату разрешения. Переход от 224×224 к 384×384 – рутинное повышение для точности – утраивает число токенов с 196 до 576 и увеличивает стоимость attention в 9 раз. Переход к 1024×1024 приведёт вас к стене.
Embedding-размерность определяет ёмкость модели. ViT-Tiny использует 192, ViT-Small – 384, ViT-Base – 768, ViT-Large – 1024, ViT-Huge – 1280, ViT-G – 1408. Удвоение embedding-размерности примерно вчетверо увеличивает количество параметров в feed-forward слоях и удваивает вычислительную стоимость одной головы внимания.
На практике правильная комбинация зависит от задачи. Для инференса в реальном времени на edge-устройствах подойдут ViT-Tiny/16 или ViT-Small/16 с разрешением 224×224. Для максимальной точности в облаке на небольших изображениях – ViT-Large/14 при разрешении 384×384. Для плотных предсказаний (сегментация, backbone детекции) рекомендуется использовать ViT-Base/16 с разрешением 512×512 или выше, с иерархическими расширениями, описанными ниже. Желание использовать крупную модель в высоком разрешении – именно то, что побуждает большинство команд выбирать иерархические и windowed-варианты.
От изображения к видео – почему простого ViT недостаточно
Видео – это последовательность изображений, дополненная временной составляющей. Умножение количества токенов на 16 кадров – типичная длина входного фрагмента для моделей распознавания действий – превращает 196 токенов в 3 136. Матрица внимания при этом увеличивается в 256 раз. Попробуйте подать в модель 1-минутный клип со скоростью 30 кадров в секунду – и вы окажетесь далеко за пределами возможностей GPU по хранению матрицы внимания в памяти.
Для видео должно произойти две вещи. Во-первых, модель должна уметь распознавать временные зависимости – например, значение яркости в позиции (10, 20) кадра 5 должно быть связано со значением яркости в той же позиции кадра 6, даже если в сплющенной последовательности токенов эти элементы находятся далеко друг от друга. Во-вторых, вычислительная стоимость механизма внимания над пространством × временем должна снизиться на порядки.
Литература по video-Transformer по сути представляет собой перечень способов факторизации и приёмов, обеспечивающих локальность, которые решают эти две проблемы. Ниже перечислены четыре подхода – именно с ними вы реально сталкиваетесь в продакшене.
ViViT – рецепт чистого Transformer для видео
ViViT опубликовали Anurag Arnab и коллеги из Google в марте 2021 года, через шесть месяцев после оригинального ViT. В статье представлены четыре варианта модели. Вариант 1 – Spatio-temporal attention – грубый бейзлайн: tubelet-патчи (3-D блоки, скажем, 16 × 16 × 2 вокселя) становятся токенами, и энкодер обращается ко всем им совместно. Самый точный, но самый дорогой. Вариант 2 – Factorised encoder – сначала запускает пространственный Transformer на каждый кадр, затем малый временной Transformer, принимающий покадровые [CLS] токены. Вариант 3 – Factorised self-attention – чередует пространственный и временной attention в одном блоке. Вариант 4 – Factorised dot-product attention – разделяет сами attention-головы на пространственные и временные.
Две практические победы – Вариант 2 и использование tubelet-патчей. Tubelet-патчи заменяют покадровые 2D-патчи на 3D-блоки, охватывающие несколько кадров, что позволяет модели видеть небольшой временной контекст внутри каждого токена. Факторизация Варианта 2 снижает стоимость полного spatio-temporal attention на порядок при работе с длинными клипами, теряя лишь небольшую долю точности.
ViViT-L/16, обученный на бенчмарке распознавания действий Kinetics-400 – 400 классов действий, 240 000 обучающих клипов, – достигает 81,3 % точности по top-1. На Kinetics-600 этот показатель повышается до 83,5 %, а на Something-Something v2 – бенчмарке, специально разработанном для проверки временного рассуждения, – составляет 65,4 %. Эти результаты были лучшими в 2021 году и до сих пор служат точкой отсчёта для подхода «pure attention для видео».
TimeSformer – Разделённое внимание
TimeSformer был опубликован за два месяца до ViViT – его разработали Gedas Bertasius, Heng Wang и Lorenzo Torresani из Facebook AI Research. Их вклад – divided attention: вместо совместного внимания по пространству и времени модель чередует слои: один слой работает только вдоль временной оси (связывая одну и ту же пространственную позицию между кадрами), следующий – только вдоль пространственных осей (связывая разные позиции внутри одного кадра). Два attention-слоя объединяются, и результат – глобальное пространственно-временное покрытие при стоимости от одной четверти до одной десятой от совместного внимания.
Заявленные результаты TimeSformer – 82,2% по top-1 на Kinetics-400 и 80,7% на Kinetics-600. Модель представлена в трёх вариантах – base, large и HR (высокое разрешение), причём версия large HR, обученная на Kinetics-600, на тот момент установила state of the art. Референсная реализация доступна на github.com/facebookresearch/TimeSformer под лицензией CC BY-NC (обратите внимание: некоммерческая – обязательно ознакомьтесь с условиями перед использованием). Архитектура с разделённым вниманием (divided-attention) получила широкое распространение и встречается и в более новых моделях.
Video Swin Transformer – Иерархическое окно-внимание
Swin Transformer – Shifted Window модель для обработки изображений – была представлена Ze Liu и коллегами из Microsoft в 2021 году. Главный вклад модели для практического применения – window-attention со сдвинутыми окнами. Вместо того чтобы позволять каждому токену взаимодействовать со всеми остальными, Swin разбивает сетку токенов на непересекающиеся окна, например, 7×7 токенов, и применяет механизм внимания внутри каждого окна. Обмен информацией между окнами происходит за счёт сдвига разбиения на половину окна каждые два слоя. Благодаря этому стоимость вычисления внимания снижается с квадратичной зависимости от числа токенов до линейной: внимание внутри окна имеет постоянную вычислительную сложность, а количество окон растёт линейно. Модель также иерархическая: на переходах между стадиями она объединяет токены, формируя пирамиду признаков, как это делают свёрточные сети, что делает Swin идеальным каркасом для плотных задач, таких как детекция и сегментация.
Video Swin Transformer, представленный вскоре той же командой, распространяет подход на временную область: окна становятся 3D-блоками, например, 8 × 7 × 7 токенов (8 кадров × 7 × 7 пространственно), а трюк с сдвигом окон применяется как в пространстве, так и во времени. На Kinetics-400 Video Swin-L достигает 84,9% по top-1; на Something-Something v2 – 69,6%. Ключевой практической особенностью является иерархическая пирамида признаков: Video Swin занимает место, которое ранее занимал backbone в стиле FPN, поэтому несколько лет он оставался стандартным video-backbone для задач вроде временной локализации и плотной сегментации видео. Swin V2 вышел в 2022 году с настройками масштабирования, увеличившими общее число параметров до 3 миллиардов и обеспечившими поддержку очень высокого разрешения.
Hiera – Отрезаем лишнее
К 2023 году в области компьютерного зрения годами накладывали специфичные для vision-обработки настройки поверх простого ViT: иерархические пирамиды, сдвинутые окна, относительные позиционные смещения, свёрточные стволы, обучаемое уменьшение разрешения. Каждая из этих деталей улучшала свой бенчмарк. Вместе они делали модели медленнее, чем следовало бы. Hiera, представленная на ICML 2023 (Oral) Чайтаной Райали и коллегами из Meta FAIR при участии исследователей из Georgia Tech и Johns Hopkins, поставила очевидный вопрос: что произойдёт, если убрать все эти настройки и позволить модели самому выучить необходимые представления через задачу предобучения Masked Autoencoder (MAE)?
Рецепт: начать с иерархического ViT (чтобы сохранить многоуровневую пирамиду признаков, необходимую для downstream-задач), убрать все vision-специфичные элементы – никаких shifted windows, никаких relative positional biases, никаких свёрточных ядер в patch embedding – и провести предобучение с помощью MAE, где модель должна реконструировать замаскированные патчи изображения. Предобучение на MAE позволяет модели получить неявные приоритеты локальности и эквивариантности к сдвигу из данных, а не «запекать» их в архитектуру. В результате получается архитектура, которая проще и быстрее всех предыдущих иерархических ViT, но при этом более точная.
Числа впечатляют: Hiera работает в 2,4 раза быстрее MViTv2 на изображениях и в 5,1 раза – на видео. На наборе данных Kinetics-400 Hiera-L превосходит все предыдущие модели своего класса, а на Kinetics-600 и Kinetics-700 устанавливает новые рекорды точности. Официальная реализация доступна на github.com/facebookresearch/hiera под лицензией Apache 2.0 – по-настоящему дружественной к коммерческому использованию. Кроме того, Hiera выступает в роли визуального бэкенда для SAM 2 (модели сегментации из урока про SAM 2), что является одним из самых весомых подтверждений пригодности архитектуры для промышленного применения.
VideoMAE и вопрос предобучения
Vision Transformer требуют много данных, а размеченного видео для обучения с нуля всегда не хватает. Ответом стало самообучение на огромных неразмеченных корпусах видео. Наиболее распространённый подход – Masked Autoencoders for Video (VideoMAE), опубликованный на NeurIPS 2022 группой под руководством Zhan Tong из Tsinghua University. Идея проста: берём клип из 16 кадров, разбиваем каждый кадр на патчи размером 16×16, случайно маскируем 90–95% патчей – как по пространству, так и по времени, – подаём оставшиеся 5–10% патчей в ViT-энкодер и просим небольшой декодер восстановить замаскированные пиксели. Чтобы справиться с этой задачей, энкодер вынужден выучить структуру видео.
Соотношение маскирования имеет значение. Image MAE хорошо работает при 75 % маскирования; video MAE показывает лучшие результаты при 90–95 % маскирования, поскольку соседние кадры в основном избыточны. Модель вынуждена предсказывать замаскированные патчи на основе временно удалённого контекста – именно этот сигнал обучения и нужен.
Числа VideoMAE на backbone ViT-Base: 81,5% top-1 на Kinetics-400 после self-supervised предобучения на самом Kinetics-400 (без внешних размеченных данных). VideoMAE-V2, опубликованный в 2023 году, масштабируется до ViT с миллиардом параметров и использует стратегию dual masking, достигая 90,0% top-1 на Kinetics-400, 89,9% на Kinetics-600, 68,7% на Something-Something v1 и 77,0% на v2. Это показатели foundation-модели – они находятся на уровне или выше всех публичных лидеров в своих бенчмарках и достигнуты без использования внешних размеченных видео, кроме обучающих данных самого бенчмарка.
Практический вывод: если вы обучаете модель понимания видео в 2026 году на своих данных, вы почти наверняка начнёте с публично доступного чекпоинта VideoMAE-V2 или Hiera-MAE, а затем проведёте дообучение на своих метках. Начинать с случайной инициализации на доменном видеодатасете, скажем, из 50 000 клипов – почти всегда неверное решение.
DINO, DINOv2 и DINOv3 – самосупервизия без реконструкции
Другое крупное семейство методов без учителя – DINO, self-DIstillation with NO labels, – было представлено Mathilde Caron и коллегами из Meta FAIR в 2021 году. Вместо реконструкции замаскированных фрагментов DINO обучает «сеть-ученик» воспроизводить выход «сети-учителя», которая представляет собой экспоненциальное скользящее среднее прошлых состояний ученика. Обе сети обрабатывают разные аугментированные версии одного и того же изображения и должны генерировать одинаковые эмбеддинги. Модель обучается без меток, опираясь лишь на одно условие: два аугментированных вида одного изображения должны иметь близкие эмбеддинги.
DINOv2 (2023, Maxime Oquab и коллеги из Meta) применил этот подход к 142 миллионам тщательно отобранных изображений и создал самый мощный open-weights image-энкодер своего времени. DINOv3 (август 2025, Oriane Siméoni и коллеги из Meta) пошёл ещё дальше: 1,7 миллиарда изображений, 1,1 миллиарда параметров в самой крупной модели, новая функция потерь Gram Anchoring, призванная стабилизировать плотные feature maps, склонные к деградации при длительных тренировках. На задаче линейной классификации ImageNet DINOv3 достигает 88,4% top-1, опережая DINOv2 с результатом 87,3%. В задаче семантической сегментации на PASCAL VOC DINOv3 показывает 86,6 mean IoU против 83,1 у DINOv2.
Почему это важно для видео: признаки DINO-семейства особенно хорошо работают на плотных задачах – сегментация, оценка глубины, трекинг, то есть на всех задачах, где требуется полезное представление для каждого пикселя, – и переносятся на видео путём извлечения признаков по кадрам с последующим обучением небольшой временной головы. DINOv2 и DINOv3 распространяются под MIT-лицензией и разрешены для коммерческого использования, являясь на сегодняшний день самыми мощными готовыми vision-архитектурами, когда в вашем домене отсутствуют размеченные данные.
Где Vision Transformer живут в продакшен-системе 2026 года
Vision Transformer повсеместно используются в современном стеке видео-ИИ, почти всегда в роли backbone – первой сети в пайплайне, преобразующей пиксели в признаки, – а не как отдельные модели. Вот карта.
В детекции объектов наблюдается тенденция заменять CNN-архитектуры на ViT-архитектуры в более точных моделях. RT-DETR (описан в уроке про open-vocabulary детекцию) – это полностью трансформерный детектор. Детекторы в стиле YOLO всё чаще используют модули на основе трансформеров в своих компонентах обработки признаков (neck). Grounding DINO и OWLv2 – open-vocabulary детекторы – построены на трансформерной архитектуре с добавлением текстового энкодера сверху.
В сегментации SAM 2 (модель сегментации из урока про SAM 2) используется Hiera-архитектура – video Vision Transformer – в качестве энкодера изображений. Модуль памяти, позволяющий отслеживать объекты при окклюзии, сам по себе представляет собой трансформер.
В классификации изображений и видео весь слой foundation-моделей построен на ViT. EVA-02 и SigLIP 2 – это ViT-основанные image-энкодеры, используемые почти во всех современных vision-language моделях. DINOv2 и DINOv3 – ViT-энкодеры, применяемые в качестве feature-экстракторов для большинства задач плотного предсказания.
В vision-language моделях – мультимодальных моделях из Phase 4 – vision-энкодер всегда представляет собой ViT, почти всегда с фиксированным размером патча, согласованным с token-бюджетом языковой модели. LLaVA, Qwen-VL, Pixtral, InternVL, Florence-2 и каждая передовая VLM используют ViT-токенизатор изображений для преобразования пикселей в токены, которые может обрабатывать языковая модель.
В генеративном видео – Phase 5 – diffusion-UNet’ы, лежащие в основе Sora, Veo, Kling, Runway, Pika и Luma, используют Transformer-блоки для spatio-temporal attention-слоёв, объединяющих информацию по кадрам и во времени. Открытые генеративные модели видео (HunyuanVideo, CogVideoX, Mochi, LTX-Video, Wan) построены по схожему принципу.
В реальных видеозвонках – глава 6 – модели трансформеров для сегментации обеспечивают размытие и замену фона (подробности см. в уроке про MediaPipe Selfie Segmentation). Лёгкие варианты ViT постепенно вытесняют устаревшие модели в стиле MobileNet в пайплайнах, развернутых в браузере на WebGPU.
Ошибки при отгрузке ViT-Backbone в видео-продукты
Мы внедрили или оценили Vision Transformer-архитектуру примерно в двадцати продакшен-видеофичах в Фора Софт – в основном в системах видеонаблюдения, телемедицине, конференциях и OTT-платформах. Ниже перечислены четыре ошибки, которые регулярно возникают.
Ошибка 1: квадратичный attention кусается на высоком разрешении. Самый частый сюрприз при развёртывании ViT – резкий рост стоимости инференса, когда команда решает: «запустим на 4K». Изображение 4K – около 18 миллионов пикселей; при размере патча 16×16 это даёт 73 000 токенов на кадр, а attention-матрица содержит 5,3 миллиарда элементов. Модель, работавшая на 30 FPS при разрешении 224×224, теперь работает медленнее одного кадра в секунду. Решение – использовать иерархическую архитектуру (Swin, Hiera), которая не применяет глобальное внимание, либо запустить модель на уменьшенном изображении и интерполировать результат обратно.
Ошибка 2: position embeddings привязаны к входному разрешению. Оригинальный ViT обучается на фиксированной сетке position embeddings – например, 14×14 для изображения 224×224. При изменении входного разрешения эти эмбеддинги приходится интерполировать, что обычно работает, но иногда приводит к снижению производительности. Современные подходы (RoPE, синусоидальные, относительные) справляются с изменением разрешения более гибко. Перед изменением входного разрешения обязательно ознакомьтесь с документацией модели.
Ошибка 3: малые данные + простой ViT = нет переноса. Если вы обучаете простой ViT-Base на своих доменных видеоданных – 10 000 клипов – с нуля, результаты будут хуже, чем у ResNet-50. ViT требует масштаба. Решение – использовать предобученную модель: DINOv2, DINOv3, VideoMAE-V2, Hiera, SigLIP 2 – и дообучать её. Мы не видели ни одного проекта, где обучение ViT с нуля было бы оправданным решением.
Ошибка 4: edge-развёртывание сложнее, чем edge-развёртывание CNN. Vision Transformer исторически отставали от CNN на edge-устройствах, потому что ядерные операции для механизма внимания были менее зрелыми в TensorRT, CoreML и TensorFlow Lite по сравнению с операциями свёртки. Этот разрыв быстро сокращается: TensorRT теперь хорошо поддерживает ViT, CoreML от Apple включает специальные оптимизации для ViT, а архитектуры вроде EfficientFormer изначально проектировались с учётом edge-устройств. Однако фраза «я разверну ViT-14 на телефоне» всё ещё остаётся гораздо более рискованной инженерной ставкой, чем «я разверну MobileNet на телефоне». Тестируйте экспорт-цепочку как можно раньше.
Выбор правильного Backbone – прохождение по решениям
Дерево решений, которое мы используем в Фора Софт, включает четыре вопроса.
Первый вопрос: что у вас за задача? Для классификации изображений по фиксированной таксономии – подойдёт маленький ViT (Tiny или Small), предобученный на DINOv2 или DINOv3, с дообучением на ваших метках. Для сегментации – SAM 2 с Hiera-архитектурой в качестве дефолтного решения; альтернатива – DINOv3 с небольшой головой, если нужен единый пайплайн на одной модели. Для детекции – RT-DETR или YOLO с Transformer-шеей, в зависимости от требований: open-vocabulary (Grounding DINO) или fixed-vocabulary (YOLO). Для классификации видео – Hiera-MAE или VideoMAE-V2, предобученные и дообученные на ваших метках действий. Для vision-language задач – выбирайте VLM, а не визуальный энкодер: VLM поставляется со своим встроенным визуальным энкодером.
Второй вопрос: какой у вас бюджет задержки? Меньше 50 мс на edge: ViT-Tiny или ViT-Small при разрешении 224×224, с протестированным экспортом в TensorRT или CoreML. 50–200 мс в облаке: ViT-Base или ViT-Large при разрешении 224×224 или 384×384. 200 мс и более для batch-обработки: любые модели – вплоть до ViT-Huge при 384×384 или выше.
Третий вопрос: сколько у вас размеченных данных? Меньше 10 000 примеров – начните с предобученной модели DINOv3 / Hiera / VideoMAE-V2 и дообучайте только голову, заморозив backbone. От 10 000 до 100 000 – дообучайте голову и последние несколько слоёв backbone. Более 100 000 – проводите полное дообучение backbone с низким learning rate. Никогда не обучайте ViT с нуля на доменном датасете, если у вас нет хотя бы миллиона примеров и research-grade вычислительного бюджета.
Четвёртый вопрос: какая лицензия вам нужна? Apache 2.0 или MIT (Hiera, Swin, DINOv2, DINOv3, EVA-02, SigLIP 2) – безопасны для любого коммерческого использования. Non-commercial (референс-код TimeSformer, некоторые внутренние форки Meta) – перед использованием требуется юридическая проверка. ImageBind и определённые датасеты Meta ещё более ограничены – внимательно читайте лицензии.
Где Тут Фора Софт
Большинство видеофич, которые мы отправляем в Фора Софт, строятся на основе предобученного Vision Transformer в роли backbone. В видеонаблюдении мы используем ViT-основанные open-vocabulary детекторы и SAM 2 для сегментации; в телемедицине – DINOv3 для локализации зон симптомов и Hiera-MAE для классификации действий, когда камера фиксирует процедуру; в видеоконференциях – лёгкие версии ViT в WebGPU-пайплайне для фоновой сегментации; в OTT – Video Swin и Hiera для content-aware encoding и классификации сцен на архивных материалах. Мы не обучаем ViT с нуля – используем fine-tuning на публичных чекпоинтах с лицензиями Apache или MIT. Выбор архитектуры редко становится узким местом; дата-пайплайн, стратегия разметки и способ экспорта в deployment-рантайм – вот где проекты либо преуспевают, либо проваливаются.
Ключевые выводы
- Vision Transformer разбивает изображение на патчи размером 16×16, рассматривает каждый патч как токен и передаёт последовательность в стандартный Transformer-энкодер.
- ViT превосходит CNN при масштабировании, поскольку механизм внимания работает глобально уже с первого слоя, а индуктивные байасы не ограничивают способность модели к обучению.
- Для обработки видео ключевыми архитектурами являются четыре расширения: ViViT, TimeSformer, Video Swin и Hiera – последняя считается стандартом по умолчанию в 2026 году.
- Самонаучающееся предобучение с помощью VideoMAE-V2 или DINOv3 – это способ, которым каждая современная ViT-модель для видео получает начальные веса.
- Квадратичная сложность внимания становится проблемой на высоком разрешении – выбирайте иерархическую модель (например, Swin или Hiera) или снижайте разрешение.
- Никогда не обучайте ViT с нуля на небольшом доменном датасете; всегда используйте дообучение на основе публичного чекпоинта.
Что Почитать Дальше
- Отслеживание множества объектов – DeepSORT, ByteTrack, OC-SORT и BoT-SORT в продакшене – в следующем уроке используются детекторы на основе ViT.
- Open-vocabulary детекция – Grounding DINO, Florence-2, OWLv2, RT-DETR, RF-DETR – детекторы, которые внедряют ViT в продакшен для задачи «найти любой объект, который можно описать текстом».
- SAM 2 для видео – memory-модуль, propagation, ротоскопинг – сегментация на базе Hiera, уже готовая к использованию в продакшене.