Перейти к основному содержимому

Трансформеры в разных модальностях — текст, зрение, звук

Разработчику

Transformer изначально создавался для последовательностей токенов. Тот же блок attention + FFN применяют к патчам изображения, фреймам спектrogram и мультимодальным парам «текст + картинка». Единая идея — представить данные как последовательность эмбеддингов и моделировать глобальные зависимости через attention.

NLP-основа — статьи 1–2. CV-применение в продуктах — распознавание. CNN по-прежнему сильны локально; трансформеры доминируют в foundation models.


Общая схема переноса

Модальность«Токен»Positional info
ТекстSubwordAbsolute, RoPE
ИзображениеPatch 16×162D index → 1D sequence
АудиоTime-frequency binFrame index
ВидеоPatch × timeSpatial + temporal

Зрение (Vision Transformer, ViT)

ViT (Dosovitskiy et al., 2020) режет изображение на пatches (например 16×16 px), линейно проецирует каждый patch в вектор, добавляет class token и positional embeddings, прогоняет через encoder как BERT.

  • На малых датасетах ViT проигрывает ResNet без огромного pre-train.
  • На JFT-300M и ImageNet-21k — конкурентен или лучше CNN.
  • DeiT, Swin Transformer — эффективность и иерархия для detection/segmentation.

DETR — detection через transformer + bipartite matching; end-to-end без anchors (медленнее converges, но проще pipeline).

Практика: google/vit-base-patch16-224 на Hugging Face; fine-tune head на свой датасет — тот же Trainer, что и для BERT.


Мультимодальность — CLIP и LLaVA

CLIP (2021) обучает два encoder'а (image + text) на парах «картинка — подпись» из интернета. Cosine similarity в общем пространстве → zero-shot классификация по текстовым меткам.

LLaVA, GPT-4V, Gemini — LLM + vision encoder через projector; картинка превращается в «visual tokens» в контексте языковой модели. Диалог по изображению, OCR, diagram understanding.


Аудио — Whisper и AST

Whisper (OpenAI)

Encoder-decoder transformer на mel-spectrogram; обучен на 680k часов weakly supervised speech. Задачи:

  • speech-to-text (multilingual + translation to English);
  • language identification;
  • robustness к шуму и акцентам.
import whisper

model = whisper.load_model("base")
result = model.transcribe("audio.mp3", language="ru")
print(result["text"])

Размеры: tinylarge — trade-off качество / VRAM.

Wav2Vec 2.0 / HuBERT

Self-supervised speech representations → fine-tune ASR с малым объёмом размеченной речи. Transformer (или CNN frontend + transformer) на raw waveform или features.

Audio Spectrogram Transformer (AST)

Spectrogram как «картинка» → ViT-подход для classification звуков (esc50, audioset).


Видео

TimeSformer, Video Swin — attention по spatial и temporal patches. Задачи: action recognition, video QA. Вычислительно дорого; часто sample frames + 2D CNN/ ViT.


Единые мультимодальные модели

МодельМодальностиПрименение
CLIPimage + textSearch, zero-shot
Whisperaudio → textTranscription
Flamingo / IDEFICSimage + text → textVQA, captioning
ImageBindimage, text, audio, depth, …Joint embedding
GPT-4otext, audio, image in/outУниверсальный ассистент

Выбор под задачу

ЗадачаСтартовая точка
OCR + NLPTrOCR, Vision-LLM, cloud Read API
ASR русскийWhisper medium/large, Yandex SpeechKit
Классификация изображенийViT, ConvNeXt, fine-tune ResNet baseline
Поиск по каталогуCLIP / sentence-transformers multimodal
Чат по документу с картинкамиMultimodal LLM + RAG

Modality fusion
Ранние системы склеивали отдельные модели (ASR → текст → LLM). Современный тренд — end-to-end или один LLM с adapter под модальность; для prod часто остаётся каскад ради latency и отладки.


Связь с разделом NLP

Текстовый трансформер — ядро multimodal stack: vision/audio encoder лишь поставляет tokens в языковую модель. Поэтому маршрут 6.09 логично читать перед LLM и агентами.


Дальше


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").