Czym jest architektura RAG? Pełna definicja ze szczegółowymi praktycznymi przykładami

Architektura RAG to zestaw komponentów, które przechowują, pobierają i przekazują modelowi LLM informacje zewnętrzne. Ten przewodnik omawia 10 rodzajów – od podstawowego i hybrydowego RAG po agentowy RAG i GraphRAG – wraz z dwoma przykładami krok po kroku.

Diagram of the types of RAG architecture branching from a central hub: basic, hybrid, adaptive, corrective (CRAG), self-RAG, multimodal, agentic, GraphRAG, HyDE, and branched.

RAG, czyli generowanie wspomagane wyszukiwaniem (ang. retrieval augmented generation), to proces, w którym modele LLM wykorzystują informacje zewnętrzne do rozszerzania i ulepszania generowanych odpowiedzi. Architektura RAG to zestaw komponentów i połączeń, które umożliwiają działanie RAG.

Istnieje kilka różnych kategorii RAG, a każda z nich opiera się na własnej, unikalnej architekturze. W gruncie rzeczy to architektura systemu RAG określa, w jaki sposób informacje są przechowywane, wyszukiwane i przekazywane do modelu LLM.

Czym jest architektura RAG?

Architektura RAG to bazowa konfiguracja komponentów (i powiązanych z nimi możliwości), na której opiera się dany system RAG. Wszystkie te architektury bazują na podstawowym szablonie, często nazywanym „prostym” lub „naiwnym” RAG.

Oto ogólny przegląd podstawowej architektury RAG:

  • Źródło informacji: To miejsce, w którym przechowywane są informacje zewnętrzne. Może to być indeks wyszukiwania, wektorowa baza danych reprezentująca duże ilości informacji lub repozytorium surowych dokumentów.
  • Komponent wyszukiwania: To mechanizm, za pomocą którego wysyłane są zapytania do źródła informacji. System RAG może na przykład korzystać z prostego wyszukiwania słów kluczowych, aby znaleźć odpowiednie fragmenty tekstu, lub z bardziej złożonych zapytań wektorowych, aby przeprowadzić wyszukiwanie podobieństwa.
  • Komponent orkiestracji: Ta warstwa to część aplikacji opartej na LLM, która uruchamia potok RAG dla promptu użytkownika – wspólnie z modelem LLM lub niezależnie od niego. Łączy ona również pobrane informacje w rozszerzony prompt.

Komponenty architektury RAG są zazwyczaj zorganizowane w dwie ścieżki. Ścieżka pozyskiwania danych przyjmuje dane i porządkuje je w przeszukiwalne źródło informacji. Wektorowe bazy danych, w których duże ilości tekstu są przekształcane w przeszukiwalne repozytorium osadzeń wektorowych, należą do najczęściej stosowanych rozwiązań.

Ścieżka wyszukiwania przyjmuje prompt użytkownika i generuje zapytanie, za pomocą którego przeszukiwane jest źródło informacji. Następnie orkiestrator dodaje pobrane informacje do kontekstu wejściowego modelu LLM. W przypadku agentowych i hybrydowych architektur RAG może istnieć wiele ścieżek wyszukiwania.

Rodzaje architektury RAG

Postrzeganie RAG w kategoriach całkowicie odrębnych architektur jest mylące. Większość inżynierów stosuje podejście modułowe, wdrażając osobne komponenty dopasowane do konkretnych zastosowań. Choć można wyznaczyć umowne granice, warto pamiętać, że poszczególne modele architektury w znacznym stopniu się pokrywają.

1. Podstawowy RAG

Podstawowy RAG, nazywany również „naiwnym” lub „prostym” RAG, stanowi szablon architektoniczny dla innych rodzajów RAG.

Sam proces jest stosunkowo prosty: użytkownik wpisuje prompt, orkiestrator określa (samodzielnie lub wspólnie z modelem LLM), czy potrzebne są informacje zewnętrzne, a następnie odpowiednio formułuje i wysyła zapytanie wyszukiwania.

Zewnętrznym źródłem informacji jest zwykle wektorowa baza danych, ale może nim być również baza danych SQL, internetowy interfejs API, graf wiedzy, a nawet repozytorium „surowych” dokumentów. Te dodatkowe informacje są następnie dodawane do kontekstu wejściowego modelu LLM.

Poza zapytaniami SQL i interfejsami API istnieją dwa ogólne rodzaje metod wyszukiwania:

  • Wyszukiwanie leksykalne (wyszukiwanie słów kluczowych): To prosta forma RAG, w której z zapytania użytkownika wyodrębniane są słowa kluczowe, a następnie dopasowywane do fragmentów tekstu, które je zawierają. W nowoczesnych potokach orkiestrator może w tym celu wykonać tzw. zapytanie oparte na wektorach rzadkich, które nie oddaje znaczenia.
  • Wyszukiwanie oparte na wektorach gęstych (wyszukiwanie semantyczne): Gęste osadzenia wektorowe oddają znaczenie. Orkiestrator może odpytywać bazę danych wektorów gęstych w taki sposób, aby uchwycić znaczenie zarówno promptu użytkownika, jak i informacji źródłowych.

