W standardowym RoPE pozycja pos rotuje pary wymiarów embeddingu z częstotliwością ω_i = 1 / base^(2i/d). Position Interpolation zamiast podawać do RoPE oryginalną pozycję, podaje przeskalowaną: pos' = pos · L_pretrain / L_target = pos / s, gdzie s = L_target / L_pretrain to scale factor. Cała sekwencja docelowa o długości L_target jest „ściskana" tak, by zmieścić się w zakresie pozycji [0, L_pretrain] znanym modelowi z pretreningu. Ponieważ pos' bywa ułamkowe, a model widział tylko całkowite indeksy, jakość spada — dlatego potrzebny jest krótki fine-tuning (Chen et al. raportują ~1000 kroków dla 2k → 8k, ~5000 dla 2k → 32k), który stabilizuje attention na nowych, ułamkowych pozycjach. Operacja jest deterministyczna i nie wprowadza żadnych uczonych parametrów poza tymi, które są aktualizowane standardowym backpropem w trakcie krótkiego dofine'a.
Modele LLM oparte o RoPE drastycznie tracą jakość, gdy pozycja przekracza długość pretreningu — rotacje RoPE dla takich pozycji nie były nigdy widziane i zachowanie attention się rozpada. Pełen pretraining na długim kontekście jest niezmiernie kosztowny. PI jako pierwsza pokazała, że można rozszerzyć okno 4×–8× tanim kosztem — kilka tysięcy kroków fine-tuningu na publicznie dostępnym sprzęcie.
Jedyna realna składowa metody — dzielenie indeksu pozycji przez scale factor s przed obliczeniem rotacji RoPE. Operacja w pełni deterministyczna.
Oficjalna
PI bez douczania daje słabe wyniki — pozycje ułamkowe są dla modelu nowe i jakość wyraźnie spada. NTK-aware działa bez fine-tuningu, PI nie.
PI skaluje wszystkie wymiary RoPE jednakowo, w tym te wysokoczęstotliwościowe kodujące relacje lokalne. To psuje precyzję pozycyjną na krótkich dystansach i jest powodem, dla którego NTK-aware/YaRN dają lepsze wyniki.
Jeśli model dotreniowano z s=4, a w inferencji ustawiony jest s=1 lub s=8, attention rozjeżdża się — pozycje ułamkowe są niespójne z tym, czego model się nauczył.
Rotary Position Embeddings — kodowanie pozycji przez rotację par wymiarów. Wszystkie późniejsze metody ekstensji kontekstu modyfikują działanie RoPE.
Niezależnie i nieco wcześniej blogger kaiokendev publikuje „SuperHOT" — proste obniżanie częstotliwości RoPE, by Llama działała na 8k. Praca Chen et al. cytuje tę intuicję jako równoległą inspirację.
Chen, Wong, Chen, Tian (Meta AI) publikują PI (arXiv:2306.15595). Formalizują ideę liniowego skalowania pozycji + krótkiego fine-tuningu, pokazują dobrą jakość do 32k tokenów. To pierwsza akademicka praca o „cheap context extension" — wywołuje lawinę kolejnych metod.
Reddit user bloc97 proponuje NTK-aware: modyfikacja BAZY RoPE (a nie indeksów), działa BEZ fine-tuningu. Pierwsze ulepszenie PI — pokazuje, że PI nie wykorzystuje pełnego potencjału RoPE.
Peng et al. łączą NTK-by-parts (per-pasmo) ze skalowaniem temperatury attention. Wymaga krótkiego fine-tuningu, ale daje wyższą jakość niż PI i NTK-aware. Staje się standardem 64k–128k.
Microsoft pokazuje, że ręczne wzory (PI, NTK-aware, YaRN) można przekroczyć ewolucyjnym wyszukiwaniem niejednorodnych współczynników per wymiar i per pozycja, osiągając >2M tokenów.
Złożoność czasowa: O(1) narzut na obliczenie pos' = pos/s; O(T²·d) attention bez zmian. Złożoność przestrzenna: O(1) dodatkowych parametrów.
PI nie wprowadza realnego bottlenecka. Główne ograniczenia long-context inference (attention O(T²·d), pamięć KV cache) są identyczne jak w bazowym RoPE-Transformerze. Jedyny dodatkowy koszt to krótki fine-tune po włączeniu PI.
Stosunek docelowej długości kontekstu do długości pretreningu. Im większe s, tym mocniejsza kompresja pozycji i tym ważniejsze douczanie. Praca Chen et al. raportuje dobrą jakość do s=16, przyzwoitą do s=32.
Liczba kroków douczania na długich sekwencjach po zastosowaniu PI. Chen et al. raportują ~1000 kroków dla 2k→8k oraz ~5000 dla 2k→32k.
Zbiór długich tekstów używany do douczania. Praca używa PG-19 (książki) i mieszanki kodu/dialogu — domena wpływa na jakość transferu.
PI to czysto deterministyczna modyfikacja kodowania pozycji w gęstym RoPE-Transformerze. Brak routingu i warunkowej aktywacji.
Modyfikacja sprowadza się do podzielenia indeksu pozycji przez scale factor s przed wejściem do RoPE — operacja skalarna, bez wpływu na strukturę równoległą Transformera.
PI to dzielenie indeksu przez stałą — operacja niezależna od hardware. Działa wszędzie, gdzie działa standardowy RoPE-Transformer.
Fine-tuning po PI to standardowy trening LLM — dobrze skaluje się na klastrach GPU z FlashAttention. Inferencja long-context typowo korzysta z PagedAttention.