RAG (generowanie wspomagane pobieraniem)
Generowanie wspomagane pobieraniem (RAG) to architektura, w której model językowy przed wygenerowaniem odpowiedzi pobiera z zewnętrznego indeksu fragmenty dokumentów semantycznie zbliżone do zapytania, a następnie włącza je do kontekstu generowania, co pozwala odpowiedzi opierać się na aktualnych, konkretnych źródłach.
Po angielsku: Retrieval-Augmented Generation.
Najważniejsze
- W potoku RAG strona jest dzielona na fragmenty na granicach akapitów i nagłówków, każdy fragment jest zamieniany na osobny wektor, a model pobiera top-k fragmentów przez podobieństwo semantyczne do zapytania.
- Fragment zawierający nierozwiązane zaimki lub odwołania do wcześniejszego kontekstu daje niespójny embedding i bywa pomijany przy pobieraniu, co obniża szansę cytowania danej treści.
- Sekcje otwierane bezpośrednią odpowiedzią są cytowane 2,6 razy częściej, co wskazuje, że samodzielność fragmentu ma znaczenie już na etapie selekcji (Presenc.ai).
Jak to działa
Potok RAG działa w dwóch fazach. W fazie indeksowania dokumenty są dzielone na fragmenty, zazwyczaj na granicach akapitów i nagłówków, a każdy fragment otrzymuje reprezentację wektorową (embedding). W fazie generowania zapytanie użytkownika jest zamieniane na wektor w tej samej przestrzeni, a silnik pobiera fragmenty o najwyższym podobieństwie semantycznym i umieszcza je w oknie kontekstowym modelu. Przykład: pytanie o cenę usługi trafia do fragmentu zawierającego konkretną kwotę, a model cytuje ten fragment w odpowiedzi. Treść, która niesie pełną myśl w obrębie jednego fragmentu, ma wyższą szansę trafienia do okna kontekstowego i pojawienia się w cytowaniu.
Powiązane pojęcia
- Dzielenie na fragmenty (chunking) Dzielenie na fragmenty to mechanizm przetwarzania treści w potokach RAG, w którym strona jest rozbijana na mniejsze, osobno osadzane w przestrzeni wektorowej jednostki tekstu, a następnie pobierana jest tylko ta jednostka, która semantycznie najlepiej odpowiada zapytaniu użytkownika.
- Wektor semantyczny (embedding) Wektor semantyczny (embedding) to liczbowa reprezentacja fragmentu tekstu w przestrzeni wielowymiarowej, w której bliskość między wektorami odpowiada bliskości znaczenia, co pozwala silnikowi RAG odnaleźć fragmenty treści semantycznie pasujące do zapytania użytkownika.
- Pobieranie źródeł (retrieval) Pobieranie źródeł to etap w potoku RAG, w którym silnik generatywny wyszukuje fragmenty tekstu semantycznie zbliżone do zapytania użytkownika, a następnie przekazuje je modelowi językowemu jako kontekst do sformułowania odpowiedzi.