Ważnym elementem architektury RAG jest również wykorzystanie pamięci. Chodzi o to, w jaki sposób model LLM korzysta z kontekstu poprzednich czatów, aby zbudować zapytanie wyszukiwania, osadzając je w szerszym kontekście rozmowy (lub wielu rozmów). Konwersacyjny RAG to standard w większości chatbotów, choć w niektórych zastosowaniach, takich jak odpowiedzi na zgłoszenia do pomocy technicznej, może być stosowany RAG jednopytaniowy.

2. Hybrydowy RAG

Hybrydowy RAG łączy dwa różne rodzaje wyszukiwania – zwykle wyszukiwanie słów kluczowych i wyszukiwanie semantyczne. Wyszukiwanie słów kluczowych znajduje pasujące terminy, a wyszukiwanie wektorowe – fragmenty o powiązanym znaczeniu.

Można również stosować inne formy wyszukiwania, takie jak przechodzenie grafu wiedzy czy zapytania do baz danych SQL. Proces ten jest często sterowany przez logikę routingu – w postaci zaprogramowanych reguł lub klasyfikacji pytania przez model (choć wiele potoków może też działać jednocześnie).

Orkiestrator scala wyniki i może zmienić ich kolejność (reranking) przed przekazaniem ich do modelu LLM. Reranking to proces przypisywania pobranym fragmentom ocen trafności, dzięki któremu model LLM traktuje priorytetowo najbardziej przydatne informacje.

3. Adaptacyjny RAG

W adaptacyjnym RAG komponent routingu wybiera strategię wyszukiwania na podstawie wymagań promptu użytkownika, a następnie orkiestrator realizuje wybrany przepływ pracy.

W oryginalnym frameworku (Adaptive-RAG) mniejszy model pełnił funkcję klasyfikatora i wybierał między brakiem wyszukiwania, wyszukiwaniem jednoetapowym a wyszukiwaniem wieloetapowym. Niektóre architektury korzystają obecnie zamiast tego z modeli generatywnych lub heurystyk opartych na regułach.

To popularna architektura, ponieważ przydziela moc obliczeniową w zależności od złożoności i wymagań promptu, ograniczając niepotrzebne etapy wyszukiwania w przypadku prostszych promptów. Jest powszechnie stosowana w asystentach obsługujących wiele rodzajów pytań.

4. Korekcyjny RAG (CRAG)

Korekcyjny RAG ocenia pobrane informacje przed dodaniem ich do kontekstu wejściowego modelu LLM. Ewaluator wyszukiwania ocenia, czy pobrane informacje są trafne i przydatne. Wyróżniającą cechą tej architektury jest jawny etap oceny i korekty przed wygenerowaniem odpowiedzi.

Jeśli informacje okażą się niekompletne lub nieadekwatne do promptu, uruchamiane są dodatkowe żądania. Mogą one wykorzystywać inne metody wyszukiwania niż pierwotne żądanie, np. wyszukiwanie w internecie lub przechodzenie grafu wiedzy.

Korekcyjny RAG jest powszechnie stosowany w dziedzinach, w których liczy się dokładność, takich jak medycyna i prawo. Wymaga jednak dodatkowego źródła informacji, które może uzupełnić pierwotnie pobrane fragmenty.

5. Self-RAG

W self-RAG to model może inicjować żądania po otrzymaniu początkowego kontekstu wejściowego. Wygenerowane odpowiedzi są oceniane w odniesieniu do pobranych dowodów za pomocą tokenów refleksji, a w razie potrzeby za pośrednictwem orkiestratora wysyłane są kolejne żądania. Z drugiej strony model LLM może uznać, że wyszukiwanie w ogóle nie jest potrzebne.

Różni się on od korekcyjnego RAG tym, że model LLM sam ocenia swoje wyniki, określa, czy wyszukiwanie jest potrzebne i czy pobrany tekst jest przydatny, a także monitoruje własne odpowiedzi, modyfikując je w razie potrzeby. Korekcyjny RAG natomiast ocenia jakość pobranych informacji przed wygenerowaniem odpowiedzi.

Ta architektura sprawdza się szczególnie w przypadku złożonych promptów w stylu dogłębnych badań. Ponieważ uwzględnia ocenę trafności (pobranych informacji) przy generowaniu odpowiedzi, jest dobrym wyborem dla promptów wymagających odpowiedzi opartych na dowodach.

