Strona główna / Artykuły / Wyjaśnienie RAG: umożliwianie modelom językowym dostępu do wiedzy zewnętrznej

Wyjaśnienie RAG: umożliwianie modelom językowym dostępu do wiedzy zewnętrznej

Przewodnik po RAG przeznaczony dla początkujących – dzielenie na fragmenty, embeddingi, wyszukiwanie wektorowe, hybrydowe odzyskiwanie informacji oraz sytuacje, gdy RAG nadal tworzy halucynacje – wraz z jasnymi diagramami architektury.

2065 słów

Wielkie modele językowe odpowiadają na podstawie pamięci treningowej. Pamięć ta jest potężna, ale niekompletna – może zawierać braki w postaci wewnętrznych przewodników, przestarzałych zasad oraz faktów, które nigdy nie pojawiły się w tekstach publicznych. Technika Retrieval-Augmented Generation (RAG) eliminuje tę luki, najpierw pobierając istotne materiały zewnętrzne, a następnie prosząc model o udzielenie odpowiedzi na podstawie tych materiałów.

Czym jest RAG?

Bez funkcji wyszukiwania pytanie trafia bezpośrednio do modelu:

User Question
      ↓
     LLM
      ↓
   Answer

Z użyciem RAG system znajduje odpowiednie informacje przed generowaniem tekstu:

User Question
      ↓
Find Relevant Information
      ↓
Give Information to the LLM
      ↓
     LLM
      ↓
   Answer

Model nadal tworzy ostateczną wersję tekstu; nowym elementem jest kontekst pochodzący ze sklepu wiedzy.

Dlaczego potrzebujemy RAG?

Limity szkolenia, prywatne korpusy danych oraz szybko zmieniające się zasady wszystkie podważają możliwość udzielania odpowiedzi opartych wyłącznie na pamięci. Podręcznik pracowniczy zaktualizowany w zeszłym tygodniu nie znajdzie się w wagach modelu typu frontier. RAG umożliwia asystentowi korzystanie z tego podręcznika w momencie zadania pytania bez konieczności ponownego szkolenia.

Prosty przykład RAG

Pracownik pyta o przeniesienie dni urlopu. Przebieg działań wygląda następująco:

Employee asks a question
          ↓
Search the employee handbook
          ↓
Find the relevant section
          ↓
Give that section to the LLM
          ↓
LLM generates the answer

Asystent powinien cytować podręcznik, a nie wymyślać zasady, która „brzmi słusznie”.

Jak działa RAG?

Ważne są dwie fazy: przygotowanie wiedzy offline, a następnie udzielanie odpowiedzi online.

1. Przygotowanie wiedzy

Przetwarzamy pliki, dzielimy je, wstawiamy fragmenty i przechowujemy wektory do wyszukiwania.

2. Odpowiedź na pytanie

Wstawiamy pytanie, pobieramy najważniejsze fragmenty, pakujemy je do promptu i generujemy odpowiedź.

Część 1: Przygotowanie wiedzy

Typowe źródła informacji dla asystenta ds. HR:

Employee Handbook
Vacation Policy
Benefits Guide
Leave Policy

Proces przygotowania:

Documents
    ↓
Extract Text
    ↓
Break into Smaller Pieces
    ↓
Create Embeddings
    ↓
Store for Search

Krok 1: Pobranie informacji

Wyodrębnij czysty tekst z każdego źródła:

Employee Handbook
        ↓
    Extract text
        ↓
"Employees receive..."
"Vacation requests..."
"Leave policy..."

Tytuły, stopki oraz elementy nawigacyjne należy usunąć wcześnie, aby nigdy nie stały się „faktami”.

Krok 2: Podział dokumentu na fragmenty

Długie podręczniki przekraczają limity kontekstowe i ukrywają istotne akapity. Dzielenie na fragmenty tworzy jednostki nadające się do wyszukiwania:

Employee Handbook
       ↓
 ┌───────────────┐
 │    Chunk 1    │
 ├───────────────┤
 │    Chunk 2    │
 ├───────────────┤
 │    Chunk 3    │
 ├───────────────┤
 │      ...      │
 └───────────────┘

