Generowanie wspomagane wyszukiwaniem

Technika łącząca model językowy z wyszukiwaniem w zewnętrznej bazie wiedzy, aby odpowiedzi opierały się na aktualnych, konkretnych dokumentach. Ogranicza halucynacje.

Generowanie wspomagane wyszukiwaniem (Retrieval-Augmented Generation, RAG) to technika, w której model językowy (LLM) zanim cokolwiek napisze, najpierw dostaje do ręki garść konkretnych dokumentów wyszukanych w zewnętrznej bazie wiedzy. Zamiast odpowiadać wyłącznie z tego, co „zapamiętał” podczas treningu, model opiera odpowiedź na materiałach, które podsuwasz mu na bieżąco. Dzięki temu odpowiedzi są aktualne, osadzone w Twoich danych i łatwiejsze do zweryfikowania, bo wiadomo, z jakiego źródła pochodzą.

Jak to działa

Pipeline RAG ma dwie fazy. Najpierw indeksowanie: dzielisz dokumenty na fragmenty (chunki), zamieniasz każdy na embedding (wektor liczb opisujący znaczenie) i wrzucasz do bazy wektorowej. Potem retrieval: pytanie użytkownika też zamieniasz na embedding, wyszukujesz najbardziej podobne fragmenty (zwykle przez podobieństwo kosinusowe) i doklejasz je do promptu jako kontekst.

Model dostaje więc prompt w stylu „odpowiedz na pytanie, korzystając z poniższych fragmentów” plus same fragmenty. To dlatego RAG bije fine-tuning w wielu zastosowaniach: żeby dodać nową wiedzę, nie musisz przetrenowywać modelu — wystarczy zaktualizować bazę dokumentów.

Przykład z praktyki

Budujesz bota odpowiadającego na pytania o wewnętrzną dokumentację firmy. Używasz biblioteki LangChain albo LlamaIndex do podziału plików, modelu embeddingów (np. text-embedding-3-small) i bazy wektorowej Chroma lub pgvector. Gdy pracownik pyta „jak skonfigurować VPN?”, system wyciąga 3-4 najtrafniejsze akapity z firmowego wiki i przekazuje je modelowi razem z pytaniem. Odpowiedź dotyczy Twojej procedury, a nie ogólników z internetu — i możesz pokazać, z którego dokumentu pochodzi.

Na co uważać

  • Garbage in, garbage out. Jeśli retrieval wyciągnie nietrafione fragmenty, model i tak wygeneruje pewną siebie bzdurę. Jakość wyszukiwania jest ważniejsza niż sam model.
  • RAG nie likwiduje halucynacji w 100%. Ogranicza je, bo daje model konkretną podstawę, ale model wciąż potrafi „dopowiedzieć” coś spoza kontekstu. Warto wymuszać cytowanie źródeł.
  • Rozmiar chunków ma znaczenie. Za duże fragmenty rozmywają sens, za małe gubią kontekst. To parametr, który realnie stroisz.
  • Limit kontekstu. Nie wepchniesz całej bazy do promptu — dlatego cały sens polega na wybraniu tylko najtrafniejszych kawałków.

Pojęcia powiązane: embeddingi, baza wektorowa (vector database), LLM, fine-tuning, prompt engineering, podobieństwo kosinusowe, chunking, halucynacje modelu.