Podręcznik uczestnika z objaśnieniami, przykładami i ćwiczeniami do samodzielnej nauki do Modułu 1
6. Podstawowa idea systemu RAG
RAG to skrót od Retrieval Augmented Generation, czyli generowania wspomaganego wyszukiwaniem.
W odpowiedzi na pytanie system najpierw wyszukuje przydatne informacje, a następnie przekazuje je modelowi wraz z pytaniem i instrukcją odpowiedzi. Model nadal generuje tekst, ale otrzymuje dodatkową podstawę pochodzącą z wybranych dokumentów.
Rozróżnij przygotowanie bazy wiedzy oraz obsługę pojedynczego pytania. Dokumenty można przetworzyć i uporządkować wcześniej. Gdy użytkownik zadaje pytanie, aplikacja wykorzystuje przygotowany zbiór, wybiera fragmenty i buduje wejście dla modelu. Nie trzeba za każdym razem od początku przygotowywać wszystkich plików.
Przygotowanie źródeł i odpowiedź na pytanie
| Kiedy | Czynność | Rezultat |
|---|---|---|
| Przed pytaniem | Zebranie i odczyt dokumentów | Tekst oraz informacja o pochodzeniu |
| Przed pytaniem | Podział na fragmenty i opis metadanymi | Fragmenty możliwe do odnalezienia |
| Przed pytaniem | Przygotowanie mechanizmu wyszukiwania | Zbiór lub indeks do przeszukiwania |
| Po pytaniu | Wyszukanie fragmentów pasujących do pytania | Kandydaci na kontekst |
| Po pytaniu | Złożenie promptu i wygenerowanie odpowiedzi | Odpowiedź z odniesieniami do źródeł |
| Po odpowiedzi | Sprawdzenie twierdzeń i wskazań źródeł | Ocena oraz lista ewentualnych braków |
Dwa zasadnicze etapy odpowiedzi RAG to wyszukiwanie i generowanie. Weryfikacja wyniku jest potrzebną częścią pracy z systemem, lecz nie należy mylić jej z gwarancją zapewnianą automatycznie przez samą nazwę RAG.
Co wyszukuje system
Wyszukiwanie może opierać się na słowach, reprezentacjach wektorowych albo połączeniu metod. Embedding to liczbowa reprezentacja tekstu, którą można wykorzystać do porównywania fragmentów pod kątem podobieństwa. Baza lub indeks wektorowy pomaga odnajdywać takie reprezentacje. Sama obecność bazy wektorowej nie wystarcza jednak, aby otrzymać kompletny system odpowiadania.
Podobieństwo nie jest dowodem prawdziwości ani przydatności do każdego pytania. Sekcje 5.2 i 6.1 dotyczą tego samego fikcyjnego systemu, ale odpowiadają na inne potrzeby. Dlatego ocenia się także trafność wyszukania, a nie tylko płynność końcowej odpowiedzi.
Przepływ informacji w przykładzie DocAssist
Schemat poniżej opisuje logikę działania; nie jest kodem do uruchomienia.
W ręcznym ćwiczeniu z rozdziału 3 rolę wybierającego fragment pełnisz Ty. W RAG robi to mechanizm wyszukiwania. Generowanie może wykorzystywać ten sam model w obu przypadkach. Różnica dotyczy przede wszystkim sposobu przygotowania kontekstu i zachowania informacji o źródle.
RAG nie jest tym samym co dostrajanie modelu — dokument zostaje przekazany jako kontekst bez zmiany parametrów LLM. Nie jest też sam w sobie agentem wykonującym działania. Dodanie narzędzi zmienia zakres możliwości aplikacji; pokazanie komendy w odpowiedzi nie oznacza jej wykonania.
Przeczytaj trzy sytuacje i wskaż etap wymagający sprawdzenia.
Sytuacja A: w pliku źródłowym występuje warunek „wynik inny niż active”, lecz po podziale tekstu fragment z komendą nie zawiera tego warunku.
Sytuacja B: pełna sekcja 5.2 jest w bazie, ale wyszukiwanie zwraca wyłącznie sekcję 6.1.
Sytuacja C: model otrzymuje pełną sekcję 5.2, a odpowiada, że usługę trzeba uruchomić ponownie trzy razy.
- Przypisz każdą sytuację do przygotowania fragmentów, wyszukiwania lub generowania.
- Dla każdej zapisz jedną kontrolę, która pomogłaby wykryć problem.
- Wyjaśnij, dlaczego zamiana modelu na większy nie musi usunąć problemu w sytuacji B.