Robocikowo>ROBOCIKOWO
Architektura

Transformer-XL

2019AktywnyOpublikowano: 9 czerwca 2026Aktualizacja: 9 czerwca 2026Opublikowany
Transformer-XL (Dai et al., CMU + Google Brain, ACL 2019) to autoregresywny Transformer rozszerzający kontekst poprzez rekurencję między segmentami: stany ukryte z poprzedniego segmentu są przechowywane w pamięci i służą jako keys/values dla kolejnego segmentu. Wymagało to zaprojektowania nowego, relatywnego kodowania pozycji (wariant RPR). Konteksty 80% dłuższe niż standardowy Transformer i 450% dłuższe niż RNN, SOTA na enwik8 / WikiText-103. Bezpośrednia podstawa XLNet i Compressive Transformer.
Kluczowa innowacja
Wprowadza rekurencję między segmentami: stany ukryte poprzedniego segmentu są cache'owane (ze stop-gradientem) i reużywane jako rozszerzony kontekst kolejnego segmentu. Łączy to z relatywnym kodowaniem pozycji wymaganym, by tokeny tej samej pozycji w różnych segmentach były odróżniane. Pierwsza skuteczna ścieżka long-context w autoregresywnych Transformerach poza fixed-length window.
Kategoria
Architektura
Poziom abstrakcji
Wzorzec
Poziom operacji
ModelElement architekturyTreningInferencja
Zastosowania
Modele językowe na długich tekstach: enwik8, text8, WikiText-103, One Billion Word (SOTA w 2019)Generacja długich kompozycji (eseje, opowiadania) bez context fragmentation na granicach segmentówBezpośrednia podstawa XLNet (Yang et al. 2019) — drugi przełomowy model long-context po BERTBezpośrednia podstawa Compressive Transformer (Rae et al., DeepMind 2019) — kompresowalna rekurencjaPunkt odniesienia teoretyczny: relatywne PE Transformer-XL stał się fundamentem T5, RoPE i całej linii „distance-not-position" attention

Jak działa

Transformer-XL składa się z dwóch fundamentalnych mechanizmów: (1) Segment-level recurrence — podczas przetwarzania segmentu τ+1 model dostaje na wejście oryginalne tokeny segmentu τ+1 ORAZ hidden states z każdej warstwy poprzedniego segmentu τ (zamrożone, ze stop-gradientem). Hidden states segmentu τ tworzą rozszerzony „pamięciowy" zbiór keys/values, do którego nowe queries segmentu τ+1 mogą attentować. Efektywny kontekst rośnie z `T` (długość segmentu) do `T·N` (gdzie N to liczba zachowanych poprzednich segmentów) — przy koszcie O(T²) na obliczenie attention dla nowego segmentu (zamiast O((T·N)²)). (2) Relative positional encoding — autorzy wyprowadzają specjalną postać attention score: A_ij = Q_i·K_j + Q_i·R_{i-j} + u·K_j + v·R_{i-j}, gdzie R to uczone embeddingi RELATYWNYCH odległości i-j (sinusoidalne, ale dodawane jak embedingi a^K z RPR). Czteroskładnikowy rozkład izoluje wpływ pozycji od wpływu treści, a R nie zależy od absolutnej pozycji segmentu — co czyni rekurencję spójną. Implementacyjnie hidden states segmentu τ są trzymane w buforze pamięci w GPU; przy każdym nowym segmencie najstarsze są nadpisywane (FIFO).

Rozwiązany problem

Standardowy autoregresywny Transformer dzieli długi tekst na fixed-length segmenty (np. 512 tokenów) i każdy traktuje niezależnie — co prowadzi do dwóch problemów: (1) „context fragmentation" — pierwsze tokeny segmentu nie mają żadnego kontekstu z poprzedniego, (2) maksymalny effective context jest ograniczony do długości jednego segmentu. Naiwne rozszerzenie do dłuższych segmentów rośnie kwadratowo w pamięci attention. Transformer-XL rozwiązuje to: zamiast wydłużać segment, dodaje rekurencję między segmentami z cache'owanymi states. Drugą stroną medalu jest zepsute absolutne kodowanie pozycji — token na pozycji 0 nowego segmentu i token na pozycji 0 starego segmentu mają tę samą pozycję absolutną, co konfunduje attention. Dlatego praca wprowadza relatywne PE specjalnie dostosowane do rekurencji.

