Strona główna / Artykuły / Wyjaśnienie RAG: Jak systemy AI pozyskują aktualną wiedzę na żądanie

Wyjaśnienie RAG: Jak systemy AI pozyskują aktualną wiedzę na żądanie

Dowiedz się, jak działa generowanie wzbogacone wyodrębnianiem informacji – od dzielenia tekstu na fragmenty i tworzenia wektorów aż po wyszukiwanie wektorowe – aby modele AI mogły odpowiadać na pytania bez ponownego szkolenia.

2776 słów

Załóżmy, że istnieje asystent AI, który dawno już zakończył swoje szkolenie.

Zadajesz mu pytanie:

"Co znajduje się w tym dokumencie, który właśnie przesłałem?"

Model nigdy nie napotkał tego pliku podczas szkolenia.

Jak więc może na to odpowiedzieć?

Jedną z możliwych odpowiedzi jest technika zwana Retrieval-Augmented Generation, zwykle skracana do RAG.

RAG umożliwia systemowi AI pobieranie istotnych materiałów z zewnętrznych źródeł i włączanie ich do generowanej odpowiedzi.

Oto najciekawsza część:

Model nie musi być ponownie szkolony za każdym razem, gdy pojawiają się nowe informacje.

Zobaczmy, jak to działa.

Problem: AI nie może wiedzieć wszystkiego

Wielkie modele językowe uczą się na podstawie danych, z których zostały wytrenowane.

Spojrzenie na ten proces z uproszczeniem wygląda tak:

Training Data
     ↓
Model Training
     ↓
Model Parameters
     ↓
AI Model
     ↓
Generate Answers

Gdy trening się zakończy, model nie ma automatycznego sposobu na przyswajanie nowych dokumentów, stron internetowych, raportów firmowych lub plików prywatnych, które pojawiają się później.

Załóżmy, że dziś zakończysz trening modelu.

A jutro ktoś stworzy:

new_report.pdf

Ten plik PDF po prostu nie istniał w momencie treningu modelu.

Jak więc model miałby odpowiedzieć na pytanie:

"Jakie są trzy główne wnioski z tego raportu?"

To właśnie jest luka, którą ma za zadanie wypełnić RAG.

Czym jest RAG?

RAG = Retrieval-Augmented Generation

