Vision Tower
Jak działa
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).
Rozwiązany problem
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.
Komponenty
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
Implementacja
Ewolucja
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ę.
Hiperparametry (konfigurowalne osie)
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.
Złożoność obliczeniowa
Złożoność czasowa: O(N² · d). Złożoność przestrzenna: O(N²).
Paradygmat wykonania
Standardowy ViT wykonuje gęste obliczenia — wszystkie płaty przechodzą przez wszystkie warstwy.
Równoległość
Płaty przetwarzane równolegle w obrębie warstwy; warstwy Transformera wykonywane sekwencyjnie.
Wymagania sprzętowe
Wieża oparta na ViT to intensywne mnożenia macierzy, idealne dla rdzeni tensorowych GPU.
Transformerowe obliczenia dobrze mapują się na TPU.