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

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

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

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 и отладки.


Практика — audio / video RAG

Каскад ASR → индекс → LLM остаётся рабочим default в prod: проще отлаживать, чем end-to-end мультимодальную модель на весь пайплайн.

YouTube и подкасты

  1. ТранскриптWhisper или API провайдера; для YouTube — извлечение аудиодорожки или готовых субтитров.
  2. Чанкинг по таймкодам — каждый фрагмент с метаданными start_sec, end_sec.
  3. Индекс в ChromaDB / Qdrant — векторные БД.
  4. Ответ с ссылкой на таймкод — "в 12:34 автор говорит о…".

Паттерн совпадает с текстовым RAG; отличие — источник и обязательная привязка к времени в UI.

Чат с аудиофайлом

Универсальные мультимодальные модели (Gemini, GPT-4o) принимают файл или URL и отвечают на вопросы о транскрипте, эмоциях, инструментах. Для повторяемых запросов и экономии токенов предпочтительнее один раз транскрибировать Whisper и дальше работать как с текстовым RAG.

Video understanding

Для длинных роликов без полного просмотра моделью:

  • саммари по главам (главы как структурированный JSON);
  • key takeaways и action items;
  • опционально — индексация глав в RAG для точечных вопросов.

Вычислительно дешевле, чем подавать весь ролик в контекст: сначала сжатие, потом Q&A по сжатию.

Примеры для запуска — Практикум — проекты по ИИ (ветка "аудио, видео, мультимодальность") — YouTube Transcript RAG, Music Explorer, Video Understanding Agent.


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

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


Дальше