Robocikowo>ROBOCIKOWO
Architektura

NTK-aware

2023AktywnyOpublikowano: 9 czerwca 2026Aktualizacja: 9 czerwca 2026Opublikowany
NTK-aware Interpolation to społecznościowa propozycja rozszerzania okna kontekstu RoPE-LLM bez fine-tuningu. Zamiast jednolicie skalować indeksy pozycji (jak Position Interpolation), modyfikuje bazę RoPE (10000 → 10000·α), motywowana teorią Neural Tangent Kernel: sieci neuronowe gorzej uczą się wysokich częstotliwości, więc nie należy ich kompresować. Punkt wyjścia dla YaRN i LongRoPE.
Kluczowa innowacja
Rozszerza okno kontekstu LLM opartych o RoPE przez zmianę bazy częstotliwości (10000 → większa) zamiast jednolitego skalowania indeksów — wymiary wysokiej częstotliwości ekstrapolują (zachowując lokalną precyzję pozycyjną), niskiej interpolują (umożliwiając długi kontekst). Działa BEZ fine-tuningu.
Kategoria
Architektura
Poziom abstrakcji
Building block
Poziom operacji
ModelInferencjaPo-trening
Zastosowania
Rozszerzanie okna kontekstu RoPE-LLM (Llama, Mistral, Qwen) BEZ fine-tuningu — szybkie eksperymenty społeczności open-sourceDrop-in upgrade w llama.cpp / Hugging Face Transformers dla użytkowników końcowychPunkt wyjścia dla YaRN (NTK-by-parts + temperature scaling) i kolejnych metodLong-context inference jako bezpłatny boost dla istniejących checkpointów

Jak działa