Dlaczego podział na fragmenty jest ważny?

Fragmenty zbyt duże osłabiają istotność informacji; fragmenty zbyt małe tracą kontekst otaczających ich elementów (szczególnie negacje i wyjątki). Przecięcie się sąsiednich fragmentów pomaga zachować kontekst graniczny. Zacznij od prostego rozwiązania – stałej wielkości z przecięciem – a następnie dostosuj je w razie błędów w ocenach.

Krok 3: Tworzenie wektorów embeddingowych

Wektory embeddingowe mapują tekst na wektory, dzięki czemu frazy o podobnym znaczeniu znajdują się blisko siebie, nawet jeśli nie mają wspólnych słów kluczowych.

Tekst pytania:

"What is my vacation allowance?"

Parafraza o tym samym znaczeniu:

"How many annual leave days do I get?"

Oba mogą trafić w pobliże tego samego fragmentu dotyczącego polityki wakacyjnej po embedowaniu:

"What is my vacation allowance?"
              ↓
          Embedding
              ↓
       Numerical representation

Należy używać tego samego narzędzia embedowania do indeksowania i wyszukiwania; mieszanie modeli potajemnie psuje funkcję wyszukiwania najbliższych sąsiadów.

Krok 4: Przechowywanie informacji do wyszukiwania

Każdy fragment wraz z jego wektorem trafia do indeksu wektorowego (lub hybrydowego magazynu):

Document Chunk
      ↓
   Embedding
      ↓
Vector Database

Metryki — tytuł źródła, strona, poziom dostępu, data wejścia w życie — powinny towarzyszyć fragmencie, aby później można było stosować filtry i cytaty.

Część 2: Odpowiadanie na pytanie użytkownika

Droga online:

User Question
      ↓
Understand the question
      ↓
Search the stored information
      ↓
Find relevant chunks
      ↓
Give those chunks to the LLM
      ↓
Generate an answer

Krok 5: Pobieranie istotnych informacji

Embedowanie pytania pozwala na wybranie najważniejszych fragmentów, na przykład:

Chunk 147 → Vacation carryover policy
Chunk 148 → Vacation request process
Chunk 62  → Employee benefits
Chunk 300 → Security policy

Jakość rankingu ma tu decydujące znaczenie dla jakości ostatecznej odpowiedzi. Złą selekcję informacji nie da się naprawić poprzez lepiej sformułowane pytanie.

Krok 6: Przekazanie informacji do LLM

Zdobrany tekst staje się kontekstem promptu:

Context:Employees may carry over up to 5 unused
vacation days into the following year.
Question:How many vacation days can I carry over?

Instrukcje powinny wymagać odpowiadania w oparciu o kontekst oraz przyznawania się do braków, gdy kontekstu nie ma.

Krok 7: Generowanie odpowiedzi

Retrieved Information
        +
User Question
        ↓
       LLM
        ↓
      Answer

Model tworzy odpowiedź opartą na pobranych fragmentach tekstu, a nie na ogólnych zasadach stosowanych w HR.

Pełna architektura RAG

Etykieta przygotowania offline:

KNOWLEDGE PREPARATION

Diagram end-to-end:

        Documents
            ↓
      Extract Text
            ↓
         Chunking
            ↓
        Embeddings
            ↓
      Vector Database
            │
            │
            │
            ▼
        USER QUESTION
            ↓
        Query Embedding
            ↓
         Retrieval
            ↓
    Relevant Information
            ↓
     Question + Context
            ↓
            LLM
            ↓
          Answer

Przed zadaniem pytania

Documents
   ↓
Chunks
   ↓
Embeddings
   ↓
Vector Database

Gdy przychodzi pytanie

Question
   ↓
Retrieval
   ↓
Relevant Context
   ↓
LLM
   ↓
Answer

Czy RAG wykorzystuje tylko wyszukiwanie wektorowe?

Nie. Systemy produkcyjne często łączą różne metody.

Wyszukiwanie według słów kluczowych

Narzędzia do porównywania leksykalnego (BM25 i podobne) doskonale radzą sobie z dokładnym dopasowywaniem tokenów: kodów polityk, SKU, identyfikatorów błędów, nazw własnych.

