FocusLM
Wszystkie artykuły

RAG kontra długi kontekst: którego naprawdę powinieneś używać?

22 lipca 20267 min czytania

Gdy model potrafi przeczytać milion tokenów w jednym prompcie, kusi, by ogłosić śmierć wyszukiwania: po prostu daj mu wszystko. Staranne badanie pokazuje, że odpowiedź jest ciekawsza.

TL;DR

  • Przy wystarczających zasobach podanie całego dokumentu modelowi o długim kontekście zwykle bije wyszukiwanie pod względem jakości odpowiedzi.
  • Wyszukiwanie (RAG) jest zdecydowanie tańsze, ponieważ wysyła znacznie mniej tokenów.
  • Prosty router, który kieruje łatwe pytania do RAG, a trudne do długiego kontekstu, odzyskuje większość jakości za ułamek kosztu.

Dwa sposoby na dostarczenie modelowi kontekstu

Istnieją dwie ogólne strategie osadzania odpowiedzi w Twoim materiale. Generowanie wspomagane wyszukiwaniem (RAG) przeszukuje Twoje dane, wyciąga kilka najbardziej istotnych fragmentów i umieszcza w prompcie tylko je. Długi kontekst pomija wyszukiwanie i wstawia cały dokument (lub wiele dokumentów) bezpośrednio do okna. Gdy okna przekroczyły sto tysięcy tokenów, ludzie zaczęli pytać, czy RAG wciąż jest wart całego zachodu.

Co pokazują badania

W pracy Retrieval Augmented Generation or Long-Context LLMs? A Comprehensive Study and Hybrid Approach badacze z Google DeepMind zestawili oba podejścia bezpośrednio na trzech najsilniejszych dostępnych wówczas modelach o długim kontekście — Gemini-1.5-Pro, GPT-4o i GPT-3.5-Turbo — na zestawie zbiorów danych do odpowiadania na pytania z długich dokumentów, zaczerpniętych z uznanych benchmarków. Dla każdego pytania porównali dwa układy: podanie modelowi całego dokumentu (długi kontekst) kontra pobranie k najlepszych fragmentów i podanie wyłącznie ich (RAG).

Ich główny wniosek: gdy model jest silny i możesz sobie pozwolić na podanie mu wszystkiego, długi kontekst konsekwentnie daje średnio lepsze odpowiedzi niż RAG. Wyszukiwanie czasem gubi ten jeden fragment, który faktycznie zawierał odpowiedź; umieszczenie pełnego dokumentu w oknie eliminuje ten tryb awarii. Oba podejścia były jednak także silnie skorelowane — w zdecydowanej większości pytań zwracały tę samą odpowiedź, co autorzy później wykorzystali.

Haczykiem jest koszt. Długi kontekst oznacza płacenie za przetworzenie dziesiątek lub setek tysięcy tokenów przy każdym pojedynczym zapytaniu — nawet gdy odpowiedź kryła się w jednym akapicie.

RAG natomiast wysyła jedynie garść pobranych fragmentów, jest więc znacznie tańszy w przeliczeniu na zapytanie. Badanie przedstawia to jako rzeczywisty kompromis, a nie jednoznacznego zwycięzcę: długi kontekst kupuje jakość, RAG kupuje wydajność.

RAGDługi kontekstRouterkoszt zapytania →jakość odpowiedzi →
Jakościowy kompromis: długi kontekst przoduje w jakości, RAG w koszcie, a router celuje w lewy górny róg. Pozycje mają charakter poglądowy.

Podejście hybrydowe: kieruj, nie wybieraj

Ta korelacja jest furtką. Autorzy proponują Self-Route — dwuetapowy potok, który pozwala samemu modelowi decydować dla każdego zapytania, którą ścieżkę obrać:

  1. Najpierw RAG, z furtką awaryjną. Podaj modelowi pobrane fragmenty i poproś, by albo odpowiedział, albo uznał pytanie za niemożliwe do odpowiedzenia na podstawie tego, co mu pokazano — bez zgadywania.
  2. Eskaluj tylko to, co nierozstrzygnięte. Pytania oznaczone przez model jako niemożliwe do odpowiedzenia są uruchamiane ponownie z pełnym dokumentem w oknie; cała reszta zachowuje tanią odpowiedź z RAG.

Ponieważ RAG i długi kontekst już zgadzają się co do większości pytań, tylko mniejszość trafia kiedykolwiek na kosztowną ścieżkę. Rezultatem jest jakość odpowiedzi bliska podejściu „zawsze długi kontekst” przy koszcie bliskim podejściu „zawsze RAG”.

Właściwe pytanie rzadko brzmi „RAG czy długi kontekst?” — brzmi ono „którego z nich potrzebuje to konkretne zapytanie?”.

Co to oznacza dla Ciebie

Dla każdego, kto buduje na bazie LLM, wynikają z tego dwie rzeczy. Po pierwsze, większe okno kontekstu nie czyni wyszukiwania bezcelowym — zmienia jedynie to, kiedy po nie sięgasz. Po drugie, rozsądnym domyślnym podejściem nie jest „zawsze wrzucaj wszystko”, lecz „utrzymuj materiał w porządku, aby system mógł wyciągnąć właściwy wycinek, i płać za całość tylko wtedy, gdy pytanie naprawdę tego wymaga”.

Gdzie w to wpisuje się FocusLM

FocusLM przechowuje Twój materiał jako pamięć strukturalną zamiast jednego wciąż rozrastającego się promptu. To właśnie ta struktura umożliwia tanią ścieżkę: większość pytań otrzymuje odpowiedź na podstawie kilku istotnych plików z cytatami, a szerszy kontekst jest dostępny, gdy pytanie naprawdę go potrzebuje — ta sama logika „kieruj, nie wybieraj”, zastosowana do pamięci, która rośnie razem z Tobą.

Powiązane artykuły