Jak działa RAG
System RAG ma dwie części.
Zanim ktokolwiek zapyta: indeksowanie
Dokumenty są zbierane z miejsc, w których się znajdują, takich jak repozytorium dokumentów, wiki lub system zgłoszeń. Są dzielone na fragmenty, zwykle nie dłuższe niż kilkaset tokenów. Każdy fragment jest zamieniany w embedding, czyli listę liczb oddającą jego znaczenie, i zapisywany w indeksie wyszukiwania, często obok indeksu słów kluczowych.
Gdy ktoś pyta: wyszukiwanie i generowanie
Pytanie jest wyszukiwane w indeksie. Najlepiej pasujące fragmenty są pobierane, często ponownie szeregowane przez drugi model, i umieszczane w prompcie razem z pytaniem i instrukcjami takimi jak "odpowiadaj wyłącznie na podstawie tych fragmentów i je cytuj". Model pisze odpowiedź, a aplikacja pokazuje obok niej źródła.
Opcje architektury RAG
| Opcja | Jak to działa | Gdzie pasuje |
|---|---|---|
| Wyszukiwanie wektorowe | Znajduje fragmenty bliskie znaczeniowo pytaniu, za pomocą embeddingów | Pytania sformułowane inaczej niż dokumenty. Może pomijać dokładne terminy, takie jak kody i nazwy |
| Wyszukiwanie hybrydowe | Łączy wyszukiwanie po słowach kluczowych (BM25) z wyszukiwaniem wektorowym i scala wyniki | Dobry wybór domyślny dla treści firmowych, które łączą prozę z kodami, nazwami i liczbami |
| Ponowne szeregowanie | Drugi model zmienia kolejność najlepszych wyników według trafności | Duże zbiory, w których pierwsze wyszukiwanie zwraca wiele wyników niemal trafnych |
| Wyszukiwanie kontekstowe | Przed indeksowaniem dodaje do każdego fragmentu krótki opis jego dokumentu | Fragmenty, które tracą znaczenie poza kontekstem, takie jak klauzula lub wiersz tabeli |
| Długi kontekst | Zamiast wyszukiwać, umieszcza całe dokumenty w oknie kontekstowym modelu | Małe, stabilne zbiory dokumentów. Kosztuje więcej za pytanie |
W testach Anthropic embeddingi kontekstowe połączone z wyszukiwaniem po słowach kluczowych BM25 i ponownym szeregowaniem zmniejszyły o 67% odsetek przypadków, w których właściwego fragmentu brakowało w 20 najlepszych wynikach. Na przykład Azure AI Search uruchamia zapytania po słowach kluczowych i wektorowe równolegle i scala je metodą Reciprocal Rank Fusion, częstym sposobem budowania wyszukiwania hybrydowego.
Zanim zbudujecie indeks, sprawdźcie, co już oferuje Wasza platforma AI. Na przykład Claude może pracować z połączonymi źródłami, takimi jak Google Drive lub Microsoft 365, przez konektory, co często wystarcza na pierwszy krok.
Ograniczenia RAG i jak sobie z nimi radzić
- Pominięte fragmenty. Dzielenie dokumentów może odciąć fragment od kontekstu, który nadaje mu znaczenie, a embeddingi mogą pominąć dokładne dopasowania, które znajduje wyszukiwanie po słowach kluczowych. Wyszukiwanie hybrydowe i kontekstowe ograniczają oba problemy.
- Nieaktualne treści. Indeks jest kopią. Gdy dokumenty się zmieniają, trzeba zaktualizować je i ich embeddingi, najlepiej automatycznie i w tle.
- Uprawnienia. Indeks musi respektować to, kto co może zobaczyć, tak aby człowiek pobierał tylko fragmenty, które wolno mu czytać.
- Odpowiedzi wykraczające poza źródła. RAG ogranicza zmyślone odpowiedzi, ale ich nie eliminuje. Instrukcje, by odpowiadać wyłącznie na podstawie fragmentów, cytaty, które ludzie mogą sprawdzić, i zwykłe "nie wiem", gdy nie znaleziono nic istotnego, utrzymują odpowiedzi w zgodzie z prawdą.
- Za dużo kontekstu. Modele mogą gubić informacje umieszczone w środku długiego promptu, więc mniej lepszych fragmentów często wygrywa z większą ich liczbą.
Sposobem, by sprawdzić, czy system RAG działa, jest test: zestaw prawdziwych pytań ze znanymi odpowiedziami i źródłami, mierzony pod kątem jakości wyszukiwania i odpowiedzi, przed każdą zmianą i po niej.
RAG, fine-tuning i długi kontekst
| Podejście | Co zmienia | Do czego używać |
|---|---|---|
| RAG | To, co model widzi, gdy odpowiada | Wiedza, która się zmienia, jest obszerna lub wymaga cytatów |
| Fine-tuning | To, jak model się zachowuje, przez dodatkowe trenowanie | Spójny styl, format lub zadanie, a nie fakty, które się zmieniają |
| Długi kontekst | To, ile model czyta w jednym żądaniu | Kilka dokumentów naraz, na przykład jedna umowa lub jeden raport |
Dobrze się łączą: model można dostroić do formatu, wiedzę czerpać z RAG, a cały dokument czytać, gdy zostanie załączony.
Gdzie firmy korzystają z RAG
- Polityki i HR: odpowiedzi o urlopach, wydatkach lub zasadach bezpieczeństwa, z linkiem do polityki.
- Obsługa klienta: odpowiedzi przygotowane na podstawie bazy wiedzy i dawnych zgłoszeń, do wysłania przez człowieka.
- Dział prawny i compliance: research w umowach, klauzulach i przepisach, z każdym fragmentem zacytowanym.
- Dokumentacja techniczna: odpowiedzi dla inżynierów i zespołów terenowych na podstawie instrukcji i specyfikacji.
- Sprzedaż: fakty o produktach i teksty z dawnych ofert, pod konkretną szansę sprzedaży.
Źródła
- Lewis et al.: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, NeurIPS 2020
- Anthropic: Introducing Contextual Retrieval, 19 września 2024 r.
- Microsoft: Hybrid search in Azure AI Search
- AWS: What is retrieval-augmented generation?
- Liu et al.: Lost in the Middle: How Language Models Use Long Contexts