Wyszukiwanie semantyczne

Wyszukiwanie wektorowe wykrywa parafrazy i synonimy, których nie dostrzegają słowa kluczowe.

Wyszukiwanie hybrydowe

Połącz oba podejścia, a następnie połącz rankingi:

Keyword Search
       +
Semantic Search
       ↓
  Hybrid Search

Wyszukiwanie hybrydowe jest dobrym standardowym rozwiązaniem, gdy ruch internetowy łączy dokładne identyfikatory z zapytaniami w języku naturalnym.

RAG nie eliminuje halucynacji

Proces wyodrębniania informacji zmniejsza nieuzasadnione wymysły, ale ich całkowicie nie usuwa. Do możliwych problemów należą:

Pobrany niewłaściwy fragment tekstu:

User Question
      ↓
Wrong information retrieved
      ↓
LLM
      ↓
Wrong answer

Nic istotnego nie zostało znalezione, a mimo to model nadal udziela odpowiedzi:

User Question
      ↓
No relevant information found
      ↓
LLM
      ↓
Unsupported answer

Sposoby łagodzenia problemów: bardziej precyzyjne wyodrębnianie informacji, ponowne rankowanie, instrukcje odmowy odpowiedzi, cytaty oraz ocena wiarygodności, a nie tylko płynności.

RAG kontra dopasowywanie fine-tuning

RAG

Najlepiej nadaje się w sytuacjach, gdy wiedza często się zmienia, musi być cytowana lub pozostaje prywatna poza danymi treningowymi. Aktualizacje oznaczają ponowne indeksowanie, a nie przeszkolenie modelu.

Dopasowywanie fine-tuning

Najlepiej sprawdza się wtedy, gdy konieczna jest zmiana zachowania, stylu lub formatu zadań, albo gdy wiedza jest wystarczająco stabilna i zwięzła, by zostać włączona bezpośrednio do systemu. Jej aktualizacja jest kosztowna, gdy polityki się zmieniają.

Wiele produktów wykorzystuje oba podejścia: dopasowanie do umiejętności za pomocą RAG, a do faktów bezpośrednio w dokumentacji.

Gdzie jest przydatny RAG?

Podpora klienta

Asystenci opierający się na dokumentacji produktu i szablonach zgłoszeń.

Ochrona zdrowia

Szukanie protokołów i wytycznych z ścisłą kontrolą cytowań i dostępu (nadal obowiązują zasady domeny).

Finanse

Odpowiedzi dotyczące polityk, informacji ujawnieniowych oraz zasad produktu, które muszą odwoływać się do najnowszego zatwierdzonego tekstu.

Zasoby ludzkie

Podręczniki, świadczenia, zasady urlopu – dokładnie ten sam wzorzec pytań pracowników co powyżej.

Rozwój oprogramowania

Wewnętrzne procedury rozwiązywania problemów, instrukcje obsługi oraz referencje API obok dokumentacji publicznej.

Kiedy należy używać RAG?

Należy używać RAG, gdy odpowiedzi muszą odzwierciedlać konkretne korpusy większe niż treść promptu, które zmieniają się szybciej niż cykle dopasowywania modelu lub wymagają informacji o ich pochodzeniu. Unikaj RAG w przypadku zwykłych faktów, które model już zna, czystej kreatywności lub ścieżek o ekstremalnie niskiej opóźnieniu, które nie mogą pozwolić sobie na dodatkowy krok pobierania danych.

Czym może być utrudnione stosowanie RAG?

Grenice fragmentów danych, odchylenia we wzorach embeddingów, przestarzałe indeksy, wycieki z mechanizmów kontroli dostępu oraz luki w ocenie. Konkretne przykłady błędów:

Użytkownik pyta:

User asks:
"What is the vacation carryover policy?"

System pobiera niewłaściwą rodzinę zasad:

             ↓System retrieves:
"Health insurance policy"             ↓LLM receives wrong context             ↓Poor answer

Następnie model brzmi pewnie, wyjaśniając ubezpieczenie zdrowotne tak, jakby chodziło o przeniesienie środków z ubezpieczenia podróżnego. Napraw najpierw proces pobierania danych i filtry metadanych, zanim obwiniasz generatora.

