FocusLM
Wszystkie artykuły

Zagubione w środku: dlaczego długie okna kontekstu po cichu zawodzą

22 lipca 20266 min czytania

Daj modelowi stustronicowy dokument i zapytaj o coś ze strony pięćdziesiątej, a może przeoczyć odpowiedź — nie dlatego, że danego faktu nie ma w kontekście, lecz ze względu na to, gdzie się on znajduje.

TL;DR

  • Modele LLM znacznie lepiej wykorzystują początek i koniec długiego kontekstu niż jego środek.
  • Efekt ma kształt litery U i pojawia się nawet w modelach zaprojektowanych specjalnie z myślą o długim kontekście.
  • Zmieszczenie informacji w oknie to nie to samo, co jej wykorzystanie przez model.

Obietnica i haczyk

Większe okna kontekstu sprzedają kuszącą obietnicę: wystarczy wkleić wszystko i pozwolić modelowi się w tym połapać. Żadnego wyszukiwania, żadnej struktury — jeden gigantyczny prompt. Istnieje jednak przepaść między posiadaniem informacji w oknie a jej faktycznym wykorzystaniem przez model, a przepaść ta rośnie wraz z długością.

Co pokazują badania

W pracy Lost in the Middle: How Language Models Use Long Contexts Liu i współpracownicy zmierzyli, jak dobrze modele odnajdują i wykorzystują informacje w zależności od tego, gdzie znajdują się one w danych wejściowych. Zbudowali dwa celowo kontrolowane testy:

W obu zadaniach i w modelach zarówno otwartych, jak i zamkniętych (GPT-3.5-Turbo, Claude, MPT-30B-Instruct, LongChat-13B) pojawił się ten sam kształt: dokładność jest najwyższa, gdy istotny element znajduje się blisko początku lub końca kontekstu, a spada, gdy model musi sięgnąć do środka — krzywa w kształcie litery U.

początekśrodekkoniecdokładność
Dokładność jest najwyższa na krańcach długiego kontekstu i spada w środku (Liu i in., 2023).
Wydajność jest często najwyższa, gdy istotne informacje występują na początku lub końcu kontekstu wejściowego, i znacząco spada, gdy modele muszą sięgnąć po nie w środku.

Trzy szczegóły sprawiają, że jest to gorsze, niż brzmi na początku. Zjawisko utrzymuje się nawet w modelach zbudowanych z myślą o długim kontekście — większe okno nie oznacza, że model czyta je równomiernie. W najgorszym przypadku (środkowym) dokładność przy wielu dokumentach może spaść poniżej poziomu odniesienia bez dokumentów — tego samego modelu odpowiadającego bez żadnych dokumentów, wyłącznie na podstawie swoich parametrów. A przekazanie modelowi jego własnej wersji o rozszerzonym kontekście nie dawało żadnej przewagi, gdy dane wejściowe i tak mieściły się w mniejszym oknie: dodatkowa pojemność nic nie dawała.

Jedno rozwiązanie łagodzące zrobiło różnicę: kontekstualizacja uwzględniająca zapytanie — powtórzenie pytania zarówno przed dokumentami, jak i po nich. Niemal całkowicie naprawiło to syntetyczny test klucz–wartość, ale ledwie pomogło w rzeczywistym odpowiadaniu na podstawie wielu dokumentów, nie jest więc uniwersalnym lekarstwem. Model jest wrażliwy na pozycję, a nie tylko na samą obecność informacji.

Co to oznacza dla Ciebie

Jeśli polegasz na wklejaniu długiej historii, obszernego dokumentu lub całego projektu do czatu, jakość odpowiedzi modelu zależy po części od szczęścia — od tego, gdzie akurat trafił istotny fragment. W miarę jak kontekst rośnie, rośnie wraz z nim „środek”, który jest niedoczytywany. Dwa praktyczne wnioski:

Gdzie w to wpisuje się FocusLM

Właśnie dlatego FocusLM przechowuje Twój materiał jako pamięć strukturalną, a nie rozrastający się zapis czatu. Zamiast upychać wszystko w jednym kontekście i liczyć na to, że środek zostanie przeczytany, porządkuje to, co mu przekazujesz, i wydobywa istotne fragmenty wraz z cytatami, gdy o coś pytasz — dzięki czemu odpowiedź jest oparta na właściwym materiale, niezależnie od tego, skąd pierwotnie pochodził.

Powiązane artykuły