Przegląd architektury systemu RAG
Zrozumie Pan/Pani komponenty i przepływ pracy typowego systemu RAG, ze szczególnym uwzględnieniem roli baz wektorowych.
Przegląd architektury systemu RAG to bezpłatna lekcja Vector Databases: Pinecone, Weaviate & pgvector na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Vector Databases: Pinecone, Weaviate & pgvector, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Vector Databases: Pinecone, Weaviate & pgvector zawiera 4 lekcji w sumie.
Czym jest RAG?
Witamy! W tej lekcji omówimy systemy Retrieval Augmented Generation (RAG). RAG to zaawansowana technika łącząca duże modele językowe (LLM) z zewnętrznymi źródłami wiedzy.
Pozwala ona modelom LLM generować dokładniejsze, bardziej aktualne i bogatsze kontekstowo odpowiedzi poprzez wyszukanie odpowiednich informacji przed wygenerowaniem odpowiedzi. Można myśleć o niej jak o zapewnieniu modelowi LLM osobistego asystenta badawczego!
Luka w wiedzy LLM
Duże modele językowe (LLM) są niezwykłe, ale mają pewne ograniczenia:
- Granica aktualności wiedzy: Ich dane treningowe są statyczne, więc nie znają najnowszych wydarzeń ani informacji.
- Halucynacje: Czasami mogą generować informacje brzmiące wiarygodnie, ale niezgodne z faktami.
- Specyfika dziedzinowa: Nie mają dogłębnej wiedzy o danych prywatnych, zastrzeżonych ani wysoce specjalistycznych.
RAG pomaga sprostać tym wyzwaniom, dostarczając aktualne i istotne fakty.
Jak RAG wypełnia lukę
RAG wprowadza etap wyszukiwania informacji, zanim LLM wygeneruje odpowiedź. Zamiast polegać wyłącznie na wewnętrznych danych treningowych, LLM otrzymuje określony kontekst z zewnętrznej bazy wiedzy.
Oznacza to, że LLM może odpowiadać na pytania dotyczące nowych danych, dokumentów firmowych lub określonych tematów, na których nie był pierwotnie trenowany. Znacząco ogranicza to halucynacje i poprawia dokładność faktograficzną.
Podstawowe elementy RAG
System RAG zazwyczaj składa się z kilku współpracujących ze sobą kluczowych elementów:
- Baza wiedzy: Dokumenty źródłowe.
- Model embeddingów: Konwertuje tekst na wektory liczbowe.
- Wektorowa baza danych: Przechowuje te wektory i tworzy dla nich indeksy.
- Moduł wyszukujący: Znajduje odpowiednie informacje w wektorowej bazie danych.
- Generator (LLM): Wykorzystuje wyszukane informacje do sformułowania odpowiedzi.
Przyjrzyjmy się teraz dokładniej każdej części.
Baza wiedzy
Baza wiedzy stanowi podstawę systemu RAG. To w niej znajdują się wszystkie informacje, do których ma mieć dostęp LLM.
Może ona obejmować:
- Dokumenty firmowe (pliki PDF, wewnętrzne wiki)
- Artykuły internetowe lub blogi
- Książki lub publikacje naukowe
- Bazy danych lub dane ustrukturyzowane
Jakość i przydatność tych danych bezpośrednio wpływa na wydajność systemu RAG.
Embeddingi i indeksowanie
Zanim będzie można wyszukiwać dane, należy je przetworzyć. Obejmuje to dwa główne kroki:
- Dzielenie na fragmenty: Podział dużych dokumentów na mniejsze, łatwiejsze do obsługi części (fragmenty).
- Tworzenie embeddingów: Użycie modelu embeddingów do konwersji każdego fragmentu tekstu na wektor liczbowy (embedding). Wektory te odzwierciedlają znaczenie semantyczne tekstu.
Embeddingi są następnie przechowywane i indeksowane w celu zapewnienia wydajnego wyszukiwania.
Wektorowa baza danych
To właśnie tutaj pojawia się „wektor” w RAG! Wektorowa baza danych jest wyspecjalizowana w przechowywaniu i wydajnym wyszukiwaniu tych wielowymiarowych embeddingów wektorowych.
Gdy użytkownik zadaje pytanie, zapytanie również jest konwertowane na embedding. Wektorowa baza danych szybko znajduje następnie fragmenty dokumentów najbardziej „podobne” (najbliższe w przestrzeni wektorowej) do tego zapytania.
Element retrievera
Retriever to część systemu RAG odpowiedzialna za pobieranie odpowiedniego kontekstu z bazy wiedzy.
Gdy użytkownik przesyła zapytanie:
- Zapytanie jest przekształcane w embedding.
- Retriever używa tego embeddingu do przeszukania wektorowej bazy danych.
- Zwraca K najbardziej podobnych fragmentów tekstu (np. 3 lub 5 najlepszych).
Pobrane fragmenty stanowią „kontekst”, który zostanie przekazany do LLM.
Generator (LLM)
Na końcu do działania przystępuje generator, czyli duży model językowy (LLM). Otrzymuje on nie tylko zapytanie użytkownika, ale także zapytanie ORAZ pobrany kontekst.
Następnie syntetyzuje te informacje, aby sformułować wyczerpującą i dokładną odpowiedź. Proszę wypróbować ten prosty, koncepcyjny przykład w Pythonie:
def generate_response(query, context):
# This function simulates how an LLM uses context.
# In a real RAG, a complex LLM API call would happen here.
prompt = f"""Based on the following context, answer the question.
Context: {context}
Question: {query}
Answer:"""
# Simulate LLM processing
if "capital of France" in query.lower() and "Paris" in context:
return "The capital of France is Paris, according to the context provided."
else:
return f"LLM would process: '{prompt}' and generate a thoughtful response based on the context."
if __name__ == "__main__":
user_query = "What is the capital of France?"
retrieved_context = "Paris is the capital and most populous city of France, located on the Seine River."
print("--- RAG Process Simulation ---")
print(f"User Query: {user_query}")
print(f"Retrieved Context: {retrieved_context}")
llm_response = generate_response(user_query, retrieved_context)
print(f"LLM Response: {llm_response}")Przepływ pracy systemu RAG
Połączmy teraz wszystkie elementy. Oto typowy przebieg, gdy użytkownik wysyła zapytanie do systemu RAG:
- Zapytanie użytkownika: Użytkownik zadaje pytanie.
- Tworzenie embeddingu zapytania: Zapytanie jest konwertowane na embedding.
- Pobranie kontekstu: Embedding służy do przeszukania wektorowej bazy danych w celu znalezienia odpowiednich fragmentów dokumentów.
- Rozszerzenie promptu: Oryginalne zapytanie zostaje połączone z pobranym kontekstem, tworząc wzbogacony prompt.
- Wygenerowanie odpowiedzi: Ten rozszerzony prompt jest wysyłany do LLM, który generuje ostateczną odpowiedź.
Szybkie sprawdzenie: przepływ RAG
Który z poniższych kroków zachodzi *przed* wygenerowaniem przez duży model językowy (LLM) ostatecznej odpowiedzi w systemie RAG?
RAG: podsumowanie i kolejne kroki
Świetnie! Nauczył się Pan/Nauczyła się Pani podstawowej architektury systemu RAG. Omówiliśmy:
- Dlaczego RAG jest potrzebny do przezwyciężania ograniczeń LLM.
- Podstawowe elementy: bazę wiedzy, model embeddingów, wektorową bazę danych, retriever oraz generator (LLM).
- Przebieg pracy krok po kroku — od zapytania użytkownika do odpowiedzi LLM.
Zrozumienie tej architektury ma kluczowe znaczenie dla tworzenia zaawansowanych aplikacji AI uwzględniających kontekst. W następnej części zajmiemy się integracją RAG z popularnymi frameworkami LLM!
Ucz się Vector Databases: Pinecone, Weaviate & pgvector dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 12
- Lekcje
- 48
Często zadawane pytania
Czy lekcja „Przegląd architektury systemu RAG” jest bezpłatna?
Tak — pełny tekst „Przegląd architektury systemu RAG” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Vector Databases: Pinecone, Weaviate & pgvector, przejdź na CoddyKit PRO. Kurs Vector Databases: Pinecone, Weaviate & pgvector zawiera 4 lekcji w sumie.
Co nauczysz się w „Przegląd architektury systemu RAG”?
Zrozumie Pan/Pani komponenty i przepływ pracy typowego systemu RAG, ze szczególnym uwzględnieniem roli baz wektorowych. Ćwiczysz Vector Databases: Pinecone, Weaviate & pgvector z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Vector Databases: Pinecone, Weaviate & pgvector?
Nie wymagamy żadnego doświadczenia. Vector Databases: Pinecone, Weaviate & pgvector w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Przegląd architektury systemu RAG”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Vector Databases: Pinecone, Weaviate & pgvector?
Tak. Każda lekcja Vector Databases: Pinecone, Weaviate & pgvector zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Przegląd architektury systemu RAG
- Integracja z frameworkami LLM
- Pobieranie informacji z uwzględnieniem kontekstu
- Strategie dzielenia na fragmenty dla RAG