Robocikowo>ROBOCIKOWO
Architektura

YaRN

2023AktywnyOpublikowano: 9 czerwca 2026Aktualizacja: 9 czerwca 2026Opublikowany
YaRN (Yet another RoPE extensioN) to metoda rozszerzania okna kontekstu modeli językowych korzystających z Rotary Position Embeddings. Łączy częstotliwościowo-zależną interpolację RoPE z dodatkowym współczynnikiem skalującym attention i osiąga długie konteksty (np. 64k–128k tokenów) przy ułamku kosztu pełnego pretreningu.
Kluczowa innowacja
Pozwala rozszerzyć okno kontekstu modeli LLM opartych o RoPE znacznie poza długość pretreningu, używając „NTK-by-parts" interpolacji RoPE wraz ze skalowaniem temperatury attention, przy minimalnym douczaniu.
Kategoria
Architektura
Poziom abstrakcji
Building block
Poziom operacji
ModelPo-treningInferencja
Zastosowania
Rozszerzanie okna kontekstu open-source LLM (np. Llama 2 do 64k/128k)Długodokumentowe RAG i analiza pełnych książek/raportówModele kodowe pracujące na całych repozytoriachLong-context fine-tuning bez pełnego pretreningu

Jak działa

YaRN modyfikuje rotacje RoPE w sposób zależny od częstotliwości („NTK-by-parts"): wymiary o wysokiej częstotliwości (kodujące lokalne, krótkozasięgowe relacje) są ekstrapolowane bez interpolacji, wymiary o niskiej częstotliwości (kodujące zależności długozasięgowe) są interpolowane jak w Position Interpolation, a pośrednie wymiary płynnie przechodzą między tymi reżimami. Dodatkowo do logitów attention dodawany jest stały współczynnik temperatury (skalowanie 1/sqrt(t) ~ log(s)) korygujący entropię uwagi przy dłuższych sekwencjach. Tak zmodyfikowany model dotreniowuje się na małej porcji długich sekwencji (rząd ~0.1% tokenów pretreningu), aby ustabilizować jakość. Wariant „Dynamic-YaRN" pozwala stosować skalowanie tylko wtedy, gdy długość sekwencji rzeczywiście przekracza długość pretreningu, co minimalizuje regresję na krótkich promptach.

Rozwiązany problem

Modele LLM oparte o RoPE drastycznie tracą jakość, gdy długość kontekstu przekracza długość użytą w pretreningu — pozycje spoza zakresu treningu nie były nigdy widziane, a naiwne ekstrapolowanie RoPE prowadzi do rozpadu uwagi. Wcześniejsze metody (Position Interpolation, NTK-aware interpolation) wymagały dłuższego fine-tuningu lub gorzej radziły sobie z perpleksją na bardzo długich kontekstach.

Implementacja

Pułapki implementacyjne
Brak fine-tuningu po włączeniu YaRNWysoka

YaRN bez chociaż krótkiego dotrenowania na długich sekwencjach daje znacząco gorszą jakość niż wariant z fine-tuningiem — szczególnie na zadaniach „needle in a haystack".

Rozwiązanie:Dotrenować model na małym budżecie długich sekwencji (rząd ~0.1% tokenów pretreningu) zgodnie z przepisem z oryginalnej pracy.
Regresja jakości na krótkich promptach po statycznym YaRNŚrednia

Stałe włączenie YaRN dla wszystkich długości wejścia może lekko obniżyć jakość modelu na krótkich promptach (poniżej długości pretreningu).

Rozwiązanie:Użyć wariantu Dynamic-YaRN, który aktywuje skalowanie tylko gdy aktualna długość sekwencji przekracza długość pretreningu.
Pominięcie skalowania temperatury attentionŚrednia

Część implementacji ogranicza się do samej interpolacji RoPE (NTK-by-parts) i pomija skalowanie temperatury — wówczas wyniki są bliższe NTK-aware niż pełnemu YaRN.

Rozwiązanie:Zapewnić, że logity attention są mnożone przez stały współczynnik temperatury zgodnie ze wzorem z pracy.

Ewolucja

Oryginalny paper · 2023 · arXiv:2309.00071 (later ICLR 2024) · Bowen Peng
YaRN: Efficient Context Window Extension of Large Language Models
Bowen Peng, Jeffrey Quesnelle, Honglu Fan, Enrico Shippole
2021
RoPE (Rotary Position Embeddings)

Su i in. wprowadzają RoPE — kodowanie pozycji przez rotację par wymiarów embeddingów, fundament dla całej linii prac nad ekstensjami kontekstu.

2023
Position Interpolation (PI)

Chen i in. (Meta) pokazują, że liniowe skalowanie indeksów pozycji RoPE pozwala rozszerzyć kontekst Llamy po krótkim fine-tuningu. Pierwszy przełom w „cheap context extension".

2023
NTK-aware interpolation

Społeczność (Reddit user „bloc97") proponuje NTK-aware interpolację: zamiast jednolicie skalować indeksy, modyfikuje się bazę RoPE, zachowując ostrość lokalnych wymiarów. Bez fine-tuningu działa lepiej niż PI.

2023
YaRN — paper on arXiv
Punkt przełomowy

Peng, Quesnelle, Fan, Shippole publikują YaRN (arXiv:2309.00071). Łączą NTK-by-parts (różne reżimy interpolacji per pasmo częstotliwości) ze skalowaniem temperatury attention, dotreniowują na ~0.1% tokenów pretreningu i biją Position Interpolation oraz wcześniejsze NTK-aware metody na długich kontekstach.

2023
Llama 2 64k/128k YaRN checkpoints

Autorzy publikują otwarte modele Llama 2 7B/13B dotreniowane YaRN do okien 64k i 128k, które stają się popularnymi referencjami dla long-context open-source LLM.

2024
YaRN przyjęte przez ICLR 2024

Praca zostaje opublikowana na ICLR 2024, a YaRN staje się de facto standardem ekstensji kontekstu w open-source LLM (Qwen, Mistral-derived models, DeepSeek-V2/V3, Yi-200k, wiele dotreningów Llamy).

Hiperparametry (konfigurowalne osie)

Scale factor (s)Krytyczna

Współczynnik rozszerzenia kontekstu: docelowa długość kontekstu / długość pretreningu. Np. dla Llama 2 (4k) → 32k mamy s=8.

24k → 8k
84k → 32k (najczęściej w pracy YaRN)
164k → 64k
324k → 128k
Attention temperature scaling (t)Wysoka

Stały współczynnik mnożący logity attention (1/sqrt(t) z zalecaną zależnością log-typu od scale factor). Koryguje entropię uwagi przy dłuższych sekwencjach.

NTK-by-parts boundaries (α, β)Średnia

Progi rozdzielające wymiary RoPE na trzy reżimy: czysta ekstrapolacja (wysokie częstotliwości), strefa przejściowa i czysta interpolacja (niskie częstotliwości).

α=1, β=32Domyślne wartości zalecane przez autorów
Fine-tuning token budgetWysoka

Liczba tokenów długiej sekwencji potrzebnych do dotrenowania modelu z YaRN. W oryginalnej pracy wystarczy rząd ~0.1% tokenów pretreningu.

Paradygmat wykonania

Tryb główny
Gęsty

YaRN to modyfikacja kodowania pozycyjnego w gęstym Transformerze. Sam mechanizm jest deterministyczny, nie wprowadza routingu ani warunkowej aktywacji.

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

Poziom równoległości
W pełni równoległy

YaRN nie zmienia kosztu obliczeniowego pojedynczego attention — modyfikuje wyłącznie sposób wyliczenia rotacji RoPE oraz skalowanie temperatury. Równoległość jest dokładnie taka jak w standardowym Transformerze z RoPE.

Zakres
TreningInferencjaPomiędzy tokenami

Wymagania sprzętowe

Podstawowe

YaRN to czysto algorytmiczna modyfikacja kodowania pozycyjnego i skalowania attention — nie wymaga żadnych specjalnych instrukcji sprzętowych ani zmian kerneli.

Dobry fit

Modele YaRN dotreniowuje się na standardowych klastrach GPU; długi kontekst zwykle korzysta z FlashAttention/PagedAttention, które dobrze wykorzystują tensor cores.