Artykuł Technologie

RAG (Retrieval-Augmented Generation) - co to jest i jak dziala

W skrócie: RAG (Retrieval-Augmented Generation) to technika, która przed odpowiedzią dokleja do pytania fragmenty Twoich własnych dokumentów, a dopiero potem model językowy generuje odpowiedź. Efekt: AI odpowiada z aktualnej wiedzy, podaje źródło i rzadziej zmyśla.

RAG rozwiązuje jeden konkretny problem. Duży model językowy zna tylko to, co widział podczas treningu - jego wiedza jest zamrożona na dacie zakończenia uczenia i nie ma pojęcia o Twojej umowie, regulaminie czy wczorajszym raporcie. Zapytaj go o wewnętrzną procedurę firmy, a albo powie "nie wiem", albo - gorzej - pewnym tonem wymyśli odpowiedź. To drugie nazywamy halucynacją. RAG wstawia między pytanie a model warstwę wyszukiwania, która najpierw znajduje pasujące fragmenty w Twojej bazie wiedzy, a potem podaje je modelowi jako kontekst.

Co oznacza skrót RAG

RAG to skrót od angielskiego Retrieval-Augmented Generation, po polsku "generowanie wspomagane wyszukiwaniem". Nazwa opisuje dokładnie to, co system robi: generowanie odpowiedzi (generation) jest wzbogacone (augmented) o wcześniejsze wyszukanie danych (retrieval). Termin pochodzi z pracy naukowej Facebook AI z 2020 roku i dziś jest standardowym podejściem do budowy asystentów opartych o własne dane.

Najważniejsze: RAG nie jest osobnym modelem AI. To architektura - sposób spięcia trzech elementów (bazy wektorowej, mechanizmu wyszukiwania i modelu językowego) w jeden przepływ. Ten sam model, na przykład Llama czy polski Bielik, raz użyjesz "na sucho", a raz w trybie RAG - różnica jest w tym, co dostaje na wejściu.

Jak działa RAG - dwa etapy

Mechanizm RAG dzieli się na dwa główne etapy. Pod maską wygląda to tak:

  1. Retrieval (wyszukiwanie). Gdy zadajesz pytanie, system nie idzie od razu do modelu. Najpierw zamienia pytanie na wektor liczb (embedding) i przeszukuje bazę wektorową w poszukiwaniu fragmentów tekstu, które znaczeniowo pasują do zapytania. Zwraca kilka najbardziej trafnych kawałków - to mogą być akapity z Twojej dokumentacji, wpisy z bazy wiedzy albo fragmenty PDF-a.
  2. Generation (generowanie). Znalezione fragmenty system dokleja do Twojego pytania jako dodatkowy kontekst i dopiero tak przygotowana całość trafia do modelu językowego. Model formułuje odpowiedź na podstawie dostarczonych danych, a nie tylko tego, co zapamiętał z treningu.

W praktyce między tymi etapami dzieje się jeszcze przygotowanie danych, które robisz raz, zanim zadasz pierwsze pytanie. Dokumenty trzeba pociąć na mniejsze kawałki (chunking), przepuścić każdy kawałek przez model embeddujący i zapisać powstałe wektory w bazie. Dopiero taka baza nadaje się do szybkiego przeszukiwania.

Baza wektorowa i embeddingi - serce RAG

Cała magia retrieval siedzi w tym, jak system porównuje pytanie z dokumentami. Nie robi tego przez dopasowanie słów kluczowych jak zwykła wyszukiwarka. Zamiast tego każdy fragment tekstu zamieniany jest na embedding - długi ciąg liczb, który reprezentuje znaczenie tego fragmentu. Teksty o podobnym sensie mają podobne wektory, nawet jeśli używają innych słów.

Baza wektorowa to specjalny magazyn na te wektory. Jej zadanie: dostać wektor pytania i błyskawicznie zwrócić najbliższe mu wektory dokumentów. Dzięki temu na pytanie "jak zwrócić towar" system znajdzie akapit o "procedurze reklamacji", choć nie pada w nim słowo "zwrot". Popularne bazy wektorowe to Chroma, Qdrant, Weaviate i pgvector - ten ostatni to rozszerzenie do zwykłego PostgreSQL, więc zmieścisz cały RAG na jednym serwerze.

Konkret: jakość embeddingów decyduje o jakości całego systemu. Słaby model embeddujący albo źle pocięte dokumenty i retrieval poda modelowi nieistotne fragmenty - a wtedy nawet najlepszy LLM odpowie od rzeczy. To zasada "śmieć na wejściu, śmieć na wyjściu" w czystej postaci.

Po co RAG - konkretne zastosowania

RAG nie jest sztuką dla sztuki. Rozwiązuje problemy, które w czystym modelu są nie do przejścia:

  • Chat z własnymi dokumentami. Wrzucasz umowy, instrukcje, dokumentację techniczną i pytasz o nie w języku naturalnym. Model odpowiada treściami z Twoich plików, nie z internetu. To najczęstszy scenariusz w firmach.
  • Aktualna wiedza. Model z treningiem zamkniętym rok temu nie zna nowego cennika ani zmiany w regulaminie. Podepnij te dokumenty przez RAG, a odpowiedzi natychmiast są aktualne - bez dotrenowywania modelu.
  • Podawanie źródeł. System wie, z którego fragmentu wziął odpowiedź, więc może go zacytować. To ogromna różnica przy dokumentach prawnych czy medycznych, gdzie musisz sprawdzić, skąd wzięła się dana teza.
  • Prywatność danych. Cała baza wiedzy zostaje u Ciebie. Jeśli spniesz RAG z modelem uruchomionym lokalnie, wrażliwe dokumenty nigdy nie opuszczają Twojego serwera.