6. Agentowy RAG

Agentowy RAG to każda forma RAG realizowana w kontekście platformy agentowej. Model wykorzystuje swoje zdolności rozumowania, aby określić, jakiego rodzaju informacje są potrzebne, i wybiera spośród dostępnych opcji wyszukiwania.

Wyszukiwanie może być uruchamiane wielokrotnie, w zależności od potrzeb, a model ma możliwość przydzielania agentów do bardziej złożonych zapytań. Na przykład model LLM może zażądać przeszukania bazy danych w celu zidentyfikowania dostawcy, uruchomić wyszukiwanie dokumentów, aby znaleźć odpowiednie umowy, a na koniec przeprowadzić wyszukiwanie w internecie, aby zweryfikować dane kontaktowe na podstawie publicznych źródeł.

Agentowy RAG to główna implementacja architektury w popularnych chatbotach, takich jak Perplexity, ChatGPT, Claude i inne. Ponieważ platformy te zapewniają modelowi bazowemu dostęp do wielu narzędzi i potoków RAG, może on wybrać formę wyszukiwania najlepiej dopasowaną do danego promptu.

7. Multimodalny RAG

Multimodalny RAG pobiera kontekst z różnych typów mediów. To ważna forma RAG, ponieważ udostępnia modelom LLM informacje, które w przeciwnym razie byłyby dla nich niedostępne, takie jak wykresy i nagrania audio.

Bazowa architektura jest taka sama jak w każdym innym systemie. Na przykład potok indeksowania może przygotowywać obrazy do wyszukiwania, przekształcając je w bezpośrednie osadzenia. Agentowy system RAG mógłby następnie pobierać te obrazy wraz z semantycznie powiązanym tekstem i przekazywać je do modelu wizyjno-językowego w celu łącznego przetworzenia.

8. GraphRAG

GraphRAG wykorzystuje grafy wiedzy wraz z wyszukiwaniem wektorowym do pobierania informacji o encjach. Zazwyczaj orkiestrator znajduje odpowiednie encje początkowe, nazywane również węzłami, za pomocą ekstrakcji słów kluczowych lub czasem wstępnego wyszukiwania wektorowego. Moduł wyszukiwania w grafie przechodzi przez graf wiedzy, aby zbudować szerszy kontekst.

Na przykład w odpowiedzi na prośbę o szczegółowe zestawienie kategorii produktów model LLM może uruchomić wyszukiwanie wektorowe w celu zidentyfikowania konkretnych encji (produktów). Następnie orkiestrator uruchomi wyszukiwanie w grafie wiedzy, aby znaleźć powiązane encje, takie jak dostawcy, punkty sprzedaży detalicznej, recenzje itp.

9. Rozgałęziony RAG

O ile architektura hybrydowego RAG umożliwia korzystanie z różnych metod wyszukiwania, o tyle rozgałęziony RAG oznacza proces jednoczesnego uruchamiania wielu zapytań, nazywanych gałęziami. Każda gałąź może odpytywać osobne źródło informacji lub gałęzie mogą równolegle odpytywać to samo źródło z użyciem różnych zapytań lub filtrów. Architektura agentowego RAG często wykorzystuje rozgałęziony RAG.

10. HyDE (Hypothetical Document Embeddings)

HyDE to innowacyjna forma RAG, w której model LLM tworzy hipotetyczny dokument tekstowy przedstawiający, jak mogłaby wyglądać optymalna odpowiedź. Ten „hipotetyczny dokument” jest następnie wykorzystywany do utworzenia zapytania zapewniającego dokładniejsze wyszukiwanie. Choć odpowiednia wiedza nie jest reprezentowana w parametrach modelu LLM, założenie jest takie, że fragment przypominający odpowiedź może lepiej pasować do odpowiednich dokumentów niż krótkie pytanie czy niejednoznaczny prompt.

Przykład prostej architektury RAG: wektorowa baza danych

Podstawowy RAG stanowi fundament dla bardziej złożonych rodzajów architektury. W przypadku prostego systemu RAG korzystającego z wektorowej bazy danych dokumentacja źródłowa jest dzielona na mniejsze części (fragmenty, ang. chunks) i przekształcana w gęste osadzenia. Gdy użytkownik wpisuje prompt, orkiestrator generuje zapytanie, koduje je i przeszukuje bazę danych w celu znalezienia odpowiednich fragmentów.