W standardowym RoPE pozycja pos rotuje pary wymiarów embeddingu z częstotliwością ω_i = 1 / base^(2i/d), gdzie base = 10000. Position Interpolation skaluje samą pozycję: pos → pos/s, co odpowiada przemnożeniu wszystkich częstotliwości przez 1/s — uniformnie. NTK-aware działa inaczej: zachowuje wyrażenie ω_i = 1 / base'^(2i/d), ale przyjmuje base' = base · s^(d/(d-2)). Skutek: dla najwyższych częstotliwości (małe i) ω_i pozostaje bardzo bliskie oryginalnej wartości (ekstrapolacja — model widzi „znane" rotacje), dla najniższych częstotliwości (duże i) ω_i jest mocno redukowane (interpolacja — pozycje 10× dalej mieszczą się w tej samej rotacji). Empiryczny efekt: bez fine-tuningu można rozszerzyć kontekst Llamy z 2k do 4k–8k tokenów przy znacząco mniejszym wzroście perpleksji niż w PI. Wariant „NTK-by-parts" (już z YaRN) dzieli wymiary RoPE na trzy reżimy (ekstrapolacja / przejście / interpolacja) zamiast płynnej zmiany przez modyfikację base.

Rozwiązany problem

Position Interpolation (PI) jednolicie skaluje wszystkie wymiary RoPE — co kompresuje także wysokie częstotliwości kodujące lokalne, krótkozasięgowe relacje. To pogarsza jakość modelu szczególnie BEZ fine-tuningu i jest sprzeczne z teorią NTK, według której sieci neuronowe mają „spectral bias" i gorzej uczą się wysokich częstotliwości. Bez NTK-aware, jedynym sposobem na rozszerzenie kontekstu RoPE-LLM było PI + długie douczanie, co zamykało drogę do szybkich eksperymentów społeczności open-source.

Komponenty

Modified RoPE base (base')Stała sterująca obliczeniem rotacji RoPE dla każdego wymiaru

Jedyny realny komponent metody — przeliczenie nowej bazy częstotliwości na podstawie scale factor i wymiaru głowy. W wariancie static obliczane raz, w Dynamic NTK per sekwencja.

INScale factor s, wymiar głowy d, opcjonalnie aktualna długość sekwencji (dla wariantu dynamicznego).
OUTNowa baza częstotliwości RoPE, używana w ω_i = 1 / base'^(2i/d).
Static NTK-awareJedna stała base' wyliczona z s przy starcie modelu.
Dynamic NTKbase' adaptacyjnie przeliczane per sekwencja w zależności od aktualnej długości.
NTK-by-parts (YaRN)Następca: nie globalna zmiana base, tylko podział wymiarów na trzy reżimy interpolacji.

Oficjalna

Implementacja

Pułapki implementacyjne
Stałe (static) base' i regresja na krótkich promptachŚrednia

Włączenie NTK-aware z jedną, stałą wartością base' lekko obniża jakość modelu dla sekwencji krótszych niż pretreningowa. Dla zastosowań mieszanych (chat + long-doc) jest to widoczne.

Rozwiązanie:Użyć wariantu Dynamic NTK, który przelicza base' per sekwencja.
Próba ekstremalnej ekstensji (>8×) bez fine-tuninguWysoka

NTK-aware bez fine-tuningu dobrze działa do ok. 4× długości pretreningu. Próby skoku do 16×–32× bez douczania powodują widoczną degradację — wtedy lepiej sięgnąć po YaRN/LongRoPE z fine-tuningiem.

Rozwiązanie:Dla ekstensji >8× użyć YaRN (z krótkim fine-tuningiem) lub LongRoPE (z ewolucyjnym searchem).
Mylenie NTK-aware z Position InterpolationŚrednia

Część konfiguracji w bibliotekach pozwala wybrać „linear" (PI) lub „dynamic"/"ntk" — to dwie różne metody, a dla danego modelu trzeba używać tej, na którą został dotreniowany (jeśli w ogóle).

Rozwiązanie:Sprawdzić config oryginalnego checkpointu (rope_scaling.type) przed włączeniem rozszerzenia kontekstu.

Ewolucja

Oryginalny paper · 2023 · Reddit /r/LocalLLaMA (community proposal, no formal paper) · bloc97 (Reddit user)
NTK-Aware Scaled RoPE allows LLaMA models to have extended (8k+) context size without any fine-tuning (Reddit post / community proposal)
bloc97 (Reddit user)
2018
Neural Tangent Kernel — teoretyczna inspiracja

Jacot, Gabriel, Hongler publikują pracę o NTK i „spectral bias" sieci neuronowych — sieci preferują uczenie się niskich częstotliwości, a wysokie są dla nich trudne. Ta intuicja stoi za nazwą metody NTK-aware.

2021
RoPE — fundament

Su et al. publikują Rotary Position Embeddings — kodowanie pozycji przez rotację par wymiarów embeddingów. NTK-aware będzie modyfikacją bazy częstotliwości RoPE.

2023
Position Interpolation (Chen et al., Meta)

Meta publikuje PI — pierwszą metodę „cheap context extension". Skaluje pozycje uniformnie. Wymaga fine-tuningu dla pełnej jakości. Stanowi bezpośredni punkt odniesienia dla NTK-aware.

2023
NTK-aware — propozycja społecznościowa (bloc97)
Punkt przełomowy

Użytkownik Reddita „bloc97" w /r/LocalLLaMA proponuje NTK-aware Scaled RoPE: zamiast skalować indeksy, zmienić bazę. Działa BEZ fine-tuningu. Społeczność błyskawicznie adoptuje — wpada do llama.cpp, exllama i Hugging Face Transformers w ciągu kilku tygodni.

2023
Dynamic NTK — adaptacyjny wariant

Społeczność szybko proponuje „Dynamic NTK": base' przeliczane per sekwencja na podstawie aktualnej długości. Likwiduje regresję na krótkich promptach. Staje się domyślnym wariantem w produkcyjnych implementacjach.

2023
YaRN — uogólnienie NTK-aware (NTK-by-parts + temperature)

Peng, Quesnelle, Fan, Shippole publikują YaRN, który formalizuje i ulepsza NTK-aware: dzieli wymiary na trzy reżimy (ekstrapolacja / przejście / interpolacja) zamiast jednej globalnej bazy, dodaje skalowanie temperatury attention. Bije NTK-aware przy fine-tuningu.

2024
LongRoPE — niejednorodne współczynniki przez search ewolucyjny

Microsoft pokazuje, że ręczne wzory typu NTK-aware można zastąpić ewolucyjnym wyszukiwaniem niejednorodnych współczynników per wymiar i per pozycja, osiągając kontekst >2M tokenów.

Hiperparametry (konfigurowalne osie)

Scale factor (s)Krytyczna

Współczynnik rozszerzenia kontekstu: docelowa długość / długość pretreningu. Wchodzi do wzoru base' = base · s^(d/(d-2)).

22k → 4k (typowy boost Llama-1)
42k → 8k (popularna konfiguracja społecznościowa)
84k → 32k (granica dobrej jakości bez fine-tuningu)
Modified RoPE base (base')Wysoka

Nowa baza RoPE wyliczana ze scale factora. Dla Llama 1 (d=128, base=10000) i s=4: base' ≈ 39370. Ta jedna liczba steruje całą metodą.

Dynamic NTK-awareWysoka

Wariant „Dynamic NTK", w którym base' jest przeliczana per sekwencja na podstawie aktualnej długości — zamiast jednej stałej wartości. Likwiduje regresję na krótkich promptach.

staticJedna stała base' — prostsze, lekka regresja na krótkich
dynamicAdaptacyjne base' per request — wariant produkcyjny

Złożoność obliczeniowa

Złożoność czasowa: O(1) narzut (przeliczenie stałej base'). Złożoność przestrzenna: O(1) dodatkowych parametrów.

Wąskie gardło obliczeniowe

Brak — koszt dominują attention i KV cache

NTK-aware nie wprowadza realnego bottlenecka. Wszystkie ograniczenia long-context inference (attention O(T²·d), pamięć KV cache O(T·d_kv·layers)) są identyczne jak w bazowym RoPE-Transformerze.

Zależy od
sequence length T

Paradygmat wykonania

Tryb główny
Gęsty

NTK-aware to czysto matematyczna modyfikacja kodowania pozycji w gęstym RoPE-Transformerze. Brak routingu, brak warunkowej aktywacji.

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

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

Modyfikacja sprowadza się do zmiany jednej stałej (base) przy obliczaniu rotacji RoPE. Brak narzutu obliczeniowego, brak dodatkowych zależności sekwencyjnych.

Zakres
TreningInferencjaPomiędzy tokenami

Wymagania sprzętowe

Podstawowe

Metoda sprowadza się do zmiany jednej stałej w obliczeniu rotacji RoPE — działa identycznie na każdym hardware obsługującym RoPE-Transformer.

Dobry fit

Dobrze współpracuje z FlashAttention i PagedAttention. Dynamic NTK wymaga tylko przeliczenia stałej raz per request — narzut pomijalny.