Czym jest Linformer i dlaczego osiąga złożoność liniową?
sobes.tech AI
Odpowiedź od AI
Linformer to architektura transformera, która zmniejsza złożoność obliczeniową uwagi z kwadratowej (O(n²)) do liniowej (O(n)) w długości sekwencji.
Kluczową ideą Linformer jest przybliżenie macierzy uwagi za pomocą reprezentacji o niskim rzędzie. Zamiast obliczać pełną uwagę między wszystkimi parami tokenów, Linformer projekcjonuje klucze i wartości w przestrzeń o mniejszym wymiarze za pomocą uczonych się liniowych projekcji.
To pozwala:
- Zredukować wymiar kluczy i wartości,
- Zmniejszyć liczbę obliczeń przy mnożeniu macierzy,
- Zmniejszyć zużycie pamięci.
W ten sposób, złożoność liniowa jest osiągana dzięki użyciu stałej wymiarowości projekcji, która nie zależy od długości wejściowej sekwencji, co czyni Linformer efektywnym dla długich tekstów i dużych sekwencji.
Można to wyobrazić sobie tak:
- Zamiast obliczania uwagi: Attention(Q, K, V) = softmax(QKᵀ / sqrt(d)) V
- Linformer oblicza: Attention(Q, E K, F V), gdzie E i F to uczone macierze projekcji zmniejszające wymiar K i V.
To upraszcza obliczenia i zmniejsza złożoność do O(n).