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:
- Odpowiadanie na pytania na podstawie wielu dokumentów. Model otrzymuje pytanie oraz stos dokumentów — 10, 20 lub 30 z nich — w którym dokładnie jeden zawiera odpowiedź. Ten kluczowy dokument jest przesuwany na każdą pozycję w stosie, a dokładność mierzona jest w każdym z tych miejsc.
- Wyszukiwanie klucz–wartość. Syntetyczny test pozbawiony językowego szumu: długi obiekt JSON zawierający setki losowych par klucz–wartość, w którym model musi zwrócić wartość dla jednego wskazanego klucza — co oddziela czyste wyszukiwanie oparte na pozycji od rozumienia treści.
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.
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:
- Wydobywaj, nie zakopuj. Istotny materiał powinien docierać do modelu jako krótki, dobrze umiejscowiony fragment — a nie być ukryty w środku ściany tekstu.
- Struktura bije objętość. Porządkowanie i wyszukiwanie właściwych fragmentów konsekwentnie przewyższa liczenie na to, że większe okno przeczyta je wszystkie.
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ł.