ai RAG - ghdrako/doc_snipets GitHub Wiki

RAG = Retrieval-Augmented Generation

To architektura łącząca dwa podejścia:

  • Retrieval – wyszukiwanie informacji z zewnętrznego źródła wiedzy (np. bazy danych, dokumentów, wyszukiwarek).
  • Generation – generowanie odpowiedzi przez model językowy (LLM), z wykorzystaniem wyszukanych informacji.

Cel: Umożliwić modelowi odpowiadanie na pytania w oparciu o aktualne i dokładne dane, które nie znajdują się bezpośrednio w jego wytrenowanej wiedzy.

Ogólny przepływ

  • Input użytkownika (np. pytanie).
  • Moduł Retrieval przeszukuje bazę wiedzy (np. dokumenty PDF, artykuły, wewnętrzne dane firmy).
  • Zwrócone fragmenty są przekazywane jako kontekst do modelu językowego.
  • Model generuje odpowiedź na podstawie pytania i dostarczonych fragmentów.

RAG bez rerankingu

  • Retriever (np. wektorowy, oparty o embeddingi) znajduje np. 10 fragmentów dokumentów najbardziej podobnych do zapytania. *Wszystkie (lub część) tych fragmentów trafiają do modelu generatywnego, który z nich buduje odpowiedź. Problem: embeddingi nie zawsze dają idealną kolejność trafności — np. fragment 5. może być ważniejszy niż fragment 1.

Reranking

Reranking to drugi etap selekcji:

  • Retriever zwraca np. 50 kandydatów.
  • Reranker (np. model typu cross-encoder) ocenia dokładniej, jak bardzo każdy kandydat pasuje do zapytania.
  • Wybierasz np. 5 najlepszych i dopiero one trafiają do modelu generatywnego.

modele do rerankingu:

  • Bi-encoder (embedding retriever) – szybki, ale mniej precyzyjny.
  • Cross-encoder (reranker) – wolniejszy, ale dokładniejszy (porównuje pytanie i fragment razem, nie osobno).

Przykłady popularnych rerankerów:

  • cross-encoder/ms-marco-MiniLM-L-6-v2 (Hugging Face)
  • bge-reranker-large (BAAI)
  • Cohere Rerank (API)

Schemat RAG z rerankingiem

Zapytanie użytkownika
       ↓
 [Retriever] – szybkie wyszukiwanie (np. 50 fragmentów)
       ↓
 [Reranker] – dokładne ocenienie trafności
       ↓
 [Top N fragmentów] – najbardziej trafne
       ↓
 [Generator] – model LLM tworzy odpowiedź