Oto opis procesu krok po kroku:

  1. Duże ilości tekstu są przekształcane w wektory za pomocą zautomatyzowanego potoku pozyskiwania danych i modelu osadzeń, takiego jak BERT.
  2. Aplikacja bazy danych porządkuje, indeksuje i przechowuje wektory, umożliwiając szybkie wyszukiwanie.
  3. Użytkownik wpisuje prompt w chatbocie (takim jak Perplexity).
  4. Orkiestrator aplikacji koduje prompt (za pomocą modelu osadzeń), aby pobrać odpowiednie informacje z wektorowej bazy danych.
  5. Wektorowa baza danych zwraca odpowiednie fragmenty, a orkiestrator dodaje je do kontekstu wejściowego („dużego promptu”) i przekazuje go do modelu LLM.
  6. Model LLM wykorzystuje dodatkowy kontekst do wygenerowania odpowiedzi z użyciem swojej wiedzy wewnętrznej (zapisanej w jego wagach parametrycznych).

Przykład zaawansowanej architektury RAG: agentowy RAG

Agentowy RAG to bazowa architektura systemów RAG działających na platformie agentowej. Przepływy agentowego RAG są zwykle złożone, ponieważ agenci AI mogą wywoływać różne narzędzia i potoki w zależności od charakteru promptu, w razie potrzeby uruchamiając wielu agentów.

Oto praktyczny przykład tego procesu:

  1. Użytkownik wpisuje złożone pytanie, które wymaga dogłębnego zbadania tematu. Na potrzeby tego przykładu załóżmy, że prompt brzmi: „Przygotuj prognozę zysków firmy na najbliższe sześć miesięcy w świetle istotnych wydarzeń geopolitycznych”.
  2. Model LLM w drodze rozumowania dochodzi do wniosku, że potrzebne będzie połączenie zapytań RAG obejmujących różne typy treści.
  3. Uruchamianych jest trzech różnych agentów, odpowiedzialnych za: (a) wyszukiwanie wektorowe, (b) ugruntowanie w danych z internetu (web grounding) oraz (c) wyszukiwanie obrazów (multimodalne).
  4. Agenci wyszukują odpowiednie informacje, takie jak artykuły prasowe i wewnętrzne dane finansowe, za pośrednictwem orkiestratora, korzystając z dostępnych narzędzi wyszukiwania.
  5. Model LLM porównuje pobrane wyniki z pytaniem badawczym każdego agenta i szereguje je według trafności.
  6. Model LLM ocenia informacje i tam, gdzie ich brakuje, uruchamia dodatkowe wyszukiwania za pośrednictwem poszczególnych agentów.
  7. Gdy zostanie pobrana wystarczająca ilość informacji, model LLM generuje prognozy dla różnych scenariuszy na podstawie istniejących danych finansowych (pobranych z dokumentacji wewnętrznej) i wywołuje narzędzie kalkulatora, aby oszacować zyski dla każdego z nich.
  8. Model LLM generuje ostateczną odpowiedź na podstawie pobranych informacji i obliczeń, w razie potrzeby podając źródła.

Co dalej z RAG?

Obecne innowacje koncentrują się na zwiększaniu głębi i szybkości istniejących architektur RAG, poprawie dokładności wyszukiwania treści multimedialnych oraz budowaniu systemów przystosowanych do pracy z najświeższymi informacjami.

Oto trzy trendy, które obecnie wyznaczają kierunek badań:

  • Dogłębne badania w wielu źródłach: To architektura RAG zdolna do planowania wyszukiwań, uruchamiania wielu gałęzi w różnorodnych źródłach, oceny pobranych dowodów i samodzielnej optymalizacji generowanych odpowiedzi. Agentowy RAG zdolny do wykonywania wszystkich tych zadań staje się coraz szybszy i bardziej opłacalny.
  • Zastosowania multimodalne: Potoki wyszukiwania coraz lepiej radzą sobie z obrazami i wideo. Coraz skuteczniej potrafią wskazywać konkretne rodzaje informacji w złożonych danych multimodalnych, takich jak długie materiały wideo i zaawansowane diagramy.
  • Ugruntowanie odpowiedzi w stale zmieniających się informacjach: Aplikacje oparte na LLM mogą korzystać z bieżących źródeł informacji (takich jak transmisje wideo i czujniki), aby dostarczać kontekst wejściowy. Systemy mogą też tworzyć wielowymiarowe sieci informacji – na przykład za pomocą GraphRAG – w celu interpretacji tych danych.

RAG ma fundamentalne znaczenie dla działania aplikacji opartych na LLM. Pozwala szerokiemu gronu użytkowników – od zwykłych konsumentów po przedsiębiorstwa działające w wyspecjalizowanych dziedzinach – przezwyciężać problemy związane z halucynacjami, niekompletnymi danymi treningowymi i brakiem dostępu do specjalistycznej wiedzy wewnętrznej.

Dlatego systemy RAG i ich bazowa architektura to jeden z najszybciej rozwijających się i najbardziej ekscytujących obszarów badań nad AI.