Czego musisz się nauczyć, aby zbudować RAG?

Pракtyczna ścieżka rozwoju umiejętności:

RAG Fundamentals
       ↓
Document Processing
       ↓
Chunking
       ↓
Embeddings
       ↓
Vector Databases
       ↓
Retrieval
       ↓
Prompt + Context
       ↓
LLM
       ↓
Evaluation

Przetwarzanie dokumentów, strategia dzielenia na fragmenty, embeddingi, magazyny wektorowe, kompletowanie promptów, ocena oraz operacje (odbudowa, dostęp, monitorowanie) – wszystko to ma znaczenie.

Kontekst ogólny

Knowledge
                 ↓
            Find relevant
            information
                 ↓
           Give it to LLM
                 ↓
             Generate
              answer

Wiedza znajduje się poza modelem; pobieranie danych zamienia tę luki; generowanie stanowi ostatni etap.

Wybory dotyczące dzielenia na fragmenty wpływają na wymiarowość embeddingów oraz typ indeksu: konfiguracje HNSW oparte wyłącznie na danych gęstych zachowują się inaczej niż hybrydowe magazyny BM25+wektorów, gdy zapytania zawierają zarówno tekst prozatorski, jak i identyfikatory. Należy utrzymywać pisemną politykę dotyczącą sygnałów do odbudowy – nowe wersje podręczników, usunięte strony, zmiany uprawnień – oraz sprawdzać, czy usunięte materiały rzeczywiście znikają z indeksu, a nie pozostają jako samotne wektory. Formatowanie cytatów również powinno być określone w umowie dotyczącej generowania treści: jeśli interfejs obiecuje informacje o pochodzeniu na poziomie strony, prompt i procesor postobróbki muszą generować stabilne identyfikatory źródła, a nie dekoracyjne przypisy, które nic не wskazują.

Przeprowadzenie ponownego rankingu zasługuje na krótkie omówienie nawet w ścieżce dla początkujących. Wybór dwukrotnego kodera jest tani; jedna praca kros-kodera nad pięćdziesięcioma najlepszymi kandydatami często naprawia błędy typu „prawie właściwy dokument, niewłaściwa sekcja”, które sprawiają, że dema wyglądają na niepracujące. Należy to połączyć z prostymi regułami odrzucenia, gdy wyniki podobieństwa spadną poniżej ustalonego progu. Zespoły, które pomijają ocenę, zazwyczaj odkrywają te problemy przed interesariuszami, a nie w notatniku.

Na koniec pamiętaj o charakterze ekonomicznym RAG: koszt indeksowania jest płatny ciągle w miarę rozwoju korpusów, natomiast koszt dopasowywania jest płatny w okresowych transzach. W dziedzinach wymagających ścisłych regulacji rachunek za ciągłe indeksowanie jest zazwyczaj tańszy niż cotygodniowe dopasowywania – ponadto umożliwia przytoczenie dokładnego akapitu, o który prosił audytor. Ta możliwość audytowalności jest często rzeczywistym wymogiem produktu, który kryje się za hasłem „stworzyć chatbota”.

Gdy wdrażasz RAG do istniejącego zestawu narzędzi wsparcia, zacznij od jednego korpusu i jednej grupy pytań, zamiast próbować rozwiązać wszystko naraz. Zmierz poziom odchylenia, eskalacji oraz skarg na błędne odpowiedzi w tym ograniczonym zakresie, zanim dodasz całe przestrzenie Confluence. Skupione działania pomagają określić, jakie rozmiary fragmentów i hybrydowe wagi są skuteczne; szerokie wdrożenia zazwyczaj pokazują, że tablice kontrolne bez metryk wierności ukrywają regresje. Przez pierwsze tygodnie utrzymuj kolejkę do ludzkiej oceny spornych odpowiedzi, aby redaktorzy mogli oznaczyć „dobry proces wyszukiwania / zła generacja” w porównaniu z „złym procesem wyszukiwania”, co oznacza różne sposoby naprawy. Z czasem te etykiety stają się sygnałami treningowymi dla narzędzi do ponownego rankowania oraz pomagają w decydowaniu, czy dany temat powinien zostać usunięty z RAG i zastąpiony deterministycznym procesem pracy.