Komponenty

Hidden states cache (memory buffer)Rozszerzenie efektywnego kontekstu attention bez zwiększania długości segmentu

Bufor FIFO trzymający hidden states z N poprzednich segmentów dla każdej warstwy. Stop-gradient izoluje go od backpropu. Wczytywany jako keys/values dla nowego segmentu.

INStany ukryte z poprzednich segmentów, zachowane z odciętym gradientem.
OUTKonkatenacja cache'u i nowego segmentu używana jako keys/values.
FIFO cache (Transformer-XL kanon)Najstarsze segmenty są usuwane, gdy bufor się zapełnia.
Compressed cache (Compressive Transformer)Starsze segmenty są kompresowane (np. 1D conv) zamiast wyrzucane — DeepMind 2019.

Oficjalna

Relative positional encoding (4-term form)Spójność pozycyjna między segmentami i izolacja content vs distance

Czterosk­ładnikowy rozkład score attention z dwoma uczonymi wektorami u, v i embeddingami relatywnej odległości R. Konieczny, aby segment recurrence była spójna pozycyjnie.

INMacierz odległości między tokenami nowego segmentu a wszystkimi keys (cache + nowy).
OUTMacierz attention logitów nowego segmentu.

Oficjalna

Implementacja

Pułapki implementacyjne
Wyciek gradientu przez cache hidden statesWysoka

Implementacja bez stop-gradientu na cache'owanych states'ach jest niestabilna — gradient propaguje się przez wiele segmentów wstecz, co eksploduje pamięciowo i może powodować rozbieżność treningu.

Rozwiązanie:Zawsze stosować `tensor.detach()` (PyTorch) lub `tf.stop_gradient` na hidden states segmentu τ przed wykorzystaniem ich w segmencie τ+1.
Użycie absolutnego PE z segment recurrenceKrytyczna

Łączenie standardowego absolutnego PE (sinusoidal/learned) z rekurencją segmentów konfunduje attention — token na pozycji 0 nowego i starego segmentu mają identyczne PE. Konieczne jest relatywne PE.

Rozwiązanie:Używać czteroskładnikowego relatywnego PE z pracy Transformer-XL lub jego pochodnych (RoPE, T5 bias).
Zbyt małe M (memory length) względem TŚrednia

Dla M ≪ T cache nie wnosi istotnego rozszerzenia kontekstu — efekt jest porównywalny z baseline'em. Optymalnie M ≈ T do M ≈ 5·T.

Rozwiązanie:Dobierać M co najmniej równe T, najlepiej 2–5× T zgodnie z ablacjami z pracy.

Ewolucja

Oryginalny paper · 2019 · ACL 2019 (Carnegie Mellon University + Google Brain) · Zihang Dai
Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc V. Le, Ruslan Salakhutdinov
2017
Transformer (Vaswani et al.) — fixed-length context

Oryginalny Transformer dzieli teksty na fixed-length segmenty i traktuje je niezależnie, co stwarza problem context fragmentation.

2018
Relative Position Representations (Shaw et al.)

RPR pokazuje, że można modelować pozycję jako odległość zamiast jako absolutny indeks. Bezpośredni prekursor relatywnego PE w Transformer-XL.

2019
Transformer-XL — paper CMU + Google Brain
Punkt przełomowy

Dai, Yang, Yang, Carbonell, Le, Salakhutdinov publikują Transformer-XL na ACL 2019. Wprowadzają segment-level recurrence i nową, czteroskładnikową postać relatywnego PE. SOTA na enwik8, text8, WikiText-103, One Billion Word.

2019
XLNet (Yang et al.) — Transformer-XL jako backbone

XLNet (autorstwa znacząco pokrywającego się zespołu) używa Transformer-XL jako backbone'u i dodaje permutation language modeling. Jeden z najgłośniejszych przełomów po BERT.

2019
Compressive Transformer (Rae et al., DeepMind)

DeepMind rozszerza Transformer-XL o KOMPRESOWALNĄ pamięć — starsze hidden states są kompresowane (a nie odrzucane), wydłużając efektywny kontekst kilkukrotnie. Bezpośredni następca.

2020
Schyłek na rzecz sparse attention i RoPE