Sama nazwa wyjaśnia mechanizm:

  • Retrieval → znajdowanie odpowiednich informacji
  • Zwielokrotnione → wstrzyknięcie tych informacji do kontekstu modelu
  • Generowanie → stworzenie odpowiedzi na ich podstawie
  • Zamiast prostego toku:

    Question
       ↓
    LLM
       ↓
    Answer
    

    można zbudować pipeline w następujący sposób:

    Question
       ↓
    Retrieve relevant information
       ↓
    Add information to context
       ↓
    LLM
       ↓
    Answer
    

    Ta zmiana architektury może mieć znaczący wpływ.

    RAG vs Tradycyjna sztuczna inteligencja

    Bез RAG tok jest bezpośredni:

    ┌──────────────┐
    Question ───→│     LLM      │
                 └──────┬───────┘
                        ↓
                     Answer
    

    Z dodaniem RAG:

    ┌─────────────────┐
                        │ External Data   │
                        │ PDFs / Docs     │
                        │ Database / Web  │
                        └────────┬────────┘
                                 ↓
    Question → Retrieval → Relevant Context
                                 ↓
                               LLM
                                 ↓
                              Answer
    

    Model nie musi już zapamiętywać wszystkiego z góry.

    Zamiast tego może uzyskiwać istotne fakty na żądanie.

    Jak właściwie działa RAG?

    Standardowa konfiguracja RAG przechodzi przez kilka odrębnych etapów:

    Documents
       ↓
    Document Processing
       ↓
    Chunking
       ↓
    Embeddings
       ↓
    Vector Database
       ↓
         ← User Question
       ↓
    Query Embedding
       ↓
    Similarity Search
       ↓
    Relevant Chunks
       ↓
    LLM
       ↓
    Final Answer
    

    Przejdźmy przez każdy z nich.

    Zbieraj swoje dane

    Punktem wyjścia jest zebranie materiałów źródłowych. Może to obejmować:

    • Pliki w formacie PDF
    • Dokumenty stworzone w Wordzie
    • Strony pobrane z stron internetowych
    • Prace naukowe lub badawcze
    • Wewnętrzne dokumenty firmy
    • Instrukcje opisujące produkt
    • Pliki tekstowe
    • Dane przechowywane w bazie danych
    • Wpisy z bazy wiedzy

    Jako przykład wyobraźmy folder zawierający:

    company_policy.pdf
    research_paper.pdf
    employee_handbook.pdf
    product_manual.pdf
    

    Proces RAG jest w stanie przetwarzać wszystkie te elementy.

    Dzielenie dokumentów na fragmenty

    Podawanie modelowi całego dokumentu naraz zwykle nie jest praktyczne ze względu na ograniczenia rozmiarowe.

    Dlatego dokumenty są dzielone na mniejsze jednostki zwane fragmentami.

    Oto proste ilustracje:

    Document
    │
    ├── Chunk 1
    ├── Chunk 2
    ├── Chunk 3
    ├── Chunk 4
    ├── Chunk 5
    └── ...
    

    Wyobraźmy sobie dokument o 100 stronach zawierający kilka tysięcy zdań.

    Zamiast skanować całość przy każdym zapytaniu, można ją podzielić na łatwiejsze do obsługi sekcje:

    Chunk 1 → Introduction
    Chunk 2 → Architecture
    Chunk 3 → Security
    Chunk 4 → Performance
    Chunk 5 → Limitations
    

    Sposób dzielenia treści zależy od jej charakteru oraz tego, co się tworzy.

    Konwertowanie tekstu na embeddingi

    Tutaj sprawa staje się naprawdę interesująca.

    Komputery nie potrafią pojąć znaczenia tekstu w taki sam sposób jak ludzie, przynajmniej nie w sposób naturalny.

    Aby to obejść, tekst jest konwertowany na wektory liczbowe zwane embeddingami.

    Rozważmy ten przykład:

    "Machine learning is a branch of AI"
                 ↓
            Embedding Model
                 ↓
          [0.21, -0.14, 0.73, ...]
    

    A drugie zdanie:

    "Artificial intelligence includes machine learning"
                 ↓
          [0.19, -0.11, 0.70, ...]
    

    Ponieważ te dwa zdania mają podobne znaczenie, ich wektory zazwyczaj znajdują się blisko siebie w przestrzeni embeddingów.

    W przybliżeniu wygląda to tak:

    AI
                ●
               / \
              /   \
         ML ●       ● Robotics
            \
             \
           Cooking ●
    

    Celem nie jest znalezienie dosłownego pokrycia się słów.

    Celem jest raczej uchwycenie podobieństwa semantycznego — bliskości w znaczeniu.

    Czym jest wyszukiwanie semantyczne?

    Klasyczny silnik wyszukiwania oparty na słowach kluczowych przyjąłby zapytanie takie jak:

    "samochód"

    i szukał dokumentów, które dosłownie zawierają słowo samochód.

    Z kolei wyszukiwanie semantyczne stara się zrozumieć, co faktycznie oznacza to zapytanie.

    Naprzимер, zapytanie takie jak:

    ">Jak pojazdy elektryczne przechowują energię?"

    może wyświetlić fragment tekstu wyjaśniający, że pojazdy elektryczne polegają na ogniwach litowo-jonowych do przechowywania ładunku elektrycznego.

    Sformułowania te ledwo się pokrywają, a mimo to dopasowanie ma sens.

    Działa to dlatego, że embeddingi kodują relacje w znaczeniu, a nie tylko w pisowni.

    Zachowuj embeddingi w bazie danych wektorowej

    Gdy już istnieją embeddingi, potrzebują one miejsca przechowywania.

    To właśnie jest rolą bazy danych wektorowych, która przechowuje:

    Chunk
       +
    Embedding
       +
    Metadata
    

    Struktura wygląda mniej więcej tak:

    Vector Database
    
    ID    Vector              Text
    -------------------------------------
    1     [0.21,...]          Chunk A
    2     [0.78,...]          Chunk B
    3     [0.34,...]          Chunk C
    4     [0.91,...]          Chunk D
    

    Gdy ktoś wysyła pytanie, system przeszukuje te przechowywane wektory w celu znalezienia odpowiedniego kontekstu.

    Niektóre powszechnie używane narzędzia do tego typu wyszukiwania wektorowego to:

    • FAISS
    • pgvector
    • Pinecone
    • Weaviate
    • Milvus
    • Chroma

    To, którą konkretnie bazę danych wybierzesz, nie jest kluczowe.

    Ważne jest to:

    Zachowuj informacje w formie, która umożliwia szybkie wyszukiwanie oparte na znaczeniu.

    Użytkownik zadaje pytanie

    Załóżmy, że użytkownik wpisze:

    ">Które mechanizmy bezpieczeństwa używa system?"

    To pytanie jest następnie przekształcane w swoje własne embeddingi.

    User Question
          ↓
    Embedding Model
          ↓
    Query Vector
    

    W tym momencie system posiada numeryczny odcisk palca pytania.

    Szukanie istotnych informacji

    Wektor zapytania jest następnie porównywany ze wszystkimi wektorami już znajdującymi się w bazie danych.

    Mówiąc ogólnie:

    Query
                       ●
                      / \
                     /   \
                    ●     ●
               Relevant   Relevant
                 Chunk     Chunk
    
                        ●
                     Unrelated
    

    Wybierane są najbardziej odpowiadające fragmenty.

    Na przykład, przy założeniu:

    Question:
    "What security mechanisms does the system use?"
    

    System może zwrócić:

    Retrieved:Chunk 17 → Authentication
    Chunk 42 → Encryption
    Chunk 51 → Access control
    

    Dzięki temu model ma teraz sensowny, istotny kontekst do pracy.

    Dodanie pozyskanych informacji do promptu

    Gdy znajdą się odpowiednie fragmenty, są one przekazywane modelowi LLM jako kontekst wraz z oryginalnym pytaniem.

    Koncepcyjnie struktura promptu wygląda tak:

    System Instructions
            +
    User Question
            +
    Retrieved Context
            ↓
           LLM
            ↓
         Answer
    

    Na przykład:

    Context:
    
    "The system uses AES-GCM encryption
    for protecting stored data..."Question:"What encryption method does the
    system use?"
    

    Biorąc pod uwagę tę konfigurację, model może odpowiedzieć czymś w rodzaju:

    "System używa szyfrowania AES-GCM do ochrony przechowywanych danych."

    Ta odpowiedź opiera się na pobraanych danych, a nie wyłącznie na tym, co model przyswoił podczas swojego początkowego szkolenia.

    I to jest kluczowa idea

    Sam model nie musi koniecznie nauczyć się niczego trwałego z tej wymiany.

    Jego wewnętrzne parametry pozostają nietknięte.

    Zamiast tego proces wygląda w ten sposób:

    New Information
          ↓
    External Knowledge Store
          ↓
    Retrieve When Needed
          ↓
    LLM Uses Context
          ↓
    Answer
    

    To rozdzielenie pomiędzy stałą wiedzą modelu a wymiennym, zewnętrznym źródłem wiedzy jest dokładnie tym, co nadaje RAG jego siłę.

    RAG nie oznacza, że AI nauczyło się tych informacji

    To rozróżnienie ma ogromne znaczenie i łatwo je pomylić.

    Załóżmy, że przesłasz plik w takim formacie:

    Project_Report.pdf
    

    a asystent zacznie odpowiadać na pytania w oparciu o niego.

    To nie oznacza, że model trwale wchłonął treść tego raportu do swoich wag.

    Zamiast tego dokument jest:

    Stored externally
           ↓
    Retrieved when relevant
           ↓
    Provided as context
           ↓
    Used to generate response
    

    Pomocną analogią jest uczeń korzystający z podręcznika podczas egzaminu.

    Uczeń nie zapamiętał z góry każdej strony.

    Zamiast tego proces przebiega w następujący sposób:

    Zadaj pytanie, następnie znajdź odpowiednią stronę, przeczytaj ją i udziel odpowiedzi

    RAG zachowuje się mniej więcej w ten sam sposób.

    RAG vs Fine-Tuning

    To porównanie pojawia się ciągle, więc warto je jasno przedstawić.

    Fine-Tuning

    Fine-tuning polega na dostosowaniu parametrów modelu poprzez kontynuowanie jego szkolenia na określonej grupie przykładów.

    Koncepcyjnie:

    Base Model
       ↓
    Training Data
       ↓
    Fine-Tuning
       ↓
    Modified Model
    

    RAG

    RAG pozostawia model w zasadzie bez zmian i zamiast tego dostarcza informacje z zewnątrz w momencie zadania pytania.

    Base Model
       +
    External Knowledge
       ↓
    Retrieval
       ↓
    Context
       ↓
    Answer
    

    Oto uproszczony porównanie obok siebie:

    Mniej bezpośrednie
    Cecha RAG Doprecyzowanie
    Zmiana parametrów modelu Zazwyczaj nie Tak
    Wiedza zewnętrzna Doskonałe dopasowanie
    Aktualizacja wiedzy Aktualizacja dokumentów lub indeksu Może wymagać ponownego szkolenia
    Dokumenty prywatne Korzystne Możliwe, ale inne kompromisy
    Styl lub zachowanie Ograniczone Mocniejsze zastosowanie
    Uzasadnienie źródłem Silny potencjał Nie jest to wrodzone zagwarantowane

    Te dwie techniki nie są ze sobą wykluczające się; zespoły mogą je łączyć.

    Czy RAG może korzystać z Internetu?

    Tak, może.

    Zbiór wiedzy zewnętrznej nie musi znajdować się w prywatnym sklepie dokumentów.

    Zamiast tego system może pobierać informacje z takich źródeł jak:

    Internet
       ↓
    Search Engine
       ↓
    Relevant Pages
       ↓
    LLM
       ↓
    Answer
    

    Staje się to cenne, gdy pytanie opiera się na aktualnych faktach.

    Naprzимер:

    "Co zmieniło się w najnowszej wersji tego oprogramowania?"

    W takim przypadku system może najpierw pobrać aktualną dokumentację i wykorzystać ją do sformułowania odpowiedzi.

    Mimo to samo pobieranie informacji nie gwarantuje dokładności.

    Źródło, z którego pobierane są dane, nadal musi być wiarygodne i rzeczywiście istotne dla pytania.

    RAG do własnych dokumentów

    Jednym z najpraktyczniejszych zastosowań tego wzorca jest możliwość bezpośredniej komunikacji z własnymi plikami.

    Wyobraź sobie folder zawierający coś w rodzaju:

    Research/
    │
    ├── paper1.pdf
    ├── paper2.pdf
    ├── dataset_notes.pdf
    ├── experiment_results.pdf
    └── thesis.pdf
    

    Ustawienie oparte na RAG pozwala zadawać pytania takie jak:

    "Jakie były główne ograniczenia stwierdzone podczas eksperymentów?"

    Kolejność operacji wygląda wtedy następująco:

    Your Documents
          ↓
    Extract Text
          ↓
    Chunk Documents
          ↓
    Create Embeddings
          ↓
    Vector Database
          ↓
    Question
          ↓
    Semantic Search
          ↓
    Relevant Sections
          ↓
    LLM
          ↓
    Answer
    

    Dlatego właśnie RAG stał się tak cenny dla procesów badawczych oraz systemów wiedzy na skalę przedsiębiorstw.

    RAG w praktycznych zastosowaniach

    Wzorzec ten występuje w szerokiej gamie systemów.

    Podpora klienta

    Customer Question
           ↓
    Product Documentation
           ↓
    Retrieve Relevant Section
           ↓
    AI
           ↓
    Response
    

    Edukacja

    Student Question
           ↓
    Course Materials
           ↓
    Relevant Concepts
           ↓
    AI Tutor
           ↓
    Explanation
    

    Badania naukowe

    Research Question
           ↓
    Research Papers
           ↓
    Relevant Sections
           ↓
    AI
           ↓
    Summary
    

    Wiedza firmy

    Employee Question
           ↓
    Internal Documents
           ↓
    Retrieve Policy
           ↓
    AI
           ↓
    Answer
    

    RAG nie eliminuje całkowicie halucynacji

    To zagadnienie wymaga podkreślenia.

    Można by przypuszczać:

    „Jeśli użyję RAG, sztuczna inteligencja nigdy nie będzie tworzyć halucynacji.”

    To nie do końca prawda.

    RAG może zmniejszyć liczbę określonych rodzajów nieudokumentowanych odpowiedzi, ale nie eliminuje tego problemu całkowicie.

    Naprzykład:

    Bad Retrieval
         ↓
    Wrong Context
         ↓
    LLM
         ↓
    Wrong Answer
    

    Istnieje również kilka innych sposobów, w jakie mogą wystąpić błędy:

    • Kawałki tekstu podzielone w taki sposób, że tracią swoje znaczenie
    • Fakty istotne, które po prostu nie występują w materiałach źródłowych
    • Cytaty pobrane, które w rzeczywistości nie odnoszą się do pytania
    • Dokumenty przestarzałe lub już nieaktualne
    • Pliki źródłowe, które od samego początku były błędne lub niepasujące
    • Zbyt dużo kontekstu umieszczonego jednocześnie w zapytaniu
    • Sam model, który błędnie rozumuje pomimo dobrych danych wejściowych

    Z tego powodu solidny system RAG wymaga czegoś więcej niż tylko bazy danych wektorowej w tle.

    Ocena systemu RAG

    Można ocenić proces RAG na kilku różnych poziomach.

    Jakość wyszukiwania

    Czy system pobrał właściwe informacje?

    Question
       ↓
    Retrieved chunks
       ↓
    Are they relevant?
    

    Jakość generowania

    Czy model faktycznie dobrze wykorzystał to, co zostało pobraane?

    Retrieved Context
           ↓
    Generated Answer
           ↓
    Is the answer supported?
    

    Jakość end-to-end

    Czy cały proces łącznie prawidłowo odpowiada na pytanie użytkownika?

    Question
     ↓
    Retrieval
     ↓
    Context
     ↓
    Generation
     ↓
    Final Answer
    

    System może zawieść nawet wtedy, gdy leżący u jego podstaw model językowy jest doskonały.

    Naprzимер:

    Jeśli wyszukiwanie pokaże niewłaściwy dokument, nawet bardzo zdolny model może podać błędną odpowiedź.

    Matymatyka stojąca za embeddingami

    Embeddingi umożliwiają porównywanie fragmentów informacji za pomocą matematyki.

    Jedną z powszechnie używanych miar podobieństwa jest podobieństwo kosinowe.

    Dla dwóch wektorów A i B podobieństwo kosinowe oblicza się jako iloczyn skalarny A i B podzielony przez iloczyn ich długości.

    Otrzymana wartość pokazuje, na jak blisko wektory te są zgodne pod względem kierunku.

    Mówiąc prościej:

    High similarity
          ↓
    Vectors point in similar directions
          ↓
    Likely related meaning
    

    To daje RAG konkretny, matematyczny sposób na znajdowanie informacji semantycznie powiązanych z zapytaniem.

    RAG to jak dostarczenie sztucznej inteligencji biblioteki

    Oto chyba najjaśniejszy sposób na to wyobrażenie.

    Pomyśl o sztucznej inteligencji jako o bardzo zdolnym uczniu.

    Bез RAG:

    Student
       ↓
    Uses what they already remember
       ↓
    Answer
    

    Z RAG:

    Student
       ↓
    Goes to library
       ↓
    Finds relevant book
       ↓
    Reads relevant pages
       ↓
    Answers question
    

    Podstawowa wiedza i umiejętność rozumowania ucznia się nie zmieniły.

    To, co się zmieniło, to informacje dostępne dla tego ucznia w danym momencie.

    To właśnie stanowi istotę koncepcji RAG.

    Kierunek rozwoju RAG

    Systemy RAG stają się coraz bardziej zaawansowane.

    Przyszłe wersje mogą łączyć:

    User Question
          ↓
    Query Understanding
          ↓
    Multiple Retrieval Sources
          ↓
    Document Ranking
          ↓
    Reasoning
          ↓
    Tool Use
          ↓
    Verification
          ↓
    Answer + Evidence
    

    Zamiast korzystać z jednego dokumentu, system może przeszukiwać:

    PDFs
    +
    Database
    +
    Website
    +
    API
    +
    Company Knowledge Base
    

    Następnie powiązane elementy są łączone ze sobą.

    To sprawia, że RAG staje się szerszą architekturą wiedzy i rozumowania dla agentów AI, a nie tylko techniką wyszukiwania.

    Bardziej szeroki kontekst

    RAG oznacza znaczącą zmianę w sposobie postrzegania wiedzy przez AI.

    Stary model polegał na:

    Train AI
       ↓
    Put knowledge into model
       ↓
    Ask questions
    

    Nowsze podejście przypomina bardziej:

    Train AI
       ↓
    Keep knowledge externally
       ↓
    Retrieve relevant information
       ↓
    Reason over it
       ↓
    Generate answer
    

    Rozdzielenie inteligencji modelu od zewnętrznej wiedzy okazuje się niezwykle skuteczne.

    Model nie musi już przechowywać wszystkich faktów w swojej strukturze.

    Zamiast tego musi umieć efektywnie wykorzystywać informacje, gdy tylko ma do nich dostęp.

    Ostatnia myśl

    Być może przyszłość sztucznej inteligencji nie polega na tworzeniu modelu, który zapamiętałby wszystko, co warto znać.

    Być może chodzi raczej o stworzenie modelu, który potrafi określić, co musi sprawdzić, znaleźć odpowiedni źródło, wykorzystać te informacje w praktyce i sprawdzić, czy odpowiedź jest poprawna.

    To właśnie sprawia, że RAG zasługuje na uwagę.

    AI Model
       +
    External Knowledge
       +
    Retrieval
       +
    Reasoning
       +
    Verification
       ↓
    More Useful AI
    

    To wskazuje na szerszą koncepcję: najmądrzejsza sztuczna inteligencja to może nie ta, która wie wszystko. To może być ta, która potrafi znaleźć to, czego potrzebuje.

    Literatura pokrewna

  • ReAct wyjaśnione: Jak agenci AI łączą rozumowanie z działaniami w praktyce — Dowiedz się, jak framework ReAct łączy rozumowanie z wykorzystaniem narzędzi w celu napędzania agentów AI oraz w jaki sposób różni się od modeli typu Chain-of-Thought, RL i modele oparte na rozumowaniu.
  • Dziewięć elementów architektonicznych dla systemów AI-agencyjnych klasy produkcji — Poznaj plan architektury oparty na dziewięciu elementach – obejmujący sieci zero trust, poziomy danych oraz mechanizmy wiązania dowodów – służący do budowy sprawdzalnych systemów AI-agencyjnych klasy korporacyjnej.
  • Zrozumienie pamięci AI: kontekst, wkładki, RAG i masy modelu wyjaśnione — Ten artykuł szczegółowo opisuje, w jaki sposób systemy AI faktycznie przechowują informacje, omawiając okna kontekstowe, wkładki, bazy danych wektorowych, RAG oraz parametry modelu.