Retrieval-Augmented Generation, w skrócie RAG, obiecuje to, co każdy z nas lubi: połączenie sprytnego wyszukiwania wiedzy z płynnym generowaniem tekstu. Brzmi świetnie, prawda? W praktyce jednak pod maską tej eleganckiej architektury czai się poważny, matematyczny problem, który może sprawić, że system spali na panewce w chwili, gdy naprawdę na nim zależy.
Co to w ogóle jest RAG?
- Użytkownik zadaje pytanie.
- Silnik „retrieval” tłumaczy je na wektor, szuka podobnych wektorów dokumentów i wybiera kilka najlepszych.
- Model generacyjny przygląda się wybranym fragmentom i tworzy odpowiedź.
Świetnie, ale… w tej wielowymiarowej przestrzeni wektorów (zazwyczaj kilkaset czy kilka tysięcy wymiarów) kryje się ograniczenie: nie każdy zestaw dokumentów da się wyróżnić, gdy liczba dokumentów zaczyna rosnąć.
Przykład: LIMIT
Wyobraźmy sobie 46 dokumentów i pytania typu „Kto lubi X i Y?”. Jest ich dokładnie 1 035 możliwych par. Naukowcy z DeepMind stworzyli taki zestaw (LIMIT) i… nawet największe modele wektorowe z 4 096 wymiarów rozpoznawały poprawnie zaledwie kilka procent z tych par.
Na czym polega błąd?
- Top-k to nie jest zwykły wybór: gdy pytamy o „najlepsze 5” dokumentów, w geometrii wektorów każde dodatkowe zapytanie pomnaża liczbę możliwych wyników wykładniczo.
- Limity wymiarów: dla każdego stałego wymiaru przestrzeni istnieją takie pytania, których prawidłowych wyników po prostu nie da się zakodować. To nie wina treningu, danych ani fine-tuningu – to czysta geometra.
- Skalowanie staje się niepraktyczne: żeby pokryć wszystkie kombinacje przy milionach dokumentów, trzeba by mieć wektory o wymiarach liczonych w setkach milionów.
Co robić, jeśli chcesz uniknąć tego błędu RAG?
- Hybyrydowe podejścia: łącz RAG z klasycznym wyszukiwaniem (sparse retrieval), żeby nadrobić luki.
- Multi-vector zamiast single-vector: podziel dokument na kilka wektorów, żeby zyskać więcej „kanałów” decydujących o wyborze top-k.
- Cross-encodery do weryfikacji: najpierw szybki wybór RAGem, potem dokładne sprawdzenie modelami cross-encoderowymi.
Podsumowanie
RAG to świetna idea, ale kryje w sobie ukrytą pułapkę: przestrzeń wektorowa o skończonej liczbie wymiarów nie jest w stanie uwzględnić wszystkich możliwych zestawów wyników, jakie mogą się pojawić przy dużej liczbie dokumentów. Na papierze działa – w praktyce trzeba się liczyć z lukami i wprowadzić dodatkowe mechanizmy ratunkowe.