📚 Prompting w Retrieval-Augmented Generation (RAG)

Co to jest?

Retrieval-Augmented Generation, czyli RAG (Generowanie Wspomagane Pobieraniem), to technika, która zwiększa możliwości dużych modeli językowych poprzez łączenie ich z zewnętrznymi źródłami informacji. Można to porównać do zapewnienia modelowi językowemu dostępu do biblioteki wiedzy, z której może korzystać podczas generowania odpowiedzi. Takie podejście pomaga modelowi udzielać bardziej dokładnych, aktualnych i szczegółowych odpowiedzi, szczególnie w przypadku złożonych tematów wymagających specyficznych informacji.

Mówiąc prościej: podczas gdy standardowy model językowy generuje odpowiedzi wyłącznie na podstawie danych, na których został wytrenowany, RAG pozwala modelowi „odszukać” istotne informacje w zewnętrznych dokumentach lub bazach danych przed sformułowaniem odpowiedzi. Zmniejsza to ryzyko zmyślania informacji przez model (problem znany jako „halucynacje”) i zwiększa spójność faktograficzną.

RAG jest obecnie standardem branżowym w pracy z LLM, aby zapewnić jak największą dokładność przekazywanych informacji.

Jak to działa?

Oto jak RAG funkcjonuje krok po kroku:

  1. Otrzymanie pytania lub promptu: Model otrzymuje dane wejściowe lub pytanie od użytkownika.
  2. Pobieranie informacji: Przed wygenerowaniem odpowiedzi model przeszukuje zewnętrzne źródło wiedzy (np. Wikipedię lub specjalistyczną bazę danych), aby znaleźć dokumenty lub fragmenty informacji istotne dla danego pytania.
  3. Kontekstualizacja: Pobrane informacje są łączone z oryginalnym pytaniem. Ten wzbogacony kontekst dostarcza modelowi szczegółów niezbędnych do sformułowania dokładnej odpowiedzi.
  4. Generowanie odpowiedzi: Wykorzystując zarówno oryginalne pytanie, jak i pobrane informacje, model generuje odpowiedź opartą na najnowszych i najbardziej aktualnych danych.

Dzięki wprowadzeniu tego etapu pobierania, modele wyposażone w RAG mogą udzielać odpowiedzi odzwierciedlających aktualny stan wiedzy, nawet jeśli dane te nie były częścią ich oryginalnego zbioru treningowego.

Kiedy z tego korzystać?

RAG jest szczególnie przydatny w sytuacjach, gdy:

  • Kluczowa jest aktualność informacji: W tematach, które często ulegają zmianom, takich jak bieżące wydarzenia, najnowsze odkrycia naukowe czy ewoluujące przepisy.
  • Wymagana jest specjalistyczna wiedza: W dziedzinach wymagających szczegółowych informacji domenowych, takich jak prawo, medycyna czy inżynieria.
  • Dokładność i niezawodność są istotne: W zadaniach, w których błędne informacje mogłyby mieć poważne konsekwencje, np. w poradnictwie medycznym lub planowaniu finansowym.
  • Ograniczanie halucynacji: Gdy chcesz zmniejszyć szansę na to, że model wygeneruje brzmiące wiarygodnie, ale nieprawdziwe informacje.

Na przykład, jeśli budujesz chatbota do obsługi klienta, który musi dostarczać użytkownikom najnowsze informacje o produktach, zastosowanie RAG zapewni, że chatbot będzie odwoływał się do najbardziej aktualnych danych.

Przykład praktyczny

Zobaczmy, jak promptowanie RAG działa w praktyce na kilku podstawowych przykładach.

W prompcie systemowym

Prompt systemowy (ukryty przed użytkownikiem):

Jesteś asystentem, który udziela odpowiedzi w oparciu o najnowsze informacje. Gdy użytkownik zada pytanie, najpierw pobierzesz istotne dokumenty z naszej bazy wiedzy (twoje przesłane pliki) i wykorzystasz te informacje do wygenerowania odpowiedzi.

Implementacja:

Zanim asystent odpowie, przeszukuje bazę wiedzy w poszukiwaniu dokumentów związanych z pytaniem użytkownika. Dokumenty te są dodawane do kontekstu, którego asystent używa do sformułowania odpowiedzi.

W prompcie użytkownika

Prompt użytkownika:

„Czy możesz podać mi najnowsze ograniczenia w podróżowaniu związane z COVID-19 dla lotów międzynarodowych do Kanady?”

Proces:

  1. Pobieranie: Asystent przeszukuje najnowsze regulacje rządowe i lotnicze dotyczące ograniczeń w podróżowaniu do Kanady w związku z COVID-19.
  2. Generowanie: Wykorzystując pobrane informacje, asystent tworzy odpowiedź opisującą aktualne restrykcje, takie jak wymogi dotyczące szczepień, protokoły testowania i środki kwarantanny.

Odpowiedź asystenta:

„Według stanu na wrzesień 2023 r., pasażerowie międzynarodowi przylatujący do Kanady muszą być w pełni zaszczepieni przeciwko COVID-19. Akceptowane szczepionki to te zatwierdzone przez Światową Organizację Zdrowia. Podróżni są również zobowiązani do przedstawienia negatywnego wyniku testu na COVID-19 wykonanego w ciągu 72 godzin przed wylotem. Po przylocie mogą zostać przeprowadzone losowe testy, a osoby niezaszczepione mogą być zobowiązane do odbycia 14-dniowej kwarantanny. Przed podróżą prosimy o sprawdzenie najaktualniejszych informacji u swojego przewoźnika oraz na oficjalnej stronie rządowej Kanady”.

W tym przykładzie asystent nie polega wyłącznie na wiedzy zakodowanej w modelu. Zamiast tego pobiera najnowsze informacje, aby udzielić dokładnej i aktualnej odpowiedzi.

Stosując promptowanie RAG, możesz zwiększyć efektywność modeli językowych w dostarczaniu rzetelnych i precyzyjnych informacji, czyniąc je bardziej wartościowymi narzędziami w zadaniach zależnych od dokładności faktograficznej i aktualnej wiedzy.