Zaawansowane techniki RAG nie są lepsze. Są lepsze czasami.
Zaawansowane techniki RAG nie są darmowymi ulepszeniami. To narzędzia, które wiążą się z kompromisami.
Przetestowałem pięć metod wyszukiwania w potoku (pipeline) RAG, korzystając z dokumentacji Anthropic. Chciałem sprawdzić, które z nich faktycznie są warte swojej złożoności.
Oto co odkryłem:
• Dense Retrieval: Punkt odniesienia (baseline). Działa dobrze, ale pomija dokładne terminy. • Hybrid Search: Łączy wyszukiwanie gęste (dense) z wyszukiwaniem słów kluczowych. Znajduje dokładne terminy, które pomija metoda dense. Musisz jednak poprawnie ustawić wagi wyników, w przeciwnym razie sygnał zniknie. • Reranking: Wykorzystuje cross-encoder do oceniania kandydatów. Pomaga, gdy właściwy fragment (chunk) znajduje się zbyt nisko w wynikach. • HyDE: Wykorzystuje hipotetyczną odpowiedź do znajdowania danych. To rozwiązanie jest ryzykowne. Pomaga przy ogólnych zapytaniach, ale w przypadku zapytań bezpośrednich psuje wszystko. W jednym teście recall spadł z 0,80 do 0,17. • Contextual Retrieval: Dodaje podsumowania do fragmentów (chunks). Pomaga to przy krótkich fragmentach, ale wiąże się z wyższymi kosztami korzystania z LLM.
Najważniejszą lekcją jest ta dotycząca HyDE. To nie jest narzędzie typu „ustaw i zapomnij”. Powinieneś go używać tylko wtedy, gdy zapytanie użytkownika i Twoje dokumenty „mówią w różnych językach”. Potrzebujesz routera, aby zdecydować, kiedy go zastosować.
Nauczyłem się również czegoś o pomiarach.
Próbowałem użyć Ragas do ewaluacji. Było to zbyt wolne. Narzędzie spędzało godziny na ponawianiu nieudanych wywołań. Postanowiłem zbudować własny asynchroniczny mechanizm (async harness). Zamiast 11 godzin, moja ewaluacja trwała 221 sekund.
Nie traktuj narzędzi AI jak czarnych skrzynek. Jeśli narzędzie działa wolno lub zawodzi, przyjrzyj się matematyce, która za nim stoi. Jeśli musisz, zbuduj własne rozwiązanie.
Praca to nie tylko dodawanie nowych funkcji. Praca polega na mierzeniu, która funkcja zasługuje na miejsce w Twoim systemie.
Podsumowanie – kiedy czego używać:
- Hybrid: Używaj, gdy zapytania opierają się na dokładnych parametrach.
- HyDE: Używaj, gdy zapytania są sformułowane nieprecyzyjnie.
- Reranking: Używaj, gdy wyszukiwanie jest szerokie, ale mało dokładne.
- Contextual: Używaj, gdy Twoje fragmenty (chunks) są pozbawione kontekstu.
Przestań gonić za „state of the art”. Zacznij mierzyć swoje wyniki.
Źródło: https://dev.to/yogesh23012001/advanced-rag-techniques-arent-better-theyre-better-sometimes-4m2o
Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi
