1) Obraz jest dzielony na płaty (patche) i zamieniany na sekwencję embeddingów płatów (patch embeddings). 2) Stos warstw Transformera (ViT) przetwarza tę sekwencję, produkując cechy ukryte. 3) Wybierana jest odpowiednia warstwa ukryta (np. przedostatnia) oraz tryb cech: „patch” (tokeny płatów bez tokenu CLS) lub „cls_patch”. 4) Uzyskane cechy Z_v są rzutowane przez macierz/moduł projekcji W do wymiaru embeddingów LLM: H_v = W · Z_v. 5) Powstałe tokeny wizyjne H_v są wstawiane w sekwencję tokenów tekstowych i podawane do modelu językowego. Sama wieża jest zwykle zamrożona; trenowany jest głównie projektor (i opcjonalnie LLM).
Modele językowe operują wyłącznie na tokenach tekstowych i nie potrafią przyjąć obrazu jako wejścia. Vision Tower rozwiązuje ten problem, kodując obraz do reprezentacji, którą można rzutować na przestrzeń embeddingów LLM. Wykorzystanie wstępnie wytrenowanego, zamrożonego enkodera pozwala uniknąć kosztownego trenowania widzenia od zera i przenieść bogatą wiedzę wizualną (np. z CLIP) do modelu multimodalnego.
Dzieli obraz na płaty o stałym rozmiarze (np. 14×14 px) i liniowo osadza każdy płat jako wektor, dodając embedding pozycyjny.
Stos warstw Transformera z multi-head self-attention przetwarza embeddingi płatów, budując reprezentację uwzględniającą globalny kontekst obrazu.
Oficjalna
Wybiera warstwę ukrytą (np. przedostatnią) oraz tryb: „patch” (usunięcie tokenu CLS) lub „cls_patch” (zachowanie CLS i płatów).
Oficjalna
Wprowadzenie architektury ViT — obraz jako sekwencja płatów przetwarzana przez Transformer.
CLIP trenuje kontrastywnie osobną wieżę obrazu i wieżę tekstu; wieża obrazu staje się reużywalnym enkoderem wizyjnym.
LLaVA podłącza zamrożony enkoder CLIP ViT-L/14 jako vision_tower do LLM przez liniowy projektor, popularyzując ten wzorzec i nazwę.
Złożoność czasowa: O(N² · d). Złożoność przestrzenna: O(N²).
Który wstępnie wytrenowany enkoder obrazu stanowi wieżę (np. CLIP ViT-L/14, SigLIP).
Rozdzielczość obrazu wejściowego; wyższa daje więcej tokenów płatów i wyższy koszt.
Rozmiar płata w pikselach; mniejszy płat = więcej tokenów, drobniejsza granularność.
Z której warstwy ukrytej pobierane są cechy (np. przedostatnia).
Czy enkoder jest zamrożony podczas treningu, czy trenowany.
Standardowy ViT wykonuje gęste obliczenia — wszystkie płaty przechodzą przez wszystkie warstwy.
Płaty przetwarzane równolegle w obrębie warstwy; warstwy Transformera wykonywane sekwencyjnie.
Wieża oparta na ViT to intensywne mnożenia macierzy, idealne dla rdzeni tensorowych GPU.
Transformerowe obliczenia dobrze mapują się na TPU.