Czym jest RAG? Retrieval-Augmented Generation wyjaśnione prosto
RAG (retrieval-augmented generation) to sposób, by model AI odpowiadał na pytania, korzystając z Twoich własnych informacji. Gdy ktoś zadaje pytanie, Twoja aplikacja najpierw przeszukuje dokumenty w poszukiwaniu najbardziej trafnych fragmentów, a potem przekazuje je modelowi razem z pytaniem. Model formułuje odpowiedź na podstawie tego tekstu, zamiast polegać wyłącznie na tym, czego nauczył się podczas treningu.
Dlaczego RAG ma znaczenie, gdy budujesz z AI
Duży model językowy wie sporo o świecie ogólnie, ale nic o Twojej firmie: o cenach, regulaminach, instrukcji produktu, zeszłotygodniowych zgłoszeniach do wsparcia. Ma też datę graniczną treningu, więc nie wie o niczym nowszym. Jeśli mimo to zapytasz, może podać pewną siebie, wiarygodnie brzmiącą, ale błędną odpowiedź.
Na to masz trzy główne podejścia:
| Podejście | Co robi | Dobre do |
|---|---|---|
| Wklejenie wszystkiego do promptu | Wysyłanie wszystkich dokumentów przy każdym pytaniu | Niewielkich ilości tekstu — kilku stron |
| RAG | Przeszukiwanie dokumentów i wysyłanie tylko istotnych części | Większych lub zmieniających się zbiorów: centrów pomocy, instrukcji, notatek |
| Fine-tuning | Dalsze trenowanie modelu na przykładach | Tonu, formatu i powtarzalnych zadań — nie faktów, które się zmieniają |
Nowoczesne modele przyjmują długie prompty, więc przy krótkim FAQ pierwsza opcja bywa wystarczająca. RAG zyskuje sens, gdy masz więcej tekstu, niż chcesz wysyłać za każdym razem — bo każde słowo kosztuje pieniądze i czas (zobacz jak liczone są opłaty za API LLM).
Jeśli budujesz funkcję „czat z naszymi dokumentami”, asystenta wsparcia albo wewnętrzne narzędzie wiedzy, prawie na pewno budujesz jakąś formę RAG.
Przykład z życia: egzamin z otwartą księgą
Wyobraź sobie egzamin z otwartą księgą. Uczeń, który musi odpowiadać z pamięci, może coś przekręcić albo blefować. Uczeń, któremu wolno najpierw przekartkować właściwe strony, przeczytać je i dopiero odpowiedzieć, jest znacznie bardziej wiarygodny — o ile znajdzie właściwe strony.
- Uczeń to model językowy.
- Podręcznik to Twoje dokumenty.
- Przekartkowanie do właściwych stron to wyszukiwanie (retrieval).
- Napisanie odpowiedzi na podstawie tych stron to generowanie.
RAG to wersja z otwartą księgą. I tak jak na egzaminie, jakość odpowiedzi w dużym stopniu zależy od tego, czy znaleziono właściwe strony.
Jak działa RAG krok po kroku
Typowy układ RAG ma dwie fazy.
Przygotowanie dokumentów (robione z wyprzedzeniem):
- Zbierz materiał źródłowy — artykuły pomocy, pliki PDF, regulaminy, dane o produktach.
- Podziel go na fragmenty (ang. chunks): długie dokumenty tnie się na mniejsze części, zwykle po kilka akapitów, żeby wyszukiwanie mogło zwrócić tylko istotny kawałek.
- Zamień każdy fragment na embedding: wyślij go do modelu embeddingów, który przekształca tekst w embedding — długą listę liczb oddających jego znaczenie. Teksty o podobnych sprawach mają podobne liczby.
- Zapisz fragmenty i ich embeddingi w bazie danych, która potrafi szukać po podobieństwie (często nazywanej wektorową bazą danych lub indeksem wektorowym).
Odpowiadanie na pytanie (robione za każdym razem):
- Zamień pytanie na embedding tym samym modelem.
- Pobierz fragmenty, których embeddingi są najbliższe pytaniu — powiedzmy pięć najlepszych.
- Zbuduj prompt: instrukcje, pobrane fragmenty i pytanie.
- Wygeneruj odpowiedź: model pisze ją na podstawie tych fragmentów, najlepiej podając, z których skorzystał.
Wyszukiwanie po znaczeniu sprawia, że to działa: pytanie o „odzyskanie pieniędzy” może znaleźć fragment zatytułowany „Polityka zwrotów”, mimo że nie mają wspólnych słów.
Przykład: asystent pomocy w siłowni
Załóżmy, że siłownia ma 40 artykułów pomocy i chce mieć na stronie asystenta czatu. Członek pyta: „Czy mogę zawiesić karnet, kiedy wyjeżdżam w podróż?”
Aplikacja zamienia pytanie na embedding i pobiera trzy najbliższe fragmenty. Jeden z nich brzmi:
Zawieszenie karnetu: Członkowie z karnetami miesięcznymi mogą zawiesić
karnet na maksymalnie 2 miesiące w roku. Wniosek złóż u recepcji
lub w aplikacji co najmniej 7 dni przed rozpoczęciem zawieszenia.
Prompt wysłany do modelu wygląda mniej więcej tak:
Jesteś asystentem pomocy w siłowni Northside Gym.
Odpowiadaj wyłącznie na podstawie poniższych źródeł. Jeśli odpowiedzi
w nich nie ma, powiedz, że nie wiesz, i zaproponuj kontakt z recepcją.
Podaj, z którego źródła korzystasz.
[Źródło 1: Zawieszenie karnetu] Członkowie z karnetami miesięcznymi mogą zawiesić...
[Źródło 2: Rezygnacja z członkostwa] ...
[Źródło 3: Karnety gościnne] ...
Pytanie: Czy mogę zawiesić karnet, kiedy wyjeżdżam w podróż?
Model odpowiada: „Tak — przy karnecie miesięcznym możesz zawiesić członkostwo na maksymalnie dwa miesiące w roku. Wniosek złóż u recepcji lub w aplikacji co najmniej 7 dni wcześniej (źródło: Zawieszenie karnetu).”
Siłownia niczego nie musiała trenować od nowa. Gdy zmieni zasady zawieszania, aktualizuje artykuł, aplikacja ponownie tworzy embedding tego fragmentu i następna odpowiedź to uwzględnia.
Kluczowe pojęcia
| Termin | Znaczenie |
|---|---|
| LLM | Duży model językowy — AI, która pisze odpowiedź. Zobacz czym jest LLM. |
| Embedding | Lista liczb oddających znaczenie fragmentu tekstu. |
| Model embeddingów | Model tworzący embeddingi. Zwykle osobny od modelu czatu i dużo tańszy. |
| Chunk (fragment) | Kawałek dokumentu, na tyle mały, by dało się go pobrać osobno. |
| Wektorowa baza danych / wyszukiwanie wektorowe | Magazyn, który znajduje elementy o podobnych embeddingach. Niektóre zwykłe bazy też to oferują — na przykład Postgres przez rozszerzenie pgvector. |
| Top-k | Ile fragmentów pobiera się na jedno pytanie. |
| Wyszukiwanie hybrydowe | Połączenie wyszukiwania po znaczeniu ze zwykłym wyszukiwaniem słów kluczowych, co pomaga przy dokładnych terminach, np. kodach produktów. |
| Okno kontekstu | Maksymalna ilość tekstu, jaką model przyjmie w jednym żądaniu. |
| Uziemienie / cytowania (grounding / citations) | Powiązanie odpowiedzi z konkretnymi pobranymi źródłami i ich pokazanie. |
Częste nieporozumienia
- „RAG trenuje model na moich danych.” Nie. Model się nie zmienia; w chwili pytania po prostu czyta dodatkowy tekst.
- „RAG oznacza koniec halucynacji.” Oznacza ich mniej. Jeśli wyszukiwanie przeoczy właściwy fragment albo odpowiedzi nie ma w dokumentach, model i tak może zgadywać. Poleć mu, by mówił „nie wiem”, i testuj pytaniami, na które znasz odpowiedź.
- „Potrzebuję specjalnej wektorowej bazy danych.” Często nie. Przy umiarkowanej ilości danych wystarczy rozszerzenie wektorowe w bazie, której już używasz, a nawet zwykłe wyszukiwanie słów kluczowych.
- „Większe fragmenty są lepsze.” Za duże — wysyłasz dużo nieistotnego tekstu (większy koszt, większy chaos); za małe — fragment traci kontekst, który sprawiał, że był zrozumiały. Trzeba to dostroić.
- „Wrzućmy wszystko.” Nieaktualne, zduplikowane lub sprzeczne dokumenty dają sprzeczne odpowiedzi. Uporządkowanie materiału źródłowego bywa największą poprawą.
- „Każdy może zobaczyć każdy dokument.” Tylko jeśli tak to zbudujesz. Jeśli niektóre dokumenty są prywatne dla określonych użytkowników, samo wyszukiwanie musi filtrować według tego, kto pyta — inaczej asystent może zacytować dane jednego klienta innemu.
Ile to kosztuje
Funkcja RAG zwykle ma trzy bieżące koszty: embedding dokumentów (niewielki i w większości jednorazowy), embedding każdego pytania (znikomy) oraz wywołanie modelu językowego (główny koszt, rosnący wraz z liczbą wysyłanych fragmentów). Do tego dochodzi przechowywanie w bazie danych. Dostawca AI rozlicza to na Twoim koncie, więc ustaw limit wydatków właśnie tam.
Czego zapytać swojego narzędzia AI do budowania
- „Zanim zbudujesz RAG, sprawdź: czy nasze treści są na tyle małe, że można je po prostu dołączyć do promptu?”
- „Podziel artykuły pomocy na fragmenty po kilka akapitów, zachowaj tytuł i link do źródła każdego fragmentu i zapisz embeddingi w naszej bazie danych.”
- „Użyj wyszukiwania hybrydowego — po znaczeniu i po słowach kluczowych — żeby kody produktów też się znajdowały.”
- „Poleć modelowi odpowiadanie wyłącznie na podstawie pobranych źródeł, mówienie, kiedy czegoś nie wie, i pokazywanie źródeł pod każdą odpowiedzią.”
- „Przeszukuj tylko dokumenty, które zalogowany użytkownik może zobaczyć.”
- „Generuj ponownie embedding dokumentu automatycznie, gdy zostanie edytowany.”
- „Trzymaj klucz dostawcy AI po stronie serwera, w sekrecie, nigdy w przeglądarce.”
- „Zapisuj każde pytanie, pobrane fragmenty i odpowiedź, żebym mógł przeglądać złe odpowiedzi.”
RAG w Mythex
Mythex nie zawiera gotowego produktu typu baza wiedzy ani RAG. Tworzy natomiast kod takiego rozwiązania w Twojej aplikacji: dostarczasz dokumenty i własny klucz dostawcy AI, zapisany jako sekret projektu, a agent buduje część wyszukiwania i czatu, używając do przechowywania bazy danych Postgres projektu. Użycie dostawcy AI rozlicza się na jego koncie, a nie w kredytach Mythex. Dokumentacja sugeruje zacząć od jednej prostej funkcji AI i dodać RAG, gdy ta zadziała — zobacz budowanie aplikacji AI oraz nasze przewodniki: jak zbudować aplikację czatbota AI i jak dodać funkcje AI do aplikacji.
Pytania
Czym jest RAG w prostych słowach?
RAG (retrieval-augmented generation) to sposób, by model AI odpowiadał na podstawie Twoich własnych informacji. Zanim model odpowie, Twoja aplikacja przeszukuje dokumenty w poszukiwaniu fragmentów najbardziej pasujących do pytania i dołącza je do promptu. Odpowiedź opiera się więc na tym tekście, a nie tylko na tym, czego model nauczył się w trakcie treningu.
Czy RAG trenuje AI na moich danych?
Nie. RAG w ogóle nie zmienia modelu. Wyszukuje odpowiedni tekst w chwili zadania pytania i przekazuje go modelowi razem z pytaniem. Gdy zaktualizujesz dokument, następna odpowiedź może od razu korzystać z nowej wersji.
Czy RAG to to samo co fine-tuning?
Nie. Fine-tuning zmienia zachowanie modelu, dalej go trenując na przykładach — jest to wolniejsze i lepsze do stylu lub formatu. RAG daje modelowi fakty do przeczytania w chwili pytania, co jest lepsze dla wiedzy, która się zmienia lub musi być cytowana dokładnie.
Czy RAG zatrzymuje halucynacje AI?
Zmniejsza je, ale nie eliminuje. Jeśli wyszukiwanie znajdzie niewłaściwe fragmenty albo odpowiedzi nie ma w Twoich dokumentach, model i tak może zgadywać. Dobre aplikacje RAG każą modelowi mówić, kiedy czegoś nie wie, i pokazują źródła, z których korzystały.