W standardowym Transformerze do każdego embeddingu wejściowego dodaje się kodowanie pozycji, a attention liczy się na podstawie samych iloczynów query·key. W ALiBi pozycyjne embeddingi są usunięte — zamiast nich do macierzy logitów attention dodawany jest stały bias o postaci -m·|i-j|, gdzie i,j to pozycje query i key, a m to stałe nachylenie specyficzne dla danej głowy attention. Wartości m tworzą ciąg geometryczny (np. dla 8 głów: 1/2, 1/4, 1/8, …, 1/256), co sprawia, że różne głowy „patrzą" w różnych zakresach kontekstu — bliskie głowy widzą lokalnie, dalekie obejmują cały kontekst. Bias jest stały, nie ma uczonych parametrów dla pozycji. Dzięki temu model trenowany na sekwencjach o długości L poprawnie ekstrapoluje na 2L, 4L i dalej, bo bias jest dobrze zdefiniowany dla dowolnej odległości |i-j|.
Klasyczne kodowania pozycyjne — sinusoidalne, learned, a w mniejszym stopniu także RoPE — słabo ekstrapolują na długości większe niż widziane w treningu. Pozycje spoza zakresu pretreningu są dla modelu „nowe" i jakość gwałtownie spada. Wcześniejsze podejścia wymagały albo dłuższego treningu, albo fine-tuningu (Position Interpolation, YaRN). ALiBi rozwiązuje problem strukturalnie: bias jest funkcją odległości, nie pozycji absolutnej, więc działa dla dowolnie długich sekwencji bez modyfikacji modelu.
ALiBi z założenia zastępuje pozycyjne embeddingi. Pozostawienie sinusoidal/learned/RoPE razem z ALiBi prowadzi do podwójnego sygnału pozycji i pogarsza wyniki.
Geometryczny wzór 2^(-8/n) zakłada n = potęga dwójki. Dla niestandardowych n autorzy podają specjalne rozszerzenia wzoru — pominięcie ich obniża jakość.
ALiBi daje silną ekstrapolację „za darmo", ale w benchmarkach long-context (NIAH, RULER, LongBench) modele oparte o RoPE + YaRN/LongRoPE zwykle osiągają wyższe wyniki przy porównywalnej skali.
Pierwotny Transformer wprowadza sinusoidalne kodowanie pozycji jako addytywny embedding. Słabo ekstrapoluje na długości większe niż w treningu — punkt wyjścia dla wszystkich późniejszych alternatyw.
Rotary Position Embeddings — alternatywna metoda kodowania pozycji przez rotację par wymiarów. Lepsza niż sinusoidal, ale również ograniczona ekstrapolacja bez modyfikacji typu PI/YaRN.
Press, Smith, Lewis publikują ALiBi (arXiv:2108.12409). Pokazują, że stały liniowy bias w attention zastępuje pozycyjne embeddingi i daje silną ekstrapolację długości („train short, test long").
ALiBi zostaje przyjęte na ICLR 2022. Pomysł zaczyna być adoptowany w nowych otwartych LLM.
BLOOM-176B — pierwszy wielki, otwarty, wielojęzyczny LLM — wybiera ALiBi jako kodowanie pozycji, co popularyzuje metodę w społeczności open-source.
MosaicML wypuszcza rodzinę MPT (7B/30B) z ALiBi, marketing-owo eksponując zdolność „context length flexibility". BloombergGPT-50B również opiera się na ALiBi. ALiBi staje się ugruntowaną alternatywą dla RoPE.
Większość nowych dużych LLM (Llama 2/3, Qwen, DeepSeek, Mistral) wybiera RoPE + YaRN/LongRoPE jako standardową ścieżkę long-context. ALiBi pozostaje wybierane głównie tam, gdzie liczy się prostota wdrożenia i ekstrapolacja „za darmo", a nie absolutna jakość benchmarków.
Wektor nachyleń biasu, po jednym na głowę attention. W oryginalnej pracy tworzy ciąg geometryczny z bazą 2^(-8/n), gdzie n to liczba głów.
Długość sekwencji używana w pretreningu. Dzięki właściwości ekstrapolacji ALiBi model dobrze działa na sekwencjach 2L–4L bez fine-tuningu.
ALiBi z założenia REPLACES klasyczne kodowanie pozycji (sinusoidalne/learned/RoPE) — model trenuje się BEZ pozycyjnych embeddingów. Mieszanie ALiBi z RoPE nie jest standardową konfiguracją.
ALiBi modyfikuje wyłącznie wagę attention — pozostaje w pełni gęstym, deterministycznym mechanizmem bez routingu i bez warunkowej aktywacji.
Dodanie biasu jest tanią, wektorową operacją na macierzy logitów attention. Brak dodatkowych zależności sekwencyjnych — równoległość pozostaje identyczna jak w standardowym Transformerze.
ALiBi to czysto algorytmiczna modyfikacja attention — dodanie statycznego biasu do macierzy logitów. Nie wymaga żadnych specjalnych kerneli ani instrukcji sprzętowych.
Dobrze współpracuje z FlashAttention (kernel ALiBi jest standardowo wspierany). Bias można precompute'ować raz i reużywać przez wszystkie warstwy.