Właśnie dlatego RAG stał się domyślnym sposobem budowy firmowych asystentów. Zamiast uczyć model od nowa za każdym razem, gdy zmieni się dokument, po prostu aktualizujesz bazę wiedzy.

RAG a fine-tuning - czym się różnią

To pytanie wraca za każdym razem, gdy ktoś chce "nauczyć model swoich danych". Są dwie drogi i łatwo je pomylić.

Fine-tuning to dotrenowanie modelu na własnym zbiorze przykładów. Zmieniasz wagi modelu, żeby zmienić jego zachowanie albo styl - na przykład żeby pisał językiem Twojej marki albo lepiej radził sobie z konkretnym typem zadania. Wiedza wchodzi "do środka" modelu.

RAG niczego nie zmienia w modelu. Wiedza zostaje na zewnątrz, w bazie, i jest dostarczana modelowi w momencie zapytania.

Trade-off wygląda tak:

Kryterium RAG Fine-tuning
Do czego służy dostarczenie faktów i aktualnej wiedzy zmiana stylu, tonu, zachowania modelu
Aktualizacja wiedzy podmieniasz dokument w bazie, gotowe trzeba dotrenować model od nowa
Koszt wejścia niski, bez GPU do treningu wyższy, wymaga danych i mocy obliczeniowej
Źródła odpowiedzi tak, można cytować fragment nie, wiedza jest rozmyta w wagach
Ryzyko halucynacji niższe przy dobrym retrieval model nadal może zmyślać

W praktyce: jeśli chcesz, żeby AI znała Twoje dokumenty i fakty, zacznij od RAG. Fine-tuning bierz pod uwagę, gdy chodzi o sposób odpowiadania, a nie o wiedzę. Te podejścia się nie wykluczają - poważne wdrożenia łączą jedno z drugim.

Jak zbudować własny RAG lokalnie

Dobra wiadomość: nie musisz pisać tego od zera ani płacić za chmurę. Cały RAG postawisz na własnym sprzęcie z gotowych klocków.

Najprostsza ścieżka to AnythingLLM - prywatny chat z własnymi dokumentami, dzięki czemu żadne dane nie idą do chmury. To najkrótsza droga od zera do działającego chatu z dokumentami.

Jeśli wolisz interfejs w przeglądarce, podobny efekt osiągniesz w Open WebUI z jego funkcją bazy wiedzy oraz GPT4All, spinając bazę wektorową z modelem w wizualnym workflow.

Pro tip: zacznij od małego zbioru dokumentów i sprawdź jakość odpowiedzi, zanim wrzucisz całą firmową dokumentację. Zobaczysz od razu, czy chunking i model embeddujący dobrze trafiają we fragmenty - a to najczęstsze źródło słabych odpowiedzi.

Najczęstsze pytania (FAQ)

Co to jest RAG w AI?

RAG (Retrieval-Augmented Generation) to technika łącząca wyszukiwanie informacji z generowaniem tekstu. System najpierw znajduje w bazie wiedzy fragmenty pasujące do pytania, potem dokleja je do zapytania jako kontekst, a model językowy formułuje odpowiedź na podstawie tych danych. Dzięki temu AI operuje na Twoich własnych, aktualnych źródłach.

Jakie są 2 etapy RAG?

RAG dzieli się na retrieval i generation. W etapie retrieval system zamienia pytanie na wektor i przeszukuje bazę wektorową, zwracając najbardziej trafne fragmenty dokumentów. W etapie generation te fragmenty trafiają do modelu językowego jako kontekst, a model tworzy końcową odpowiedź opartą o dostarczone treści.

Czy ChatGPT to RAG?

Częściowo. Podstawowy model ChatGPT działa jak zwykły LLM i odpowiada z wiedzy z treningu. Ale gdy korzysta z przeglądania sieci albo z wgranych przez Ciebie plików, dokleja pobrane dane do zapytania - i wtedy zachowuje się jak system RAG. Sam mechanizm RAG jest niezależny od konkretnego modelu.

Czym różni się RAG od fine-tuningu?

RAG dostarcza wiedzę z zewnątrz w momencie zapytania i niczego nie zmienia w modelu - wystarczy podmienić dokument w bazie. Fine-tuning dotrenowuje sam model, zmieniając jego wagi, i służy raczej zmianie stylu niż dostarczaniu faktów. Do pracy na własnych dokumentach zacznij od RAG.

Czy do RAG potrzebuję bazy wektorowej?

Tak, to element obowiązkowy klasycznego RAG. Baza wektorowa przechowuje embeddingi dokumentów i pozwala błyskawicznie znaleźć fragmenty najbliższe znaczeniowo pytaniu. W lokalnych narzędziach jak AnythingLLM baza jest wbudowana, więc nie musisz jej stawiać osobno - działa pod spodem bez Twojej ingerencji.

Czy RAG działa z modelami uruchomionymi lokalnie?

Tak i to jeden z jego największych atutów. RAG spniesz z modelem odpalonym przez Ollamę czy Jan.ai, dzięki czemu cały przepływ - dokumenty, baza wektorowa i model - zostaje na Twoim sprzęcie. Żadne wrażliwe dane nie idą do zewnętrznej chmury, co dla firm pracujących na poufnych plikach jest wymogiem, nie wygodą.