Po pojawieniu się Sparse Transformer (2019), Longformer/BigBird (2020) i RoPE (2021) podejście rekurencyjne Transformer-XL stało się rzadsze w nowych dużych LLM — większość modeli wybiera dłuższe okno + sparse/RoPE niż recurrence + relative PE.

2024
Powrót w hybrydach SSM (Mamba, RWKV)

Idea ukrytych „pamięciowych" stanów przekazywanych między krokami sekwencji wraca w architekturach SSM (Mamba) i RWKV — choć implementacyjnie różnią się od cache'owanych hidden states Transformer-XL, intuicja „rekurencyjna pamięć obok attention" jest prosto z 2019 roku.

Hiperparametry (konfigurowalne osie)

Segment length (T)Krytyczna

Liczba tokenów przetwarzanych w pojedynczym kroku forward. Praca testuje T=64–640 dla różnych benchmarków.

128WikiText-103
512enwik8 large model
640One Billion Word
Memory length (M)Krytyczna

Liczba poprzednich tokenów (z poprzednich segmentów) przechowywanych w cache'u i widocznych dla bieżącego segmentu. M=T·N gdzie N to liczba zachowanych segmentów.

512–1600Małe i średnie modele w pracy
3800Największy model: enwik8 24-warstwowy
Relative PE formWysoka

Czterosk­ładnikowy rozkład score = (Q_i + u)·K_j + (Q_i + v)·R_{i-j} z dwoma uczonymi wektorami u, v. Wybór sinusoidalnego R kontra learned R wpływa na ekstrapolację.

sinusoidal RDomyślny wybór w pracy — lekka ekstrapolacja
learned RLepsze wyniki na zadaniach z fixed M
Stop-gradient through cacheWysoka

Czy backprop propaguje się przez hidden states poprzedniego segmentu. Praca zawsze używa stop-gradientu — pełen backprop przez cache jest niestabilny i drogi.

Złożoność obliczeniowa

Złożoność czasowa: O(T · (T + M) · d) per segment. Złożoność przestrzenna: O(M · d · L) cache + O(T · d · L) bieżąca aktywacja.

Wąskie gardło obliczeniowe

Sekwencyjność segmentów

Główne wąskie gardło to sekwencyjne przetwarzanie segmentów — segment τ+1 wymaga ukończenia segmentu τ. To uniemożliwia trywialną paralelizację po wymiarze sekwencji w treningu.

Zależy od
segment length Tmemory length M

Paradygmat wykonania

Tryb główny
Gęsty

Attention w obrębie pojedynczego segmentu jest gęste (każdy token vs każdy z bieżącego + cache). Rekurencyjność wprowadza warunkowość na poziomie segmentu, nie na poziomie pojedynczego tokenu.

Wzorzec aktywacji
Wszystkie ścieżki aktywne
Tryby dodatkowe
Warunkowy
Mechanizm routingu

Brak routingu uczonego — segment recurrence to deterministyczna polityka FIFO bufora pamięci.

Równoległość

Poziom równoległości
Częściowo równoległy

Świadomy trade-off: rezygnujemy z perfekcyjnej równoległości w obrębie strumienia segmentów na rzecz długiego efektywnego kontekstu przy stałym budżecie pamięci attention.

Zakres
TreningInferencjaPomiędzy tokenamiPomiędzy warstwami
Ograniczenia
!Segmenty MUSZĄ być przetwarzane sekwencyjnie — segment τ+1 wymaga hidden states segmentu τ. W obrębie pojedynczego segmentu cała architektura pozostaje równoległa.
!Backprop nie propaguje się przez cache poprzedniego segmentu — co upraszcza trening, ale ogranicza zdolność modelu do uczenia się długoterminowej kompozycji w pełni end-to-end.

Wymagania sprzętowe

Dobry fit

Standardowe dense attention w obrębie segmentu mapuje się dobrze na GPU. Cache hidden states wymaga dodatkowego VRAM proporcjonalnego do M·d·layers.

Dobry fit

Oryginalny eksperyment One Billion Word trenowany na TPU — segment recurrence dobrze współgra z TPU pipelining.

Możliwe

Algorytm jest standardowym attention + buforem pamięci — działa na każdym hardware. Realna efektywność wymaga jednak GPU/TPU z odpowiednim VRAM.