Ostateczny wniosek

Store external knowledge
        ↓
Find relevant information
        ↓
Give that information to an LLM
        ↓
Generate a grounded response

Zachowuj zewnętrzną wiedzę, znajdź odpowiednie informacje do każdego pytania, a dopiero wtedy generuj odpowiedź. Ten cykl składający się z trzech kroków to RAG – prosty w zarysowaniu, wymagający umiejętnego działania, a mimo to najpraktyczniejszy sposób na zapewnienie, by asystenci byli uczciwi wobec prywatnych i zmieniających się faktów.

Dyscyplina operacyjna odróżnia proste dema od niezawodnych asystentów: zamroź zestaw pytań, mierz wskaźniki trafności wyszukiwania wraz z dokładnością odpowiedzi, a także odbudowuj indeksy według harmonogramu odpowiadającego częstotliwości zmian materiałów źródłowych. Podczas stosowania hybrydowego wyszukiwania, ponownego rankingu lub filtrów metadanych zachowuj ten sam zestaw wskaźników, aby ulepszenia były widoczne, a nie oparte jedynie na przypadkowych obserwacjach. Od samego początku traktuj etykiety dostępu jako część danych przekazywanych do obsługi; dodawanie uprawnień później powoduje wyciek prywatnych notatek HR do publicznych czatów. Wreszcie, gdy najważniejsze fragmenty danych wydają się słabe, preferuj odmowę wraz z prośbą o cytat zamiast trafnego domysłu – użytkownicy bardziej ufają dobrze przemyślanej ciszy niż wyrafinowanym wymysłom.

Zachowuj podręczniki dotyczące odbudowy indeksów, przeglądów dostępu oraz znanych sposobów awarii obok diagramów ścieżek prawidłowego działania, aby operatorzy otrzymywali coś więcej niż tylko zestaw slajdów.

Zachowaj podręczniki operacyjne dotyczące odbudowy indeksów, przeglądów dostępu oraz znanych sposobów awarii obok diagramów ścieżek prawidłowych, aby operatorzy otrzymali coś więcej niż tylko zestaw slajdów.

Zachowaj podręczniki operacyjne dotyczące odbudowy indeksów, przeglądów dostępu oraz znanych sposobów awarii obok diagramów ścieżek prawidłowych, aby operatorzy otrzymali coś więcej niż tylko zestaw slajdów.

Zachowaj podręczniki operacyjne dotyczące odbudowy indeksów, przeglądów dostępu oraz znanych sposobów awarii obok diagramów ścieżek prawidłowych, aby operatorzy otrzymali coś więcej niż tylko zestaw slajdów.

Zachowaj podręczniki operacyjne dotyczące odbudowy indeksów, przeglądów dostępu oraz znanych sposobów awarii obok diagramów ścieżek prawidłowych, aby operatorzy otrzymali coś więcej niż tylko zestaw slajdów.

Zachowaj podręczniki operacyjne dotyczące odbudowy indeksów, przeglądów dostępu oraz znanych sposobów awarii obok diagramów ścieżek prawidłowych, aby operatorzy otrzymali coś więcej niż tylko zestaw slajdów.

Zachowaj instrukcje obsługi dotyczące odbudowy indeksów, przeglądów dostępu oraz znanych sposobów awarii obok diagramów ścieżek prawidłowej pracy, aby operatorzy otrzymali coś więcej niż tylko zestaw slajdów.

Literatura pokrewna

  • Dlaczego Enterprise RAG potrzebuje wyszukiwania hybrydowego, a nie tylko wektorów — Embeddingi pomijają numery faktur i kody błędów; BM25 w połączeniu z gęstym wyszukiwaniem i fuzją naprawia braki w identyfikatorach przedsiębiorstw.
  • Wyszukiwanie hybrydowe dla Enterprise RAG: sam gęsty model to za mało — Dokładne numery i rzadkie kody psują działanie embeddingów; BM25 w połączeniu z gęstym modelem i fuzją w trybie równoległym radzi sobie z rzeczywistą mieszanką zapytań.