Sobes.tech
Middle — Senior

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).