Визуальный токен
Определение
Визуальный токен — единица представления изображения в последовательности, которую обрабатывает модель. В Qwen2-VL такую позицию занимает вектор признаков; специальный ID указывает, куда его подставить.
Также ищут: visual token · позиция визуального признака
Зачем это знать
По обработанной сетке можно посчитать, сколько позиций изображение займёт на входе Qwen2-VL. Затем к ним добавляют разделители и текст; расход памяти и задержку проверяют отдельно.
От сетки изображения к позициям LLM
Карта понятия
Что подтверждено
В примере статьи Qwen2-VL для изображения 224×224 указаны 64 визуальные позиции и два маркера изображения; вместе это 66 позиций последовательности.
Граница применимости: Пример формата Qwen2-VL в статье; число визуальных позиций и маркеры перечислены отдельно.
В Qwen2-VL (Transformers v4.45.2) N=grid_t×grid_h×grid_w/merge_size². Для неподвижного изображения два одинаковых кадра при temporal_patch_size=2 образуют одну группу: grid_t=1. При patch_size=14 и merge_size=2 N=(H/28)×(W/28); H и W — размеры после обработки.
Граница применимости: Считаются позиции визуальных признаков, не текст, не разделители и не вся длина запроса; grid_h/grid_w — сетка до пространственного слияния.
В Transformers v4.45.2 при изменении размеров процессор Qwen2-VL передаёт smart_resize множитель patch_size×merge_size. При значениях 14 и 2 высота и ширина результата кратны 28.
Граница применимости: Transformers v4.45.2, корректный вход и согласованная конфигурация; min_pixels и max_pixels влияют на результат.
В Transformers v4.45.2 smart_resize с factor=28, min_pixels=56² и max_pixels=224² уменьшает квадрат 1000×1000 до 224×224. В Qwen2-VL при patch_size=14 и merge_size=2 одно такое изображение даёт 64 визуальные позиции; два разделителя считаются отдельно.
Граница применимости: Выполнена отдельно smart_resize из закреплённого кода и проверен расчёт позиций для одной временной группы. Полный процессор и модель не запускались.
В Qwen2-VL (Transformers v4.45.2) повторённый специальный ID отмечает позиции изображения. При обработке входа модель заменяет векторы этих позиций визуальными признаками; сами признаки не являются номерами слов словаря.
Граница применимости: Transformers v4.45.2 при переданных input_ids и pixel_values и без внешнего inputs_embeds.
При конечных размерах 448×448 и 448×896 сетка Qwen2-VL содержит соответственно 1024 и 2048 позиций до слияния, а после слияния — 256 и 512 визуальных позиций.
Граница применимости: Авторский целочисленный расчёт одного изображения при patch_size=14, merge_size=2 и указанных итоговых размерах; это не замер времени или памяти.
Размер JPEG в байтах и длина JSON сами по себе не задают число визуальных позиций Qwen2-VL: для расчёта нужны размеры после обработки и параметры сетки/слияния.
Граница применимости: Вывод из пути пиксели → сетка → повторы image placeholder; не утверждение о биллинге внешнего API.
Что проверить
- Считайте визуальные позиции по размерам после обработки и параметрам patch_size и merge_size.
- Складывайте визуальные позиции, маркеры изображения и прочий текстовый вход отдельными слагаемыми.
- Зафиксируйте изображения, текст и нагрузку; отдельно измерьте качество, время ответа, ошибки и пиковую память.
Первоисточники
- Qwen2-VL: Enhancing Vision-Language Model’s Perception of the World at Any Resolution
§2.1 Model Architecture / Naive Dynamic Resolution; Unified Image and Video Understanding; §2.2.1 Data Format.
- image_processing_qwen2_vl.py
smart_resize; Qwen2VLImageProcessor.__init__ and _preprocess.
- modeling_qwen2_vl.py
PatchEmbed, PatchMerger, vision forward and conditional-generation forward with image features.