К тренажеру
ВопросMediumvlmРеальный собес

Как VLM обрабатывает изображение вместе с текстом

Как visual language model принимает картинку на вход: что делает vision encoder, как появляются visual tokens и как они совмещаются с текстом?

Короткий ответ

Картинку режут на patches, vision encoder превращает их в image embeddings, projection/alignment layer переводит их в пространство LLM, после чего visual tokens подаются вместе с text tokens в language model.

Полный разбор

Типичная VLM архитектура состоит из vision encoder, projection/alignment модуля и LLM. Изображение приводят к нужному размеру, режут на patches, например 14x14 или 16x16, и прогоняют через ViT/CLIP-like encoder. На выходе получается последовательность визуальных embedding vectors.

Дальше эти embeddings через линейную проекцию или небольшой adapter переводятся в размерность и пространство LLM. После этого они становятся visual tokens и добавляются в общий prompt рядом с text tokens. LLM учится отвечать, attending одновременно к текстовым и визуальным токенам.

Для больших картинок важны tiling, patch resolution, positional information и ограничение числа visual tokens: слишком много токенов резко увеличивают compute и KV cache.

Теория

VLM не "понимает jpg напрямую" внутри LLM. Она получает последовательность embedding tokens, подготовленную vision encoder.

Типичные ошибки

  • Сказать, что картинка просто конвертируется в текстовое описание до LLM.
  • Не упомянуть patches/ViT.
  • Не связать число visual tokens с latency и context length.

Как отвечать на собеседовании

  • Разложи на три блока: vision encoder, projector, LLM.
  • Упомяни patches и visual tokens как аналог text tokens.