Vector Databases: Pinecone, Weaviate & pgvector · Lekcja

Przegląd architektury systemu RAG

Zrozumie Pan/Pani komponenty i przepływ pracy typowego systemu RAG, ze szczególnym uwzględnieniem roli baz wektorowych.

Lekcja 1 z 412 kroki

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:

  1. Zapytanie jest przekształcane w embedding.
  2. Retriever używa tego embeddingu do przeszukania wektorowej bazy danych.
  3. 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:

  1. Zapytanie użytkownika: Użytkownik zadaje pytanie.
  2. Tworzenie embeddingu zapytania: Zapytanie jest konwertowane na embedding.
  3. Pobranie kontekstu: Embedding służy do przeszukania wektorowej bazy danych w celu znalezienia odpowiednich fragmentów dokumentów.
  4. Rozszerzenie promptu: Oryginalne zapytanie zostaje połączone z pobranym kontekstem, tworząc wzbogacony prompt.
  5. 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!

Bezpłatny start

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

  1. Przegląd architektury systemu RAG
  2. Integracja z frameworkami LLM
  3. Pobieranie informacji z uwzględnieniem kontekstu
  4. Strategie dzielenia na fragmenty dla RAG
← Powrót do Vector Databases: Pinecone, Weaviate & pgvector