Strona główna / Artykuły / Wyjaśnienie efektu rotacji kontekstu: dlaczego długie dane wejściowe obniżają dokładność modeli LLM

Wyjaśnienie efektu rotacji kontekstu: dlaczego długie dane wejściowe obniżają dokładność modeli LLM

Dowiedz się, jak embeddingi pozycji obrotowych i funkcja softmax powodują spadek dokładności w środku długich zapytań, oraz jakie nawyki zapewniają skuteczność kontekstu.

1055 słów

Jeśli podasz długi opis zadania dowolnemu z modeli na najnowszej fazie badań przetestowanych w 2025 roku, jakość odpowiedzi się pogarsza, nawet jeśli informacja, o którą pytasz, znajduje się bezpośrednio w tekście. Badanie Chromy z 2025 roku przeprowadzone na 18 takich modelach wykazało, że dokładność przy faktach ukrytych w środku tekstu wprowadzanego do modelu spada o ponad 30%. Przyczyna ma niewiele wspólnego z jakimś niejasnym „okresem uwagi”. Wynika ona z sposobu, w jaki modele typu transformer kodują pozycję poszczególnych tokenów w tekście.

Ludzie nazywają to zepsuciem kontekstu, a jest to coś zupełnie innego niż osiągnięcie limitu kontekstu. Eksperyment przeprowadzony w 2023 roku na Uniwersytecie Stanforda wyjaśnia dlaczego. Daj modelowi 20 odzyskanych dokumentów, czyli około 4 000 tokenów, co jest znikomą ilością w porównaniu z dzisiejszymi limitami. Jeśli istotny fakt znajduje się na pierwszym miejscu, model trafia w odpowiedzi 70–75% czasów. Gdy ten sam fakt przeniesie się na środek, dokładność spada do 55–60%. Informacja nadal tam jest i nadal jest prawidłowa – model po prostu przyznaje jej mniejszą wagę.

Pochodzenie degradacji

Większość transformatorów prądowych wykorzystuje Rotary Position Embeddings (RoPE) do oznaczania kolejności tokenów. RoPE charakteryzuje się znany długoterminowy spadek efektywności: im większa jest odległość między dwoma tokenami, tym niższy staje się teoretyczny limit uwagi poświęcanej jednemu z nich, niezależnie od ich rzeczywistego znaczenia. Funkcja Softmax pogarsza tę sytuację – skłania ona model do skupiania uwagi na tokenach, które już uzyskały wysokie wyniki, co faworyzuje początek i koniec kontekstu, powodując krzywą w kształcie litery U, którą badacze nazywają „utratą informacji w środku”.

Kształt tego spadku można zobaczyć w prostym skrypcie. Skrypt ten jest zbudowany wyłącznie na podstawie struktury częstotliwości RoPE, a nie na wagach rzeczywistego modelu, więc należy go traktować jako ilustrację. Jedyne, czego potrzebuje, to biblioteka numpy:

import numpy as np

A oto funkcja, która mierzy, jak zmniejsza się granica podobieństwa wraz ze wzrostem odległości:

def rope_similarity_decay(distances, dim=64, base=10000):
    freqs = 1.0 / (base ** (np.arange(0, dim, 2) / dim))
    decays = []
    for d in distances:
        bound = np.mean(np.cos(freqs * d))
        decays.append(bound)
    return np.array(decays)

Gdy zwiększasz odległości między tokenami, otrzymujesz coś takiego:

Token distance | Relative similarity bound
             1 |  0.9662
            10 |  0.6579
            50 |  0.4898
           100 |  0.5586
           500 |  0.2006
          1000 |  0.2789
          5000 | -0.1309
         10000 |  0.0494
         50000 | -0.0898

Tokeny oddalone od siebie o 1 do 10 pozycji zachowują wartość graniczną bliską 1,0. Po kilku tysiącach tokenów odległości ta spada w kierunku zera, a w niektórych punktach nawet spada poniżej niego, więc geometria między daleko od siebie położonymi tokenami przestaje wiarygodnie wskazywać, że „te dwa są powiązane”. Zauważ, że nie jest to również płynny spadek – występuje opadająca krzywa z rzeczywistymi oscylacjami w jej obrębie. Nic z tego nie służy jako test konkretnego modelu, ale wyjaśnia, dlaczego problem ma charakter strukturalny i nie znika po prostu po trenowaniu większego modelu.

