Standardowy argument za wrzucaniem całej bazy dokumentów do okna kontekstowego brzmi: wyszukiwanie fragmentów podaje pewne siebie, nieaktualne odpowiedzi, a pełny kontekst nie. Na korpusie zbudowanym specjalnie po to, by ten błąd wywołać — dwanaście dokumentów wymagań zmienianych, odwracanych i odrzucanych przez pięć miesięcy, 1527 zarejestrowanych wywołań modelu — nie wystąpił on ani razu. Tam, gdzie w końcu wystąpił, zawiódł pełny kontekst, a wyszukiwanie się obroniło.
Streszczenie
Trzy sposoby udostępnienia bazy dokumentów modelowi językowemu — pobranie k najbardziej podobnych fragmentów (RAG), kontekst całego korpusu (CAG) oraz sterowane przez model przeszukiwanie przez interfejs narzędzi (tryb agentowy) — porównano na zbudowanym w tym celu korpusie dwunastu dokumentów (~11,5 tys. tokenów), opisującym projekt informatyczny, którego wymagania są wielokrotnie zmieniane, odwracane i odrzucane w chronologicznej serii protokołów. Dwadzieścia pytań z pięciu kategorii — prosty fakt, parafraza, agregacja, zastąpienie i pułapka negatywna — uruchomiono w trzech powtórzeniach na każdym ramieniu, na dwóch modelach o różnej sile, wraz z ramieniem kontrolnym bez kontekstu, przeglądem wartości k, jednozmiennową ablacją promptu i adwersaryjnie utwardzonym wariantem korpusu. Zarejestrowano 1527 wywołań modelu wraz z pełnymi promptami i śladami narzędzi.
Główna hipoteza — że wyszukiwanie po pofragmentowanym korpusie produkuje pewne siebie, nieaktualne odpowiedzi tam, gdzie czytanie pełnego kontekstu ich nie produkuje — nie potwierdziła się, a jedyne miejsce, w którym pękła, wskazuje w przeciwną stronę. Na korpusie pierwotnym każde ramię z kontekstem, w obu modelach, odpowiedziało poprawnie na wszystkie siedem pytań o zastąpienie, przy zerze odpowiedzi nieaktualnych i zerze zmyślonych; utrzymało się to również po usunięciu z promptu zdania nakazującego modelowi preferować najnowszy dokument. Pękło dopiero na korpusie przebudowanym tak, by pokonać oczywiste heurystyki — nazwy plików pozbawione dat i sortujące się niechronologicznie, wartości zastąpione zacytowane dosłownie wewnątrz późniejszych dokumentów — i pękło tam u słabszego modelu w ramionach o najszerszym kontekście: każde ramię z wyszukiwaniem odpowiadało poprawnie w każdym powtórzeniu, podczas gdy oba ramiona szerokokontekstowe zawiodły w każdym powtórzeniu (0/6 wobec 9/9, test dokładny Fishera p = 0,0002). Mierzalne różnice w pozostałych miejscach są strukturalne, a nie epistemiczne: wyszukiwanie z definicji przegrywa na agregacji obejmującej cały korpus oraz na parafrazie leksykalnej przy małym k. Na korpusie utwardzonym ujawnił się drugi tryb awarii, mierzalny bez udziału człowieka: słabszy model przytoczył czternaście dat nieobecnych w korpusie (18% cytowanych przez siebie dat, wobec zera u modelu silniejszego), często przy poprawnej odpowiedzi.
Słowa kluczowe: generowanie wspomagane wyszukiwaniem, długi kontekst, wyszukiwanie agentowe, projektowanie benchmarków, zastępowanie treści dokumentów, metodologia ewaluacji.
1. Wprowadzenie
1.1 Problem
Organizacja utrzymująca bazę dokumentów zmieniającą się w czasie — wymagania, polityki, umowy, protokoły — musi zdecydować, w jaki sposób udostępnić ją modelowi językowemu. W powszechnym użyciu są trzy architektury:
- RAG. Buduje się indeks; pytanie pobiera k najbardziej podobnych fragmentów; tylko one trafiają do promptu.
- CAG. Cały korpus umieszczany jest w oknie kontekstowym przy każdym wywołaniu.
- Wyszukiwanie agentowe. Model dostaje narzędzia wyszukiwania i sam decyduje, co przeczytać, płacąc jedną rundę komunikacji za każdą decyzję.
Wybór argumentuje się zwykle kosztem i ograniczeniami okna kontekstowego. To badanie pyta, czy istnieje także kryterium dokładności — konkretnie dla trybu awarii najistotniejszego w bazie dokumentów z historią: odpowiedzi płynnej, na temat, z podanym źródłem — i opisującej stan świata, który późniejszy dokument już unieważnił.
1.2 Prace pokrewne
Samo porównanie nie jest nowe. Nowy jest korpus, na którym je przeprowadzono.
Wyszukiwanie wobec długiego kontekstu. Li i in. [1] porównali wyszukiwanie z modelami długokontekstowymi na publicznych zbiorach pytań i odpowiedzi i stwierdzili, że modele długokontekstowe wygrywają średnio, podczas gdy wyszukiwanie pozostaje znacznie tańsze — proponując router między nimi. Lee i in. [2] zbudowali benchmark zadań rzeczywistych sięgających miliona tokenów i podali, że modele długokontekstowe dorównują dedykowanym potokom wyszukiwania. Yu i in. [3] argumentowali przeciwnie, pokazując, że bardzo długie konteksty rozcieńczają uwagę na istotnym fragmencie, i opisali krzywą w kształcie odwróconego U, w której jakość odpowiedzi najpierw rośnie, a potem spada wraz z liczbą podanych fragmentów — kształt, którego to badanie szukało i, na tak małym korpusie, nie znalazło. Hsieh i in. [4] pokazali, że modele deklarujące duże okna kontekstowe wyraźnie tracą na zadaniach trudniejszych niż odnalezienie igły, a Liu i in. [5] ustalili leżący u podstaw tego efekt pozycyjny: dokładność jest najwyższa, gdy istotny fragment leży na początku lub na końcu kontekstu, i spada w środku. Asai i in. [6] reprezentują nurt wyszukiwania adaptacyjnego, którego przedstawicielem jest tu ramię agentowe.
Wiedza sprzeczna i wrażliwa na czas. Xu i in. [7] przeglądają konflikty wiedzy i rozróżniają konflikt kontekst–pamięć, międzykontekstowy i wewnątrzpamięciowy; kategoria zastąpienia w tym badaniu jest wprost konfliktem międzykontekstowym, w którym dwa fragmenty podanego kontekstu przeczą sobie, a rozstrzyga świeżość. Vu i in. [8] wprowadzili dynamiczny benchmark szybko zmieniających się faktów i pytań z fałszywą przesłanką — najbliższy opublikowany odpowiednik użytych tu kategorii zastąpienia i pułapki negatywnej — ale testuje on wiedzę parametryczną modelu wobec żywego internetu, podczas gdy to badanie trzyma cały materiał dowodowy wewnątrz dostarczonych dokumentów.
Kontaminacja. Xu i in. [9] przeglądają kontaminację danych benchmarkowych: materiał ewaluacyjny wchłonięty do danych treningowych zawyża mierzone wyniki w sposób trudny do wykrycia po fakcie.
Co wyróżnia to badanie. Każde cytowane wyżej porównanie prowadzone jest na materiale publicznym — wydanych benchmarkach, opublikowanych korpusach albo żywym internecie. Jest to nieuniknione dla pracy, którą inni mają móc powtórzyć, i niesie znany koszt: publiczny benchmark może znajdować się w danych treningowych modeli, które za jego pomocą się ocenia, a benchmark syntetyczny staje się publiczny w chwili wydania. To badanie używa zamiast tego korpusu napisanego pod nie i nigdy nieopublikowanego, w którym każda organizacja, system, nazwa roli, identyfikator i data są zmyślone, a skonsolidowany stan końcowy nie występuje w żadnym dokumencie. Założenie wspierają dwa sprawdzenia i żadne go nie dowodzi: charakterystyczne nazwy bytów z korpusu nie dają żadnych wyników w publicznym internecie, a ramię kontrolne bez kontekstu uzyskało 0/20 na obu modelach, przy odmowach zamiast zgadywania (§4.2, §4.3). Nieobecności w zbiorze treningowym nie da się wykazać z zewnątrz; można natomiast uczynić kontaminację nieprawdopodobną przez konstrukcję, a następnie zmierzyć ją empirycznie ramieniem kontrolnym — i taki właśnie protokół zaleca literatura o kontaminacji, a większość publikowanych porównań tych architektur go nie raportuje.
Wymiana jest świadoma i jej koszt trzeba nazwać wprost: tego korpusu nie da się udostępnić dalej bez zniszczenia własności, która czyni go użytecznym, więc wyniki nie są niezależnie odtwarzalne tak, jak wyniki na publicznym benchmarku. Odtwarzalna jest metoda — reguły konstrukcji z §2.1, schemat kategorii z §2.2 i zabezpieczenia z §2.5 — i dlatego podane są w całości.
1.3 Pytania badawcze
- RQ1. Czy trzy architektury różnią się dokładnością na pytaniach, których poprawna odpowiedź wymaga rozpoznania, że wcześniejszy dokument został zastąpiony?
- RQ2. Czy różnią się na pytaniach wymagających agregacji po całym korpusie, na parafrazie leksykalnej i na pułapkach negatywnych — pytaniach zakładających coś, co zostało odrzucone?
- RQ3. Ile każda architektura kosztuje w tokenach promptu, tokenach odpowiedzi i opóźnieniu przy tej samej odpowiedzi?
- RQ4. Czy obserwowane zachowanie jest własnością architektury, czy instrukcji podanej w prompcie systemowym?
- RQ5. Czy wyniki dają operacyjne kryteria wyboru architektury i czy proof of concept pod konkretny projekt jest racjonalnym wydatkiem?
1.4 Założenia projektowe
Ustalone przez konstrukcję i ograniczające interpretację każdego wyniku poniżej.
| # | Założenie | Uzasadnienie |
|---|---|---|
| A1 | Korpus jest syntetyczny, napisany pod badanie i nieopublikowany; kontaminację traktuje się jako nieprawdopodobną, a nie obaloną. | Każdy korpus, który model mógł zapamiętać, mierzy pretrening, a nie wyszukiwanie. Nieobecności w zbiorze treningowym nie da się wykazać z zewnątrz; empirycznym substytutem jest ramię kontrolne bez kontekstu — raportowane, a nie zakładane (§1.2). |
| A2 | Skonsolidowany stan końcowy wymagań nie występuje w żadnym dokumencie. | Musi zostać wyprowadzony z chronologii, a nie odszukany. Klucz odpowiedzi trzymany jest poza korpusem. |
| A3 | Wyszukiwarka jest celowo słaba: leksykalny BM25, bez rerankera, bez wyszukiwania hybrydowego, bez wektorów. | Silna wyszukiwarka maskuje awarie, które korpus ma ujawnić. To punkt odniesienia, nie propozycja wdrożeniowa. |
| A4 | Model jest zmienną kontrolowaną: jeden model na zbiór danych, nigdy łączone. | Łączenie mieszałoby architekturę z modelem. |
| A5 | Długość odpowiedzi steruje prompt, a nie limit tokenów wyjściowych. | Naruszenie tego zepsuło przebieg pilotażowy; zob. §4.1. |
| A6 | Buforowanie odpowiedzi po stronie dostawcy jest wyłączone. | Cache czyni powtórzenia identycznymi bajt po bajcie, zeruje wariancję i zamienia pomiary opóźnień w fikcję. |
| A7 | Poprawność ocenia nadzorowany przez człowieka osąd, a nie dopasowanie napisów. | Nieaktualność i zmyślenie dają płynny tekst na temat, który pokrycie leksykalne punktuje jako trafienie. |
| A8 | Narzędzia agentowe są zaimplementowane w procesie, a nie przez wywoływanie narzędzi systemowych. | Usuwa wariancję wersji narzędzi, ustawień regionalnych i kolejności systemu plików oraz ryzyko wykonania poleceń napisanych przez model. |
2. Materiał i metody
2.1 Korpus
Korpus opisuje fikcyjny system obsługi klienta zamawiany przez fikcyjnego ubezpieczyciela. Składa się z jednego bazowego dokumentu wymagań i jedenastu protokołów komitetu sterującego datowanych na pięć miesięcy, w porządku chronologicznym: dwanaście dokumentów, 11 537 tokenów, 42 fragmenty po 400 tokenów z 50 tokenami zakładki.
Napisano go tak, by odpowiedź na pytanie często nie była wartością podaną w dokumencie najbardziej oczywiście pasującym do brzmienia pytania:
- Zmiana. Region wdrożenia zmienia się z jednego regionu chmury na inny.
- Odwrócenie i ponowne odwrócenie. Maksymalna długość sesji idzie 8 h → 12 h → 8 h w trzech dokumentach.
- Zniesienie i przywrócenie w zawężonym zakresie. Rola audytora zostaje zniesiona, a potem przywrócona bez jednego z pierwotnych uprawnień.
- Utworzenie i usunięcie bez wdrożenia. Rola retencyjna zostaje utworzona, a później usunięta.
- Odrzucenie. Trzy zgłoszone funkcje zostają odrzucone; protokoły odnotowujące odmowę są leksykalnie bardzo bliskie tym, które odnotowują zgodę.
Później zbudowano wariant utwardzony, zawierający te same fakty pod trzema przekształceniami adwersaryjnymi: nazwy plików nie niosą dat ani numerów porządkowych i sortują się niechronologicznie; odwołania cytują daty zamiast numerów dokumentów; a każda wartość zastąpiona jest zacytowana dosłownie, ze wskazaniem pochodzenia, w załączniku późniejszego dokumentu — tak, by „najnowszy dokument wspominający o X” był celowo złą heurystyką. Dla jednej wartości cytat leży w najnowszym dokumencie korpusu. Przekształcenie nie dodaje żadnego fałszywego zdania: czerwcowy dokument cytujący styczniową bazę cytuje ją wiernie.
2.2 Zestaw pytań
Dwadzieścia pytań w pięciu kategoriach, każde z odpowiedzią wzorcową i listą dokumentów złotych, wskazujących, co musi być obecne, by pytanie w ogóle dało się odpowiedzieć.
| Kat. | n | Definicja | Cel diagnostyczny |
|---|---|---|---|
| A | 3 | Prosty fakt, podany dosłownie w jednym dokumencie | Kontrola poprawności; oczekiwany remis |
| B | 3 | Parafraza niedzieląca słownictwa ze swoim źródłem | Testuje wyszukiwarkę, nie model |
| C | 4 | Agregacja po wielu dokumentach: liczenie, wyliczanie, „które nadal obowiązują” | Top-k z konstrukcji nie widzi całości |
| D | 7 | Zastąpienie: poprawna odpowiedź przeczy najbardziej widocznemu źródłu | Hipoteza centralna |
| E | 3 | Pułapka negatywna: pytanie zakłada coś, co zostało odrzucone | Halucynacja na żądanie |
Oddzielenie dokumentów złotych od odpowiedzi wzorcowej pozwala odróżnić „wyszukiwarka tego nie znalazła” od „model to miał i i tak się pomylił”.
2.3 Ramiona eksperymentu
| Ramię | Podany kontekst | Uwagi |
|---|---|---|
| Kontrolne | brak | Każde pytanie odpowiedziane tu poprawnie jest odpowiadalne z pretreningu i zostałoby wykluczone z porównania |
| RAG | top-k fragmentów BM25 | Przegląd dla k ∈ {5, 10, 20}; każde k raportowane jako osobne ramię, nigdy uśredniane |
| CAG | cały korpus | Jeden prompt, dwanaście dokumentów, w kolejności nazw plików |
| Agentowe | to, co model sam pobierze | Narzędzia: lista plików, wyszukiwanie wyrażeniem regularnym, odczyt zakresu linii; limity 40 trafień, 200 linii na odczyt, 12 tur |
2.4 Miary
- Poprawność — binarna, oceniana per pytanie i ramię.
- Nieaktualność — odpowiedź podaje wartość, którą późniejszy dokument zastąpił. Oceniana niezależnie od poprawności, bo odpowiedź nieaktualna to inna awaria niż odmowa.
- Zmyślenie — odpowiedź opisuje coś odrzuconego, usuniętego lub nieistniejącego.
- Recall wyszukiwarki — pobrane ∩ złote ÷ złote, na poziomie dokumentów, liczone automatycznie dla ramion z wyszukiwaniem i agentowego.
- Koszt — raportowane przez dostawcę tokeny promptu i odpowiedzi. Dla ramienia agentowego sumowane po wszystkich turach jednej odpowiedzi, co jest uczciwym rachunkiem: przebieg, który przeczytał cztery pliki, płaci za nie ponownie w każdej kolejnej turze.
- Opóźnienie — całkowity czas zegarowy na odpowiedź oraz czas do pierwszego tokenu dla ramion strumieniowych; pętla agentowa nie strumieniuje i nie rejestruje tej wartości.
2.5 Zabezpieczenia trafności
- Sonda kontekstu. Przed każdym przebiegiem na początku kontekstu pełnego korpusu umieszczany jest token-kanarek, a model ma go powtórzyć. Jeśli nie potrafi, okno zostało po cichu obcięte i każda kolejna liczba z ramienia pełnokontekstowego jest bez wartości. Sonda porównuje też raportowaną przez dostawcę liczbę tokenów promptu z szacunkiem lokalnym i ostrzega przy dużej rozbieżności. Wszystkie raportowane przebiegi przeszły.
- Buforowanie wyłączone u dostawcy, weryfikowane przy każdym wywołaniu.
- Kontrola determinizmu. Odpowiedzi identyczne bajt po bajcie w powtórzeniach są oznaczane jako sygnatura niewyłączonego cache'u. Zaobserwowano: 0/120 identycznych par pytanie–ramię dla modelu silniejszego i 1/120 dla słabszego — prawdziwa wariancja próbkowania.
- Ramię kontrolne uruchamiane jako pierwsze. Każde pytanie odpowiedziane w nim poprawnie zostałoby usunięte. Nie było takich.
- Rejestracja pełnych promptów i śladów narzędzi, tak by błędną odpowiedź dało się przypisać, a nie zgadywać jej przyczynę.
2.6 Protokół oceny
Jeden wiersz na unikalne pytanie i ramię — pierwsze powtórzenie — oceniany wobec odpowiedzi wzorcowej i dokumentów źródłowych, z niezależnym punktowaniem poprawności, nieaktualności i zmyślenia oraz notatką tekstową uzasadniającą każde zero. Powtórzenia służą do opóźnień, kosztu i wariancji, nie do dokładności; każda komórka dokładności opiera się więc na 20 pytaniach albo na 7 w przebiegach obejmujących samo zastąpienie. Jeden wyjątek udokumentowano w §4.5.
3. Przegląd przebiegów
| Przebieg | Korpus | Model | Ramiona | Pytania × powtórzenia | Wywołania |
|---|---|---|---|---|---|
| 0 (pilotaż) | pierwotny | silniejszy | kontrolne, RAG ×3, CAG, agentowe | 20 × 3 | 387 |
| 1 | pierwotny | silniejszy | jak wyżej | 20 × 3 | 360 |
| 2 | pierwotny | słabszy | jak wyżej | 20 × 3 | 360 |
| 3 (ablacja) | pierwotny | oba | RAG ×3, CAG, agentowe | 7 (kat. D) × 3 | 210 |
| 4 (utwardzony) | utwardzony | oba | RAG ×3, CAG, agentowe | 7 (kat. D) × 3 | 210 |
Łącznie 1527 zarejestrowanych wywołań.
4. Wyniki
4.1 Przebieg 0 — pilotaż i awaria metodologiczna warta zaraportowania
Pilotaż działał z limitem 300 tokenów wyjściowych. W modelu z adaptacyjnym rozumowaniem widoczna odpowiedź i rozumowanie dzielą ten budżet. Efektem były puste odpowiedzi dokładnie na najtrudniejszych pytaniach: pytanie agregacyjne o model ról przy k=10 i k=20, pytanie o liczbę przy k=5, pytanie o zastąpiony region przy k=5, pytanie parafrazowe przy k=5.
| Ramię | A | B | C | D | E | Razem |
|---|---|---|---|---|---|---|
| RAG k=5 | 3/3 | 2/3 | 2/4 | 6/7 | 3/3 | 16/20 |
| RAG k=10 | 3/3 | 3/3 | 2/4 | 7/7 | 3/3 | 18/20 |
| RAG k=20 | 3/3 | 3/3 | 2/4 | 7/7 | 3/3 | 18/20 |
Czytana naiwnie tabela mówi, że wyszukiwanie przy k=5 nie radzi sobie z pytaniem o zastąpienie — czyli daje wynik, którego badanie szukało. Nie daje: model nie wyprodukował żadnego tekstu. Artefakt o kształcie obcięcia jest nieodróżnialny od awarii architektury w każdej mierze, która ogląda wyłącznie tekst odpowiedzi. Limit podniesiono do 2000 tokenów i każdy kolejny przebieg wykonano ponownie. Dwanaście ocenionych zer w ramionach pilotażu było pustymi odpowiedziami, a nie odpowiedziami błędnymi.
4.2 Przebieg 1 — model silniejszy, korpus pierwotny
Dokładność (20 pytań na ramię):
| Kat. | Kontrolne | RAG k=5 | RAG k=10 | RAG k=20 | CAG | Agentowe |
|---|---|---|---|---|---|---|
| A (3) | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| B (3) | 0/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| C (4) | 0/4 | 2/4 | 2/4 | 3/4 | 4/4 | 4/4 |
| D (7) | 0/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 |
| E (3) | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| Razem | 0/20 | 17/20 | 18/20 | 19/20 | 20/20 | 20/20 |
| nieaktualne / zmyślone | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Koszt i opóźnienie (średnie z 60 wywołań na ramię; milisekundy):
| Ramię | Tokeny kontekstu | Tokeny promptu | Tokeny odpowiedzi | TTFT p50 | TTFT p95 | Razem p50 | Razem p95 |
|---|---|---|---|---|---|---|---|
| Kontrolne | 0 | 60 | 68 | 1410 | 2726 | 2278 | 3294 |
| RAG k=5 | 1822 | 2933 | 110 | 1771 | 3632 | 2649 | 4947 |
| RAG k=10 | 3606 | 5641 | 119 | 1921 | 5176 | 2917 | 6288 |
| RAG k=20 | 7235 | 11 128 | 128 | 2162 | 4493 | 3264 | 5646 |
| CAG | 11 743 | 18 081 | 123 | 2010 | 5110 | 2904 | 6080 |
| Agentowe | — | 10 942¹ | 525 | nd.² | nd.² | 13 356 | 30 404 |
¹ zsumowane po wszystkich turach jednej odpowiedzi. ² pętla narzędziowa nie strumieniuje.
Recall wyszukiwarki wg kategorii:
| Ramię | A | B | C | D | E | Pytania z recall < 1 |
|---|---|---|---|---|---|---|
| RAG k=5 | 1,00 | 0,50 | 0,54 | 1,00 | 1,00 | sześć, w B i C |
| RAG k=10 | 1,00 | 1,00 | 0,85 | 1,00 | 1,00 | jedno, w C |
| RAG k=20 | 1,00 | 1,00 | 0,95 | 1,00 | 1,00 | jedno, w C |
Zachowanie agentowe: 4,6 wywołania narzędzi na pytanie (min 3, maks 21); 60 listowań plików, 121 wyszukiwań, 95 odczytów; 23 z 60 przebiegów przeformułowało zapytanie po nieproduktywnym wyszukiwaniu. Żaden przebieg nie dobił do limitu tur.
Wnioski.
- Ramię kontrolne jest czyste. 0/20 bez dokumentów, a model odmawia zamiast zgadywać. Żadne pytanie nie jest skażone pretreningiem, więc cały zestaw jest dopuszczalny.
- Hipoteza o zastąpieniu upada przy pierwszym teście. Każde ramię — łącznie z najtańszym, przy 1,8 tys. tokenów kontekstu, trzech fragmentach z czterdziestu dwóch — odpowiada poprawnie na wszystkie siedem pytań o zastąpienie, przy zerze odpowiedzi nieaktualnych. Trzy dobrze dobrane fragmenty wystarczyły, by model zauważył, że wartość bazowa została unieważniona, bo wyszukiwarka leksykalna pytana o wartość, która się zmieniła, pobiera zwykle zarówno oryginał, jak i zmianę: dzielą słownictwo.
- Prawdziwym deficytem wyszukiwania jest agregacja. Wszystkie trzy pozostałe błędy to pytania agregacyjne. Pytanie o liczbę wymaga faktu negatywnego o każdym dokumencie; jego recall nigdy nie osiąga 1,00 i nawet przy k=20 model wymienia cztery z pięciu kwalifikujących się spotkań. To nie jest błąd strojenia — wyszukiwarka top-k nie potrafi odpowiedzieć na pytanie, którego odpowiedź jest własnością zbioru.
- k ma realny wpływ na parafrazę. Recall 0,50 → 1,00 między k=5 a k=10, a za nim idzie dokładność. Średni recall przy k=5 po wszystkich kategoriach wynosi 0,81, co całkowicie to ukrywa: dopiero rozbicie na kategorie czyni tę informację użyteczną.
- Koszt jest monotoniczny i stromy. Pełny kontekst kosztuje 6,2× więcej tokenów promptu niż wyszukiwanie przy k=5 za trzy dodatkowe poprawne odpowiedzi na dwadzieścia. Koszt krańcowy to ~546 tokenów promptu na pobrany fragment, więc wyszukiwanie zrównuje się kosztowo z pełnym kontekstem przy k ≈ 33 z 42 dostępnych fragmentów; powyżej kupuje już tylko złożoność.
- Wyszukiwanie agentowe nie jest tańsze w czasie. Mediana 13,4 s wobec 2,9 s dla pełnego kontekstu, p95 30,4 s i 4,3× więcej tokenów odpowiedzi — ale na tym korpusie jest tańsze w tokenach promptu niż pełny kontekst, a w odróżnieniu od niego ta liczba prawie nie rośnie wraz z wielkością korpusu.
Zastrzeżenie pomiarowe. Wartości recall ramienia agentowego w tym przebiegu (średnio 0,71, w jednej kategorii nawet 0,33) są artefaktem, a nie wynikiem behawioralnym. Zaliczano wyłącznie dokumenty otwarte narzędziem odczytu; dokumenty, których treść trafiła do kontekstu jako wynik wyszukiwania — nie. Jeden ślad jest wprost: model wyszukał próg, dostał pasującą linię, odpowiedział z niej poprawnie i otrzymał recall 0,00 za to pytanie. Regułę zaliczania poprawiono przed Przebiegiem 2 — trafienia wyszukiwania teraz się liczą, listowania plików celowo nie, bo ich zaliczanie dawałoby idealny recall za darmo — co czyni recall agentowy nieporównywalnym między Przebiegiem 1 a późniejszymi. Dokładności to nie dotyczy.
4.3 Przebieg 2 — model słabszy, korpus pierwotny
| Kat. | Kontrolne | RAG k=5 | RAG k=10 | RAG k=20 | CAG | Agentowe |
|---|---|---|---|---|---|---|
| A (3) | 0/3 | 3/3 | 3/3 | 3/3 | 2/3 | 3/3 |
| B (3) | 0/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| C (4) | 0/4 | 2/4 | 2/4 | 2/4 | 4/4 | 3/4 |
| D (7) | 0/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 |
| E (3) | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 |
| Razem | 0/20 | 17/20 | 18/20 | 18/20 | 19/20 | 19/20 |
| nieaktualne / zmyślone | 1 / 3 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
| Ramię | Tokeny kontekstu | Tokeny promptu | Tokeny odpowiedzi | TTFT p50 | Razem p50 | Razem p95 |
|---|---|---|---|---|---|---|
| Kontrolne | 0 | 47 | 62 | 724 | 1384 | 2327 |
| RAG k=5 | 1822 | 2139 | 74 | 790 | 1752 | 2967 |
| RAG k=10 | 3606 | 4131 | 79 | 863 | 1916 | 3498 |
| RAG k=20 | 7235 | 8185 | 89 | 977 | 2217 | 3121 |
| CAG | 11 743 | 13 226 | 115 | 990 | 2359 | 3507 |
| Agentowe | — | 12 429 | 605 | nd. | 9280 | 15 524 |
Zachowanie agentowe: 6,1 wywołania narzędzi na pytanie, 155 wyszukiwań, 151 odczytów, 32 z 60 przebiegów przeformułowało zapytanie; recall 1,00 w czterech kategoriach i 0,94 w agregacji przy poprawionej regule zaliczania.
Wnioski.
- Ramię kontrolne pokazuje teraz tryb awarii, którego ramiona ugruntowane nie pokazują. Bez dokumentów słabszy model nie odmawia — konfabuluje: twierdzi, że istnieje funkcja usunięta z zakresu (ocena: nieaktualne), wymyśla całodniową sesję bez ponownego uwierzytelnienia, zgaduje prawdopodobny klucz główny i produkuje kompletną instrukcję konfiguracji integracji, która została wprost odrzucona. Każde ramię ugruntowane, łącznie z k=5, stłumiło wszystkie cztery. To najczystszy pojedynczy wynik badania: wartość ugruntowania widać nie w dokładności ramion ugruntowanych, lecz w dystansie między nimi a ramieniem nieugruntowanym — a dystans ten zależy od modelu.
- Ranking architektur się powtarza; marginesy maleją. Ten sam kształt, te same porażki skupione w agregacji, te same komplety punktów na zastąpieniu wszędzie.
- Pełny kontekst nie jest jednolicie najlepszy. Jedyny błąd słabszego modelu w pełnym kontekście dotyczy pytania o prosty fakt: mając wszystkie dwanaście dokumentów, oświadczył, że dla wskazanej integracji nie ma wymagania opóźnienia, podczas gdy dokument bazowy podaje je dla każdej integracji synchronicznej. Wyszukiwanie przy k=5 odpowiedziało poprawnie. Model miał tę wartość i wygadał się z niej, chwytając się pobocznego szczegółu o protokole integracji. Dłuższy prompt nie tylko dodaje informacji; dodaje też okazji do rozróżniania.
- Wybór architektury i wybór modelu są porównywalne co do skali. Rozpiętość między najtańszym a najlepszym ramieniem to dwie odpowiedzi dla każdego modelu, a rozpiętość między modelami w tym samym ramieniu to najwyżej jedna — i obie giną przy przepaści między dowolnym ramieniem ugruntowanym a kontrolnym.
- Zastrzeżenie pomiarowe. Ten sam kontekst 11 743 tokenów jest raportowany jako 18 081 tokenów promptu dla jednego modelu i 13 226 dla drugiego — 37% różnicy w tokenizacji. Liczby tokenów są porównywalne między ramionami w obrębie modelu, a nie między modelami; porównania kosztów między modelami trzeba robić w walucie.
4.4 Przebieg 3 — ablacja promptu
Używany dotąd prompt systemowy zawierał jawną podpowiedź strategiczną: że późniejsze protokoły mogą zmieniać lub odwracać wcześniejsze decyzje i że model powinien zawsze odpowiadać stanem na najnowszy dokument. Gdyby wynik dotyczący zastąpienia zawdzięczać promptowi, a nie architekturom, usunięcie tego zdania powinno dać odpowiedzi nieaktualne. Ablacja usunęła dokładnie je i nic więcej: opis faktograficzny korpusu pozostał, podobnie jak zdanie o pozycjach odrzuconych, tak by kategoria pułapki negatywnej była stała, a projekt miał jedną zmienną.
Wynik: 7/7 na zastąpieniu w każdym ramieniu obu modeli, przy zerze odpowiedzi nieaktualnych i zerze zmyślonych. Opóźnienie agentowe wzrosło, agentowy koszt promptu spadł, ale dokładność nie drgnęła.
Zachowanie na zastąpieniu nie jest zatem niesione przez instrukcję. Mając dokumenty zawierające zarówno zdanie pierwotne, jak i zmieniające, oba modele rozstrzygają konflikt na korzyść późniejszego, choć nikt im tego nie każe. Zamyka to najbardziej prawdopodobne wyjaśnienie alternatywne wyniku zerowego z §4.2 i istotnie go wzmacnia.
4.5 Przebieg 4 — korpus utwardzony
Dokładność na zastąpieniu (7 pytań na ramię, 210 wywołań, bez błędów):
| Model | RAG k=5 | RAG k=10 | RAG k=20 | CAG | Agentowe |
|---|---|---|---|---|---|
| Silniejszy | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 |
| Słabszy | 7/7 | 7/7 | 7/7 | 6/7 | 6/7 |
Obie porażki słabszego modelu dotyczą tego samego pytania — czy rola istnieje, po tym jak w jednym dokumencie ją zniesiono, a w dużo późniejszym przywrócono w zawężonym zakresie — obie ocenione jako nieaktualne i obie w ramionach o najszerszym kontekście. Recall wyszukiwarki dla zastąpienia pozostał 1,00 przy każdym k: anonimizacja nazw plików nie przeszkadza indeksowi leksykalnemu, który czyta treść.
Obie porażki mają różny kształt, a druga jest ciekawsza:
- Agentowe. „Na podstawie najnowszego posiedzenia komitetu sterującego (z [lutego]) rola nie istnieje — została zniesiona”. Model wskazał lutowy dokument jako najnowszy. Bez dat w nazwach plików źle uporządkował korpus, zatrzymał się na zniesieniu i nigdy nie dotarł do przywrócenia.
- Pełny kontekst. „Nie, rola nie istnieje w bieżących wymaganiach. Została zniesiona na posiedzeniu z [lutego]. Została jednak następnie przywrócona w zawężonym zakresie na posiedzeniu z [czerwca]…”. Tutaj model miał oba fakty, oba podał poprawnie i mimo to otworzył zaprzeczeniem. To nie jest ani awaria wyszukiwania, ani awaria chronologii, lecz niepowodzenie w zwinięciu dwóch odnalezionych zdań w jeden stan bieżący — i byłoby niewidoczne dla każdej miary punktującej zawartość odpowiedzi, a nie jej tezę.
Porażka replikuje się w każdym powtórzeniu. Ponieważ jest to jedyny różnicujący wynik badania, przeczytano wszystkie trzy powtórzenia tego pytania dla obu modeli, a nie tylko jedno ocenione:
| Pytanie, korpus utwardzony | RAG (3 ramiona × 3 powtórzenia) | Pełny kontekst + agentowe (2 × 3) |
|---|---|---|
| Model silniejszy | 9/9 | 6/6 |
| Model słabszy | 9/9 | 0/6 |
Każda szerokokontekstowa odpowiedź słabszego modelu otwiera się zaprzeczeniem istnienia roli; każda odpowiedź z wyszukiwania otwiera się jej potwierdzeniem. Test dokładny Fishera dla 0/6 wobec 9/9 daje p = 0,0002 jednostronnie.
Druga degradacja: ścieżka rozumowania psuje się wcześniej niż odpowiedź. Dwa automatyczne pomiary na tych samych 210 odpowiedziach.
Błędnie wskazana świeżość. Skanowanie twierdzeń postaci „najnowszy dokument to X” i sprawdzanie wskazanego dokumentu wobec prawdziwych dat: model silniejszy postawił 3 takie twierdzenia, 1 błędne; słabszy 7, 3 błędne. Cztery odpowiedzi twierdziły, że najnowszy jest dokument lutowy, a trzy z nich mimo to podały poprawną odpowiedź końcową.
Zmyślone daty. Każdy napis daty w każdej odpowiedzi, sprawdzony wobec dwunastu dat obecnych w korpusie:
| Model | Cytowane daty | Nieobecne w korpusie |
|---|---|---|
| Silniejszy | 53 | 0 |
| Słabszy | 77 | 14 (18%) |
Wymysły słabszego modelu grupują się wiarygodnie wokół prawdziwych dat posiedzeń i pojawiają się także w odpowiedziach poprawnych: model potwierdza, że rola istnieje, i przypisuje przywrócenie posiedzeniu, które nigdy się nie odbyło.
Na korpusie pierwotnym żaden z tych błędów nie mógł wystąpić — nazwa pliku niosła datę, więc świeżość nie była osądem, a cytat nie był przypomnieniem. Utwardzenie nie spowodowało tych awarii; stworzyło możliwość ich zaobserwowania.
Wnioski.
- Wskazówki chronologiczne w nazwach plików nie były mechanizmem stojącym za wynikiem zerowym — dla modelu silniejszego, który uzyskał 35/35 na korpusie zbudowanym specjalnie po to, by je usunąć.
- Wynik zerowy nie jest uniwersalny. Utrzymał się na czterech zbiorach danych i pękł na piątym, w modelu o mniejszej sile, na pytaniu, którego poprawna odpowiedź jest dwuetapową historią, a nie podmienioną wartością.
- Porażki wylądowały w ramionach o najszerszym kontekście, w każdym powtórzeniu. Wyszukiwanie podało modelowi dwa rozstrzygające fragmenty i nic więcej; pełny kontekst i pętla agentowa podały mu dwanaście dokumentów w pomieszanej kolejności i zostawiły porządkowanie jemu. Wąski kontekst jest dla słabszego modelu nie tylko tańszy — jest barierką ochronną, bo odbiera okazję do błędnego uporządkowania korpusu.
- Pytanie, które pękło, dotyczy istnienia, a nie wartości. Cztery pytania, których odpowiedzią jest zastąpiona wartość, zostały odpowiedziane poprawnie przez każde ramię obu modeli na każdym korpusie. To, które zawiodło, pyta, czy coś istnieje po zniesieniu i zawężonym przywróceniu: „tak”, które musi przetrwać leżące pośrodku „nie”. Zestawy pytań badające zastąpienie powinny odpowiednio ważyć ten kształt.
4.6 Wariant językowy
Przetłumaczony korpus i zestaw pytań przygotowano i zweryfikowano, ale nie uruchomiono. Przetłumaczony korpus daje 48% więcej fragmentów dla tej samej treści, co samo w sobie jest kwestią kosztu; z tego badania nie wynika żadne twierdzenie o dokładności na korpusach nieanglojęzycznych.
5. Synteza
| Wniosek | Dowód | Pewność |
|---|---|---|
| Ugruntowanie w czymkolwiek eliminuje odpowiedzi nieaktualne i zmyślone | 0 nieaktualnych / 0 zmyślonych w 270 ocenionych odpowiedziach ugruntowanych; 1 nieaktualna + 3 zmyślone w ramieniu kontrolnym słabszego modelu | Wysoka |
| Zastąpienie nie różnicuje architektur, dopóki korpus podaje chronologię za darmo | 7/7 w każdym ramieniu, oba modele, z podpowiedzią w prompcie i bez niej — 340 ocenionych odpowiedzi | Wysoka dla tego korpusu |
| Po usunięciu wskazówek chronologicznych zaczyna różnicować — na niekorzyść ramion szerokokontekstowych | 0/6 wobec 9/9 dla słabszego modelu, p = 0,0002; model silniejszy bez zmian | Wysoka w swoim zakresie; niereplikowana poza jednym pytaniem |
| Poprawna odpowiedź może nieść zmyślone źródło | 18% cytowanych dat nieobecnych w korpusie u słabszego modelu, 0% u silniejszego | Wysoka — automatyczna, sprawdzalna wobec korpusu |
| Posiadanie obu faktów to nie to samo, co ich zsyntetyzowanie | Wszystkie trzy szerokokontekstowe powtórzenia podają zniesienie i przywrócenie, a potem otwierają zaprzeczeniem | Umiarkowana |
| Podmiany wartości są łatwiejsze niż historie istnienia | Cztery pytania o wartości nigdy nie zawiodły; pytanie o istnienie zawiodło w sześciu na sześć przebiegów szerokokontekstowych | Umiarkowana |
| Agregacja po całym korpusie silnie różnicuje | 2/4 przy k=5 wobec 4/4 przy pełnym kontekście; jedno pytanie nieodpowiadalne przy każdym k | Wysoka |
| Parafraza różnicuje wyłącznie przy niskim k | Recall 0,50 przy k=5 → 1,00 przy k=10, a za nim dokładność | Wysoka |
| Pełny kontekst ≥ wyszukiwanie pod względem dokładności, ale nie ściśle | Ramię pełnokontekstowe słabszego modelu przegrało pytanie o prosty fakt, na które wyszukiwanie przy k=5 odpowiedziało | Umiarkowana |
| Koszt tokenów promptu: wyszukiwanie przy k=5 ≈ 0,16 × pełny kontekst; próg opłacalności przy k ≈ 33 z 42 fragmentów | Tabela tokenów, §4.2 | Wysoka |
| Tryb agentowy kosztuje ~4,6× opóźnienia pełnego kontekstu i ~4,3× tokenów odpowiedzi, zużywając mniej tokenów promptu | Tabele opóźnień i tokenów | Wysoka |
| Średni recall wyszukiwarki jest myląca statystyką | Rozbicie na kategorie ujawniło porażkę na parafrazie, którą średnia zasłaniała | Wysoka |
Dwa wyniki dotyczą przyrządu pomiarowego, a nie architektur, i są warte tyle, co reszta. Limit tokenów wyjściowych głodzący budżet rozumowania daje puste odpowiedzi dokładnie na najtrudniejszych pozycjach i jest nieodróżnialny od awarii architektury. Zmiana reguły zaliczania recall między dwoma przebiegami po cichu uczyniła ich wartości recall nieporównywalnymi. Oba dały się wykryć wyłącznie dlatego, że rejestrowano pełne prompty i kompletne ślady narzędzi.
6. Kryteria wyboru
6.1 Kryteria poparte tym materiałem
Wybieraj pełny kontekst, gdy korpus mieści się w oknie ze sporym zapasem, a liczba zapytań jest na tyle mała, że narzut 6× tokenów promptu na pytanie jest do udźwignięcia; gdy pytania wymagają agregacji, liczenia lub wyliczania po całym zbiorze; albo gdy wiążącym ograniczeniem jest nakład inżynierski — nie ma indeksu, polityki fragmentacji, k do strojenia ani trybu awarii wyszukiwania do monitorowania.
Wybieraj wyszukiwanie, gdy korpus przekracza okno albo dominuje koszt na pytanie; gdy pytania dotyczą faktów zlokalizowanych, w tym zastąpionych; i pod warunkiem, że k dobiera się z recall per kategoria, a nie ze średniej. Kryterium operacyjne brzmi nie „czy recall wygląda dobrze”, lecz „czy istnieje klasa pytań, której recall jest poniżej 1”.
Wybieraj przeszukiwanie agentowe, gdy korpus jest znacznie większy od okna, więc ani pełny kontekst, ani stałe k nie wchodzą w grę; gdy strategia wyszukiwania musi adaptować się do tego, co znajdzie — 38–53% przebiegów przeformułowało tu zapytanie po nieproduktywnym wyszukiwaniu, czego wyszukiwarka jednostrzałowa nie potrafi; i gdy opóźnienie nie jest widoczne dla użytkownika.
Dopasuj szerokość kontekstu do siły modelu. Więcej kontekstu nie jest monotonicznie bezpieczniejsze. Tam, gdzie baza dokumentów utrudnia ustalenie chronologii lub pierwszeństwa, podanie słabszemu modelowi całego zbioru daje mu okazję do złego uporządkowania; podanie dwóch rozstrzygających fragmentów jej nie daje. Odwraca to zwykłe rozumowanie, które traktuje pełny kontekst jako bezpieczne domyślne, a wyszukiwanie jako ryzykowną optymalizację.
Niezależnie od architektury: ugruntuj model w czymkolwiek. Największym zmierzonym tu efektem jest różnica między nieugruntowanym ramieniem kontrolnym a każdym ramieniem ugruntowanym.
6.2 Na ile kryteria są jasne?
Jasne. Te wynikające z relacji wielkości korpusu do okna, z kształtu pytania — fakt zlokalizowany wobec własności zbioru — oraz z kosztu i opóźnienia są ostre, ilościowe i przenoszalne. Można je ocenić przed uruchomieniem czegokolwiek: wystarczą liczba tokenów korpusu, okno kontekstowe, spodziewana liczba zapytań i próbka typów pytań.
Niejasne, a pierwotnie uznane za rozstrzygające. „Używaj pełnego kontekstu, bo wyszukiwanie podaje nieaktualne odpowiedzi” nie znajduje poparcia, a na korpusie utwardzonym jedyne zaobserwowane odpowiedzi nieaktualne pochodziły z pełnego kontekstu. Kryterium przetrwało w dwóch osłabionych formach: jeśli wyszukiwanie zwraca zdanie zastąpione bez zdania zmieniającego, model nie ma jak tego wiedzieć, więc wielkością do mierzenia jest recall dokumentów zmieniających, a nie odsetek nieaktualnych odpowiedzi modelu; a jeśli korpus nie czyni własnej chronologii czytelną, ryzyko przesuwa się do tego ramienia, które niesie najwięcej nieuporządkowanego materiału.
Niejednoznaczne. Pełny kontekst wobec wyszukiwania na marginesie. Materiał to 20/20 wobec 19/20 i 19/20 wobec 18/20 — w granicach szumu przy dwudziestu pytaniach. Decyzje na tym marginesie powinny zapadać na podstawie kosztu, opóźnienia i złożoności operacyjnej.
7. Czy proof of concept pod konkretny projekt jest uzasadniony?
Koszt. To badanie to 1527 wywołań modelu na korpusie dwunastu dokumentów i kilka godzin obliczeń — zdominowanych całkowicie przez ludzki koszt napisania korpusu z celowo ukrytym stanem końcowym, dwudziestu pytań z pięciu kategorii i klucza odpowiedzi. To ten artefakt, a nie oprzyrządowanie, jest drogą częścią.
Korzyść, jaka faktycznie wyszła. Badanie dało jedną wdrożeniową zmianę konfiguracji (k=5 → k=10, uzasadnioną recall per kategoria, a nie dokładnością); obalenie hipotezy, która inaczej uzasadniałaby płacenie 6× więcej na pytanie za pełny kontekst; wskazanie klasy pytań faktycznie wymagającej dostępu do całego korpusu; kontrintuicyjną interakcję szerokości kontekstu z siłą modelu; oraz dwie pułapki pomiarowe, które po cichu zepsułyby mniej staranne porównanie. Tylko pierwszą dałoby się uzyskać nieformalnym „spróbujmy kilku pytań i zobaczymy”.
Ocena. Pełny proof of concept za każdym razem nie jest uzasadniony; przesiewowy — prawie zawsze. Protokół stopniowany:
| Poziom | Kiedy | Co | Koszt |
|---|---|---|---|
| 0. Żaden | Korpus poniżej ~20% okna, mało zapytań, brak pytań agregacyjnych | Użyj pełnego kontekstu, loguj odpowiedzi, monitoruj | ~0 |
| 1. Przesiewowy | Domyślnie | 15–20 pytań pokrywających wszystkie kategorie, wszystkie ramiona, jedno powtórzenie, plus ramię kontrolne | ~100 wywołań |
| 2. Pełny | Poziom 1 pokazuje rozjeżdżanie się któregoś ramienia, korpus przekracza okno albo dziedzina jest regulowana | Trzy powtórzenia, przegląd k, pomiar opóźnień i kosztu | ~400 wywołań |
| 3. Ablacja i test adwersaryjny | Od wyniku zależy decyzja warta sześciokrotnego mnożnika kosztu | Ablacja promptu, korpus utwardzony, drugi model | ~200 wywołań |
O tym, czy się to zwróci, decydują trzy warunki. Pytania muszą umieć różnicować — cztery z pięciu kategorii nasyciły się tutaj, a badanie, w którym wszystkie ramiona uzyskują ≥ 17/20, mówi tylko tyle, że korpus jest łatwy, co jest wynikiem o korpusie, a nie o architekturach. Ramię kontrolne jest obowiązkowe — bez niego nie oddzielisz ugruntowania od zapamiętania, a to właśnie w nim pojawiają się tryby awarii, którym chcesz zapobiec. Wielokrotnie użytecznym artefaktem jest zestaw pytań i klucz odpowiedzi, a nie tabela dokładności: one przenoszą się na kolejne wydanie modelu, kolejną wyszukiwarkę i kolejny prompt; liczby nie.
8. Ograniczenia
Trafność teoretyczna. Korpus i pytania napisała ta sama osoba, więc pytania mogą testować własne słownictwo korpusu; kategoria parafrazy temu przeciwdziała, ale liczy tylko trzy pozycje. „Poprawność” to osąd binarny na dwuzdaniowej odpowiedzi swobodnej, a kilka ocenionych zer to odpowiedzi częściowe — sześć z siedmiu wymienionych ról, właściwa liczba przy niewłaściwym zestawie — które skala stopniowana by uchwyciła. Recall na poziomie dokumentów zawyża: dokument liczy się jako pobrany, jeśli pobrano dowolny jego fragment, także wtedy, gdy nie jest to fragment istotny.
Trafność wewnętrzna. Reguła zaliczania recall agentowego zmieniła się między dwoma przebiegami, czyniąc ich wartości recall nieporównywalnymi; dokładności to nie dotyczy. Oceny dokonano raz, przez jednego oceniającego, bez zaślepienia na ramię, i nie mierzono zgodności międzysędziowskiej. Oceniano wyłącznie pierwsze powtórzenie każdego pytania i ramienia, więc tabele dokładności ignorują wariancję odpowiedzi, która jest dowodnie niezerowa — z jednym wyjątkiem rozstrzygającego pytania na korpusie utwardzonym, gdzie przeczytano wszystkie powtórzenia, a porażka była całkowita. Miara świeżości zlicza tylko twierdzenia sformułowane w określony sposób i jest dolnym ograniczeniem; miara zmyślania dat takiej słabości nie ma, ale nie odróżnia zahalucynowanego cytatu od literówki.
Trafność wnioskowania statystycznego. Dwadzieścia pytań na ramię, siedem w przebiegach obejmujących samo zastąpienie. Różnice jednej czy dwóch odpowiedzi — a taka jest każda różnica między pełnym kontekstem a lepszymi ramionami z wyszukiwaniem — nie są znaczące, i nie wykonywano testów istotności poza jednym wynikiem, który tego wymagał. Cztery z pięciu kategorii nasycają się w niemal każdym ramieniu.
Kontaminacja. Twierdzenie, że żadna część korpusu nie była dostępna podczas treningu, jest argumentem, a nie pomiarem: opiera się na tym, że korpus jest zmyślony i nieopublikowany, że jego charakterystyczne nazwy bytów nic nie zwracają w publicznym internecie i że ramię kontrolne bez kontekstu uzyskało 0/20 przy odmowach. Ramię kontrolne pokazuje, że odpowiedzi nie zostały zapamiętane; nie wyklucza obecności podobnego materiału, a żadna strona zewnętrzna nie zweryfikuje pochodzenia korpusu bez otrzymania korpusu, co zakończyłoby własność, o którą chodzi.
Trafność zewnętrzna. Jeden korpus syntetyczny, jedna dziedzina, ~11,5 tys. tokenów. Reżim, w którym wyszukiwanie naprawdę ma sens — korpus niemieszczący się w oknie — to dokładnie ten reżim, którego nie przetestowano. Dwa modele z jednej rodziny dostawcy. Jedna wyszukiwarka leksykalna: bez wektorów, bez wyszukiwania hybrydowego, bez rerankera, bez ważenia świeżością. Wyłącznie angielski. Koszt raportowany w tokenach, nie w walucie, i bez buforowania promptów, które istotnie zmieniłoby ekonomię powtarzanych zapytań do stałego korpusu. Wynik z korpusu utwardzonego obejmuje jedno pytanie na jednym modelu.
9. Rozszerzenia
Uporządkowane wg spodziewanego przyrostu informacji na jednostkę wysiłku.
- Korpus niemieszczący się w oknie kontekstowym — 500–5000 dokumentów, 1–10 mln tokenów — przy którym pełny kontekst przestaje być opcją, a porównanie staje się: wyszukiwanie wobec przeszukiwania agentowego wobec podsumowania hierarchicznego. Powinien zawierać dystraktory: dokumenty o sąsiednich projektach dzielące słownictwo i nazwy bytów, których temu korpusowi brakuje, a które faktycznie łamią wyszukiwanie leksykalne w skali.
- Uogólnić porażkę z korpusu utwardzonego poza jedno pytanie. Napisać trzy–cztery kolejne pytania o historię istnienia — coś zniesionego i przywróconego, utworzonego, wycofanego i odtworzonego — skoro pytania o podmianę wartości okazały się niezdolne różnicować; dodać trzeci model o pośredniej sile, by zlokalizować próg; a potem rozszerzyć utwardzenie na kategorie parafrazy i agregacji.
- Uczynić pochodzenie miarą pierwszej kategorii. Sprawdzenie każdej cytowanej daty i identyfikatora dokumentu wobec korpusu rozdzieliło oba modele 18% do 0% bez oceny ludzkiej i bez dodatkowych wywołań.
- Powiększyć i zrównoważyć zestaw pytań — 200+ pytań, ułożonych przez kogoś innego niż autor korpusu, z przyciętymi kategoriami nasyconymi i rozbudowanymi różnicującymi. To jedyna droga do mocy statystycznej.
- Drabina wyszukiwarek: leksykalna → gęsta → hybrydowa → hybrydowa z rerankingiem → ważona świeżością, każda mierzona per kategoria. Konkretne pytanie warte odpowiedzi brzmi: czy wyszukiwarka gęsta naprawia agregację, czy też ta klasa jest strukturalnie poza zasięgiem dowolnej metody top-k.
- Zamienić ablację w plan czynnikowy. Podpowiedź o chronologii została zablowana; zdanie o pozycjach odrzuconych, kolejność dokumentów w prompcie pełnokontekstowym i obecność identyfikatorów dokumentów też powinny być. Odwrotnie chronologiczne ułożenie promptu pełnokontekstowego to tanie i prawdopodobne usprawnienie, którego nie przetestowano.
- Wielu oceniających albo skalibrowany sędzia modelowy zwalidowany wobec nich, co czyni też wykonalnym ocenianie wszystkich powtórzeń zamiast jednego.
- Buforowanie promptu dla ramienia pełnokontekstowego. Przy stałym korpusie i rozgrzanym cache'u jego profil kosztowy zmienia się jakościowo, a czas do pierwszego tokenu staje się jego najmocniejszym argumentem.
- Współbieżność i koszt w walucie. Wszystkie opóźnienia są tu jednowątkowe; sekwencyjne rundy ramienia agentowego zachowują się inaczej pod obciążeniem.
10. Wnioski
- Na dwunastodokumentowym korpusie decyzji zastępowanych każda architektura ugruntowana odpowiedziała poprawnie na każde pytanie o zastąpienie — na dwóch modelach, z instrukcją preferowania najnowszego dokumentu i bez niej, w 340 ocenionych odpowiedziach, przy zerze odpowiedzi nieaktualnych. Hipoteza, że wyszukiwanie daje pewne siebie odpowiedzi nieaktualne tam, gdzie pełny kontekst ich nie daje, nie znalazła poparcia.
- Hipoteza odwróciła się tam, gdzie w końcu pękła. Na korpusie przebudowanym tak, by usunąć wskazówki chronologiczne i przytoczyć wartości zastąpione wewnątrz późniejszych dokumentów, słabszy model wyprodukował pierwsze w całym badaniu odpowiedzi nieaktualne — w pełnym kontekście i w przeszukiwaniu agentowym, podczas gdy wszystkie trzy ramiona z wyszukiwaniem pozostały poprawne. Jeśli szerokość kontekstu wpływa na aktualność faktów, materiał wskazuje, że szerzej znaczy ryzykowniej dla słabszego modelu, a nie bezpieczniej.
- Mierzalne różnice są strukturalne. Wyszukiwanie nie potrafi odpowiedzieć na pytania, których odpowiedź jest własnością całego zbioru, i zawodzi na parafrazie leksykalnej przy małym k — to drugie naprawia k=10, tego pierwszego nie naprawia żadne testowane k.
- Największym efektem jest samo ugruntowanie, widoczne wyłącznie wobec ramienia kontrolnego bez kontekstu i głównie na słabszym modelu.
- Koszty są jasne i monotoniczne tam, gdzie dokładność nie jest: wyszukiwanie przy k=5 kosztuje 16% tokenów promptu pełnego kontekstu, obie wartości zbiegają się przy k ≈ 33 z 42 fragmentów, a przeszukiwanie agentowe kosztuje 4,6× opóźnienia pełnego kontekstu, zużywając na tak małym korpusie mniej tokenów promptu.
- Wybór architektury powinien zapadać na podstawie wielkości korpusu, kształtu pytań, kosztu i opóźnienia — wszystko to jest znane z góry — a nie na podstawie spodziewanej różnicy w aktualności faktów, którą to badanie wykryło tylko raz, w warunkach adwersaryjnych i w kierunku przeciwnym do zakładanego.
- Poprawność i pochodzenie degradują się osobno, a pochodzenie degraduje się pierwsze. Na korpusie utwardzonym słabszy model przytoczył czternaście nieistniejących dat i trzykrotnie źle wskazał najnowszy dokument, w większości przy poprawnych odpowiedziach. Każda ewaluacja oceniająca wyłącznie tezę końcową to przeoczy; każdy produkt pokazujący użytkownikowi cytat jest na to wystawiony; a w odróżnieniu od poprawności da się to sprawdzić automatycznie.
- Przesiewowy proof of concept warto uruchomić; pełnego zwykle nie. Jego trwałym produktem są korpus, zestaw pytań i klucz odpowiedzi, które przetrwają kolejne wydanie modelu; tabela dokładności nie.
11. Jak należy korzystać z tego badania
Jest wskazówką, na jakie efekty patrzeć przy wyborze architektury, a nie rankingiem do przeniesienia. Jego zakres czyni to nieuniknionym: dwadzieścia pytań na jednym syntetycznym korpusie dwunastu dokumentów, w jedynym reżimie, w którym pytanie architektoniczne odpowiada się samo, dwa modele z jednej rodziny dostawcy, jedna wyszukiwarka, wyłącznie angielski i cztery z pięciu kategorii pytań nasycające się w niemal każdym ramieniu. Różnice jednej czy dwóch odpowiedzi nie mają przy tej wielkości wagi statystycznej. Czytane jak tabela ligowa wyniki te mówiłyby „pełny kontekst wygrywa o punkt”, czyli dokładnie to, czego materiał nie jest w stanie poprzeć.
Przenosi się natomiast lista efektów, które badanie uwidoczniło, a każdy wart jest oprzyrządowania w realnej ewaluacji: agregacja jako strukturalna granica top-k; recall per kategoria zamiast średniej; luka ugruntowania, widoczna wyłącznie wobec ramienia bez kontekstu; niemonotoniczna interakcja szerokości kontekstu z siłą modelu; pochodzenie degradujące się przed poprawnością i sprawdzalne automatycznie; oraz artefakty przyrządu udające wyniki.
Jedyny różnicujący wynik — słabszy model zawodzący na pytaniu o historię istnienia w ramionach szerokokontekstowych, podczas gdy każde ramię z wyszukiwaniem się broni — jest solidny w swoim zakresie i niereplikowany poza nim. Zanim posłuży za uzasadnienie decyzji architektonicznej, potrzebuje rozszerzenia wskazanego w §9: więcej pytań tego kształtu, oceny wszystkich powtórzeń i trzeciego modelu o pośredniej sile. Do tego czasu jest tropem: dobrze udokumentowanym i najciekawszą rzeczą, jaką to badanie wyprodukowało — a nie wynikiem, wokół którego należy projektować.
Bibliografia
[1] Z. Li, C. Li, M. Zhang, Q. Mei, M. Bendersky. Retrieval Augmented Generation or Long-Context LLMs? A Comprehensive Study and Hybrid Approach. arXiv:2407.16833, 2024.
[2] J. Lee i in. Can Long-Context Language Models Subsume Retrieval, RAG, SQL, and More? arXiv:2406.13121, 2024. (Benchmark LOFT.)
[3] T. Yu, A. Xu, R. Akkiraju. In Defense of RAG in the Era of Long-Context Language Models. arXiv:2409.01666, 2024. (RAG z zachowaniem kolejności; krzywa odwróconego U.)
[4] C.-P. Hsieh, S. Sun, S. Kriman, S. Acharya, D. Rekesh, F. Jia, Y. Zhang, B. Ginsburg. RULER: What's the Real Context Size of Your Long-Context Language Models? arXiv:2404.06654, 2024; COLM 2024.
[5] N. F. Liu, K. Lin, J. Hewitt, A. Paranjape, M. Bevilacqua, F. Petroni, P. Liang. Lost in the Middle: How Language Models Use Long Contexts. arXiv:2307.03172, 2023; TACL 2024.
[6] A. Asai, Z. Wu, Y. Wang, A. Sil, H. Hajishirzi. Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection. arXiv:2310.11511, 2023; ICLR 2024.
[7] R. Xu, Z. Qi, Z. Guo, C. Wang, H. Wang, Y. Zhang, W. Xu. Knowledge Conflicts for LLMs: A Survey. arXiv:2403.08319, 2024; EMNLP 2024.
[8] T. Vu, M. Iyyer, X. Wang, N. Constant, J. Wei, J. Wei, C. Tar, Y.-H. Sung, D. Zhou, Q. Le, T. Luong. FreshLLMs: Refreshing Large Language Models with Search Engine Augmentation. arXiv:2310.03214, 2023; Findings of ACL 2024. (FreshQA.)
[9] C. Xu i in. Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244, 2024.