RAG - co to jest i jak działa retrieval-augmented generation?
RAG to technika łącząca model językowy z wyszukiwaniem w zewnętrznej bazie wiedzy. Sprawdź, jak działa retrieval-augmented generation i gdzie się go stosuje.
Jako konsultant SEO, Paweł Wołoszyn, coraz częściej przy audytach patrzę nie tylko na to, jak strona wygląda dla klasycznego rankingu, ale i na to, czy da się z niej wyciąć samodzielny, trafny fragment, bo dokładnie tak działają systemy oparte na RAG, budujące odpowiedzi w AI Overviews czy w firmowych chatbotach. Najczęstszy błąd, jaki widzę przy wdrożeniach RAG na firmowej dokumentacji czy bazie wiedzy, to brak pomiaru, czy wyszukiwarka wewnętrzna w ogóle trafia na właściwy fragment, projekt rusza od razu z generowaniem odpowiedzi, pomijając jakość samego retrievalu. RAG to jednak nie jest gotowa gwarancja prawdy: to mechanizm, który zmniejsza ryzyko zmyślania faktów przez model, ale go nie eliminuje, więc traktowanie każdej odpowiedzi opartej na RAG jako bezbłędnej to błąd, z którym się spotykam. Dla treści na stronach klientów oznacza to konkretną zmianę w pisaniu: sekcje muszą odpowiadać wprost na pytanie w pierwszym zdaniu, żeby retriever miał co pobrać, zamiast rozwlekać definicję na kilka akapitów. Przy audytach i strategiach dla klientów pomagam ustawić strukturę treści tak, żeby działała dobrze zarówno pod klasyczne SEO, jak i pod systemy retrievalowe stojące za AI Overviews.
RAG - co to jest i jak działa retrieval-augmented generation?
RAG (retrieval-augmented generation) to technika łącząca duży model językowy z wyszukiwaniem w zewnętrznej bazie wiedzy, dzięki czemu odpowiedź opiera się na realnych dokumentach, nie tylko na wiedzy z treningu.
Co to jest RAG?
RAG to skrót od retrieval-augmented generation, czyli generowania wzbogaconego o wyszukiwanie. Termin wprowadził w maju 2020 roku zespół badaczy Facebook AI Research (dziś Meta AI) wraz z University College London i New York University, w pracy „Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks" (Patrick Lewis i współautorzy, opublikowana 22 maja 2020, przyjęta na konferencję NeurIPS 2020). Opisali w niej model łączący pamięć parametryczną, czyli wiedzę zapisaną w wagach wytrenowanej sieci typu seq2seq, z pamięcią nieparametryczną: gęstym indeksem wektorowym Wikipedii, przeszukiwanym dopiero w momencie zadania pytania.
W praktyce RAG to architektura, w której model generatywnej sztucznej inteligencji najpierw pobiera pasujące fragmenty tekstu z osobnej bazy danych, a dopiero potem na ich podstawie formułuje odpowiedź. Autorzy oryginalnej pracy zaproponowali dwa warianty: RAG-Sequence, który do wygenerowania całej odpowiedzi używa tego samego zestawu pobranych fragmentów, oraz RAG-Token, który przy każdym kolejnym tokenie może sięgnąć po inny fragment.
RAG a zwykły model językowy bez wyszukiwania
Standardowy model językowy (LLM) odpowiada wyłącznie na podstawie danych, na których był trenowany, więc nie wie nic o zdarzeniach czy dokumentach nowszych niż jego cutoff, a przy pytaniach wykraczających poza tę wiedzę często zmyśla, czyli halucynuje. RAG dokłada do tego procesu krok wyszukiwania: model dostaje w kontekście fragmenty realnych dokumentów i na nich opiera odpowiedź, więc może wskazać źródło i działać na danych, które nie istniały w chwili jego treningu.
Jak działa RAG krok po kroku?
Cały proces sprowadza się do trzech etapów: przygotowania bazy wiedzy, wyszukania pasujących fragmentów i wygenerowania odpowiedzi na ich podstawie.
- Indeksowanie źródeł: dokumenty (strony, PDF-y, bazy wiedzy) dzieli się na mniejsze fragmenty i zamienia na embeddingi, czyli wektory liczb opisujące ich znaczenie, które trafiają do bazy wektorowej.
- Retrieval: zapytanie użytkownika też zamienia się na wektor i porównuje z zawartością bazy w ramach wyszukiwania wektorowego, żeby znaleźć najbardziej pasujące fragmenty.
- Augmentacja i generacja: znalezione fragmenty dokleja się do promptu jako dodatkowy kontekst, a model językowy generuje odpowiedź, która się na nich opiera.
Zamiana dokumentów na fragmenty i embeddingi
Zanim retrieval w ogóle zadziała, dokumenty trzeba podzielić na mniejsze kawałki, czyli wykonać chunking. OpenAI w dokumentacji swoich vector store'ów domyślnie dzieli treść na fragmenty liczące do 800 tokenów, z zakładką (overlap) do 400 tokenów, w dopuszczalnym przedziale od 100 do 4096 tokenów na fragment. Zbyt duży fragment rozmywa trafność wyszukiwania, zbyt mały odcina go od kontekstu, w którym się znajdował.
Wyszukiwanie najbardziej trafnych fragmentów
System retrievalu porównuje wektor zapytania z wektorami zapisanymi w bazie i zwraca zwykle kilka do kilkunastu najbliższych fragmentów (tzw. top-k). Może przy tym łączyć wyszukiwanie semantyczne, po znaczeniu, z klasycznym wyszukiwaniem leksykalnym typu BM25, po słowach kluczowych, żeby nie zgubić dopasowań, których sam embedding nie wyłapie.
Generowanie odpowiedzi na podstawie kontekstu
Na końcu model językowy dostaje pytanie użytkownika razem z pobranymi fragmentami i generuje odpowiedź tak, jakby czytał je na bieżąco. Dzięki temu może zacytować, z którego dokumentu wziął informację, czego zwykły model bez retrievalu zrobić nie potrafi.
Jak RAG wykorzystują wyszukiwarki i asystenci AI?
Retrieval-augmented generation to dziś jeden z filarów tego, jak wyszukiwarki i asystenci AI budują odpowiedzi na podstawie realnych stron, a nie tylko wiedzy z treningu modelu.
RAG w AI Overviews i AI Mode Google
Google w dokumentacji Search Central opisuje mechanizm query fan-out: zamiast jednego zapytania system wysyła wiele powiązanych wyszukiwań, żeby zebrać szerszy zestaw trafnych stron, na podstawie których buduje odpowiedź w AI Overviews i AI Mode. Google wprost zaznacza, że nie trzeba żadnych dodatkowych znaczników ani specjalnego schema.org, by pojawić się w tych funkcjach, wystarczą standardowe wymagania techniczne wyszukiwarki i treść pomocna dla użytkownika.
RAG jako forma groundingu w Google Cloud
W dokumentacji Vertex AI Google opisuje RAG jako jedną z form szerszego mechanizmu zwanego groundingiem, czyli opierania odpowiedzi modelu na zewnętrznych, sprawdzalnych źródłach, obok groundingu wynikami Google Search czy Google Maps. To rozróżnienie jest istotne: RAG to konkretna technika retrievalu z własnej bazy wiedzy, grounding to szersza kategoria technik uwiarygadniania odpowiedzi modelu.
RAG a optymalizacja pod odpowiedzi AI
Skoro asystenci AI i wyszukiwarki konwersacyjne odpowiadają na bazie pobranych fragmentów stron, treść musi być tak napisana, żeby dało się z niej wyciąć samodzielny, trafny fragment bez utraty kontekstu. To właśnie leży u podstaw AEO: strukturyzowania treści pod kątem cytowań w odpowiedziach AI, a nie tylko pod klasyczne pozycje w wynikach wyszukiwania.
Przykłady zastosowań RAG w biznesie
Poza wyszukiwarkami RAG najczęściej trafia do systemów, które muszą odpowiadać na podstawie konkretnej, zamkniętej bazy wiedzy, a nie ogólnej wiedzy modelu.
- Chatboty obsługi klienta: odpowiadają na podstawie dokumentacji produktowej i regulaminów firmy, zamiast zgadywać na podstawie ogólnej wiedzy modelu.
- Wewnętrzne wyszukiwarki wiedzy: pozwalają pracownikom zadawać pytania własnym bazom wiedzy, dokumentacji technicznej czy procedurom firmowym.
- Analiza dużych zbiorów dokumentów: w badaniach, prawie czy compliance, gdzie trzeba szybko znaleźć i wskazać właściwy fragment aktu prawnego lub umowy.
- Asystenci nad dokumentacją produktu: odpowiadają na pytania techniczne w oparciu o aktualną wersję dokumentacji, a nie na tę sprzed roku, z której model był trenowany.
RAG a fine-tuning i inne pojęcia
RAG często myli się z douczaniem modelu, czyli fine-tuningiem, bo oba podejścia mają dostarczyć modelowi wiedzy, której nie miał w bazowym treningu. Różnią się jednak sposobem, w jaki tę wiedzę przechowują.
| Kryterium | RAG | Fine-tuning |
|---|---|---|
| Gdzie jest wiedza | W zewnętrznej bazie dokumentów, poza wagami modelu | W wagach modelu, dopisana podczas dodatkowego treningu |
| Aktualizacja | Wystarczy podmienić lub dopisać dokumenty w bazie | Wymaga ponownego treningu na nowych danych |
| Koszt wdrożenia | Niższy, bez trenowania modelu | Wyższy, potrzebne dane treningowe i moc obliczeniowa |
| Źródło odpowiedzi | Można wskazać konkretny dokument, z którego wzięto fragment | Model nie wskaże, skąd „pamięta" daną informację |
| Typowe zastosowanie | Aktualne fakty, dane firmowe, dokumentacja | Styl wypowiedzi, format, wąska specjalizacja językowa |
Oba podejścia można też łączyć: model doucza się pod kątem stylu i formatu odpowiedzi, a RAG dostarcza mu aktualnej wiedzy faktograficznej z zewnętrznej bazy.
Pułapki i najczęstsze błędy przy wdrażaniu RAG
RAG zmniejsza ryzyko halucynacji, ale go nie eliminuje, a źle skonfigurowany system potrafi wprowadzać własne problemy.
Fragmenty wyrwane z kontekstu
Anthropic w opisie techniki Contextual Retrieval podaje przykład: fragment „przychody spółki wzrosły o 3% względem poprzedniego kwartału" nic nie mówi, o której spółce i którym kwartale mowa, jeśli te informacje zostały odcięte przy dzieleniu dokumentu na kawałki. W testach Anthropic dodanie krótkiego, wygenerowanego kontekstu do każdego fragmentu przed jego zaindeksowaniem zmniejszyło odsetek nietrafionych wyszukiwań w top-20 wyników z 5,7% do 3,7%, a w połączeniu z wyszukiwaniem leksykalnym BM25, do 2,9%. Z dodatkowym rerankingiem odsetek błędów spadł do 1,9%.
Model i tak halucynuje, mimo dobrych źródeł
Sam dostęp do trafnych dokumentów nie gwarantuje poprawnej odpowiedzi: model może źle zinterpretować pobrany fragment, pomieszać sprzeczne informacje z kilku źródeł albo nie zasygnalizować, że w bazie brakuje odpowiedzi na pytanie, i mimo to coś odpowiedzieć.
Zbyt duże lub zbyt małe fragmenty
Dobór wielkości chunku to kompromis: zbyt krótki fragment traci kontekst potrzebny do trafnej odpowiedzi, zbyt długi rozmywa embedding i utrudnia precyzyjne dopasowanie do pytania. Dlatego dostawcy narzędzi RAG, jak wspomniany wcześniej OpenAI, domyślnie proponują konkretne zakresy długości i zachodzenia na siebie fragmentów, zamiast zostawiać to zgadywaniu.
Brak pomiaru jakości retrievalu
Wdrożenie RAG bez sprawdzenia, jak często retriever w ogóle znajduje właściwy fragment, to wdrożenie na wiarę. Bez takiego pomiaru trudno ocenić, czy problem z jakością odpowiedzi leży w samym wyszukiwaniu, czy dopiero w modelu generującym tekst na jego podstawie.
Źródła
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis i in., 2020) – arXiv – https://arxiv.org/abs/2005.11401
- Retrieval-augmented generation – Wikipedia – https://en.wikipedia.org/wiki/Retrieval-augmented_generation
- AI features in Search – Google Search Central – https://developers.google.com/search/docs/appearance/ai-features
- What is retrieval-augmented generation (RAG)? – Google Cloud – https://cloud.google.com/use-cases/retrieval-augmented-generation
- Grounding overview – Vertex AI, Google Cloud – https://docs.cloud.google.com/vertex-ai/generative-ai/docs/grounding/overview
- Introducing Contextual Retrieval – Anthropic – https://www.anthropic.com/news/contextual-retrieval
- Retrieval – OpenAI Platform docs – https://developers.openai.com/api/docs/guides/retrieval
Najczęściej zadawane pytania (FAQ)
Czym RAG różni się od zwykłego modelu językowego (LLM)?
Zwykły LLM odpowiada wyłącznie na podstawie wiedzy zapisanej w swoich wagach podczas treningu, więc nie zna zdarzeń nowszych niż jego cutoff. RAG dokłada krok wyszukiwania: przed wygenerowaniem odpowiedzi model dostaje w kontekście fragmenty realnych, aktualnych dokumentów pobranych z zewnętrznej bazy i na nich opiera odpowiedź.
Czy RAG całkowicie eliminuje halucynacje AI?
Nie, tylko je ogranicza. Model wciąż może źle zinterpretować pobrany fragment, pomieszać sprzeczne informacje z kilku źródeł albo odpowiedzieć na siłę mimo braku trafnego dokumentu w bazie. RAG zmniejsza ryzyko zmyślania faktów, ale nie daje gwarancji stuprocentowej poprawności.
Czym różni się RAG od fine-tuningu modelu?
RAG przechowuje wiedzę poza modelem, w zewnętrznej bazie dokumentów, którą można podmienić bez ponownego trenowania. Fine-tuning zapisuje wiedzę w wagach modelu podczas dodatkowego treningu, co jest kosztowniejsze i trudniejsze do szybkiej aktualizacji. Oba podejścia można też łączyć.
Czy do wdrożenia RAG zawsze potrzebna jest baza wektorowa?
W klasycznym ujęciu tak, retrieval semantyczny opiera się na porównywaniu embeddingów w bazie wektorowej. Część systemów łączy to jednak z klasycznym wyszukiwaniem leksykalnym typu BM25 po słowach kluczowych, żeby złapać dopasowania, których sam embedding może nie wychwycić.
Jak RAG wpływa na widoczność treści w odpowiedziach AI?
Wyszukiwarki takie jak Google budują AI Overviews i AI Mode na podstawie fragmentów pobranych z realnych stron, korzystając z mechanizmu query fan-out, czyli wielu powiązanych wyszukiwań naraz. Żeby fragment strony dało się trafnie pobrać i zacytować, treść musi odpowiadać wprost na pytanie, bez rozwlekania definicji na kilka akapitów.
Ile kosztuje wdrożenie systemu RAG?
Dokładny koszt zależy od skali danych, wybranej bazy wektorowej i modelu generującego odpowiedzi, więc nie da się podać jednej uniwersalnej kwoty. W porównaniu do fine-tuningu modelu RAG zwykle wychodzi taniej na start, bo nie wymaga trenowania własnego modelu, a jedynie zbudowania i utrzymania bazy wiedzy oraz mechanizmu wyszukiwania.