Większe okno nie rozwiązuje problemu

Naukowcy dzielą obecnie ogłaszany okno kontekstowe od maksymalnego efektywnego okna kontekstowego (MECW), czyli długości, przy której wydajność modelu faktycznie pozostaje na wysokim poziomie. Zgodnie z badaniami z 2025 roku na temat tej różnicy, przy złożonych zadaniach efektywny limit może być o aż 99% niższy od wartości podanej w specyfikacji. Okno o pojemności miliona tokenów oznacza, że model nie będzie popełniać błędów przed osiągnięciem tej liczby tokenów. Nie mówi to jednak nic o tym, czy potrafi je wszystkie efektywnie wykorzystać.

Dlaczego agenci programistyczne są najbardziej dotknięte

Dla agentów kodujących problem zepsucia kontekstu został wyróżniony jako główny sposób awarii i jest to raczej problem zanieczyszczenia danymi niż brak możliwości. Podczas długiego zadania agent wyszukuje, eksploruje i cofa się, a każda ślepa uliczka pozostawia „szum” w historii. Ten szum obniża efektywność każdego kolejnego kroku, mimo że ten sam model rozwiązałby zadanie sprawnie przy czystym kontekście. Dlatego długa sesja może się nie powieść, mimo że nie zabraknie tokenów: instrukcje z pierwszego kroku wciąż istnieją w rozmowie w pięćdziesiątym kroku, ale uwaga modelu może już do nich nie dotrzeć.

Co pomaga

RAG i długie okna nie są ze sobą wymienne. Mechanizm wydobywania informacji jest skuteczny, ponieważ redukuje dużą ilość danych do istotnych fragmentów – próba umieszczenia wszystkiego naraz prowadzi bezpośrednio do opisanego wyżej spadku jakości wyników. Po procesie wydobywania informacji wszystkie rozwiązania wskazują na to samo: należy utrzymywać kontekst roboczy mały i uporządkowany, a nie duży i kompletny.

  • Streszczaj lub usuwaj przestarzałą historię rozmów.
  • Umieść to, od czego zależy decyzja, blisko początku lub końca zapytania, nigdy pośrodku.
  • Pamiętaj, że „pasuje” i „model to wykorzysta” to dwa odrębne twierdzenia.

Szybkie odpowiedzi

Czym jest degradacja kontekstu? Spadek jakości wyników wraz ze wzrostem długości danych wejściowych, nawet gdy okno nie jest wypełnione i potrzebne informacje są obecne.

Dlaczego środkowa część jest najgorsza? RoPE celowo osłabia związek pomiędzy odległymi tokenami, a funkcja softmax koncentruje uwagę na pozycjach, które już uzyskują wysokie wyniki, czyli zazwyczaj na pierwszych i ostatnich.

Czy większy limit rozwiązuje ten problem? Nie. Dostępny kontekst jest często znacznie mniejszy niż deklarowany, szczególnie przy złożonych zadaniach wieloetapowych.

Czy chodzi po prostu o brak miejsca? Nie. Dokładność spada w sposób zauważalny już przy kilku tysiącach tokenów, co jest daleko poniżej setek tysięcy tokenów, które mogą obsłużyć nowoczesne modele.

Jedna uwaga dotycząca powyższego kodu: jest to uproszczony model częstotliwości. Rzeczywiste zachowanie zależy od wytrenowanych wag uwagi, które dodatkowo wpływają na ten geometryczny bazowy model, więc baza ta wyjaśnia tylko część efektu, a nie cały.

Literatura pokrewna

  • Caching wypowiedzi ujemnia koszty spójności dla weryfikacji LLM o długim contextu — Pomiar przeprowadzony na sześciu modelach: próbkowanie tej samej długiej wypowiedzi kilka razy kosztuje tylko 1,55–2,5 raza tyle co jedna wywołanie z użyciem cachingu, plus wzór, zastrzeżenia i instrukcje oceny.
  • Wyjaśnienie cache-KV: dlaczego długi context to rachunek pamięci, a nie inteligencja — Przewodnik w prostym języku po cache-KV: co on przechowuje, jak obliczyć jego rozmiar, dlaczego długi context zużywa pamięć oraz cztery sposoby na obniżenie kosztów w modelach lokalnych.