AI / LLM Architecture

    RAG — Retrieval Augmented Generation

    ChatGPT nie zna Twojej dokumentacji ani danych sprzed tygodnia. RAG to architektura która daje LLM dostęp do Twoich danych w czasie rzeczywistym — bez fine-tuningu i bez halucynacji.

    Zero halucynacji
    Główna korzyść
    Fine-tuning
    Alternatywa
    LangChain
    Framework
    RAGAS
    Ewaluacja

    5 kluczowych komponentów RAG

    Jakość RAG zależy od każdego z tych kroków. Słabe chunking lub zły embedding model sabotuje cały system.

    Chunking Strategy

    Jak dzielić dokumenty na fragmenty do embeddowania

    • Fixed size (200-500 tokenów) — prosty
    • Semantic chunking — tnie na granicach semantycznych
    • Parent-child — duże chunks dla kontekstu, małe dla retrieval
    • Sentence window — chunk = zdanie + N sąsiednich zdań

    Embedding Model

    Model zamieniający tekst na wektor numeryczny

    • OpenAI text-embedding-3-small — szybki, niedrogi, dobra jakość
    • Cohere Embed v3 — lepszy dla multilingual
    • BGE-large — open-source, lokalny, competitive quality
    • Nomic Embed Text — open-source, bardzo długi context

    Retrieval Strategy

    Jak wyszukiwać relevantne chunks z bazy

    • Dense Retrieval — semantic search (vector similarity)
    • Sparse Retrieval — BM25/TF-IDF keyword search
    • Hybrid — weighted combination obu
    • Multi-query — LLM generuje wiele queries, merge wyników

    Re-ranking

    Opcjonalne doprecyzowanie kolejności pobranych chunks

    • Cross-encoder re-ranker (Cohere Rerank, BGE)
    • LLM-based re-ranking (droższe, wolniejsze)
    • Reciprocal Rank Fusion dla multi-source
    • Custom scoring z metadanymi (data, autor, kategoria)

    Prompt Engineering

    Jak konstruować prompt dla LLM z retrieved context

    • System prompt z instrukciami dot. zachowania
    • Context placement (ważne chunks na początku/końcu)
    • Citation instructions ('cytuj źródło dla każdego faktu')
    • Fallback instruction ('jeśli nie wiesz, powiedz że nie wiesz')

    Jak ewaluować jakość RAG (RAGAS)

    RAGAS to framework do automatycznej ewaluacji pipeline'ów RAG — mierzy retrieval i generation osobno.

    1

    Context Precision

    Jaki % pobranych chunks jest relevantny do pytania

    Benchmark

    Powyżej 0.8 to dobry wynik. Poniżej 0.5 = bad retrieval

    2

    Context Recall

    Czy wszystkie relevantne dokumenty zostały pobrane

    Benchmark

    Powyżej 0.9 to dobry wynik dla kompletnych odpowiedzi

    3

    Faithfulness

    Czy odpowiedź LLM jest oparta wyłącznie na dostarczonym kontekście

    Benchmark

    Powyżej 0.9. Niższe = LLM 'wymyśla' poza kontekstem

    4

    Answer Relevancy

    Czy odpowiedź jest relevantna do pytania użytkownika

    Benchmark

    Powyżej 0.8. Mierzone przez LLM judge lub human eval

    Często zadawane pytania

    Co to jest RAG (Retrieval Augmented Generation)?

    RAG (Retrieval Augmented Generation) to architektura AI która wzbogaca LLM (Large Language Model) o dynamiczny dostęp do zewnętrznych, aktualnych danych przed generowaniem odpowiedzi. Bez RAG: LLM ma wiedzę tylko do daty swojego treningu i nie wie nic o Twojej prywatnej dokumentacji, danych klientów czy aktualnych wydarzeniach. Z RAG: zanim LLM odpowie, wyszukuje relevantne dokumenty z Twojej bazy danych (vector database), dostarcza je jako kontekst i generuje odpowiedź na ich podstawie. Efekty: mniej halucynacji (LLM opiera się na prawdziwych dokumentach), aktualność danych (baza jest regularnie aktualizowana), prywatność (Twoje dane nie trafiają do treningu modelu), referencje (możesz wskazać skąd pochodzi odpowiedź).

    Jak działa pipeline RAG krok po kroku?

    Pipeline RAG składa się z dwóch faz. Faza offline (indexing): Chunking — dokumenty są dzielone na fragmenty (chunks) po 200-500 tokenów. Zbyt duże chunks = za dużo irrelentant info. Za małe = brak kontekstu. Embedding — każdy chunk jest zamieniony na wektor przez embedding model (OpenAI text-embedding-3-small, Cohere, BGE). Storing — wektory + oryginalne teksty są zapisane do Vector Database (Pinecone, Qdrant, Weaviate). Faza online (retrieval + generation): Query Embedding — pytanie użytkownika jest zamieniane na wektor tym samym modelem. Retrieval — Vector DB zwraca Top-K (np. 5) najbliższych chunków. Re-ranking (opcjonalne) — cross-encoder re-rankuje pobrane chunks dla lepszej precyzji. Prompt Assembly — query + chunks = prompt dla LLM. Generation — LLM (GPT-4, Claude, Gemini) generuje odpowiedź na bazie dostarczonego kontekstu.

    Jakie są najczęstsze problemy z RAG i jak je rozwiązać?

    Problemy z RAG: Poor retrieval — baza zwraca irrelentant chunks. Fix: lepszy chunking (semantic chunking, parent-child), hybrid search (keyword + semantic), re-ranking (Cohere Rerank, BGE Reranker). Context window overflow — zbyt wiele chunks przekracza context window LLM. Fix: reduce Top-K, kompresja kontekstu, hierarchical retrieval. Chunking errors — chunks są zbyt małe (brak kontekstu) lub zbyt duże (zbyt dużo szumu). Fix: overlap między chunkami, semantic chunking (tną na zdania, nie stałej długości). Lost in the middle — LLM ignoruje środek długiego kontekstu. Fix: ustaw ważne chunks na początku lub końcu promptu. Hallucination mimo kontekstu — LLM miesza wiedzę z treningu z kontekstem. Fix: instrukcja 'odpowiadaj TYLKO na podstawie poniższego kontekstu'.

    RAG vs. Fine-tuning — kiedy co stosować?

    RAG vs. Fine-tuning: Fine-tuning zmienia wagi modelu — model 'uczy się' nowych danych na stałe. RAG dynamicznie wstrzykuje dane do kontekstu — model nie jest modyfikowany. Kiedy RAG: Dane się często zmieniają (dokumentacja, FAQ, baza klientów). Potrzebujesz referencji do źródeł. Dane są prywatne i nie chcesz ich w modelu. Szybszy time-to-market (brak treningu). Kiedy Fine-tuning: Uczysz model nowego stylu, formatu lub tonu odpowiedzi. Model musi znać specjalistyczny żargon. Dane zmieniają się rzadko i chcesz max performance. RAG + Fine-tuning razem: często najlepszy wynik. Fine-tuning uczy modelu domeny i stylu, RAG dostarcza aktualne fakty. Koszt: RAG jest tańszy w uruchomieniu (kilka godzin pracy). Fine-tuning kosztuje od 100 USD do 100,000+ USD dla dużych modeli.

    Jakie narzędzia i frameworki wspierają RAG?

    RAG tooling: Frameworki: LangChain — najpopularniejszy framework do budowania LLM apps i RAG pipeline'ów. Python/JS. Bogaty ekosystem integracji. LlamaIndex — specjalizowany w data ingestion i RAG. Łatwiejszy dla data-heavy use cases. Haystack — enterprise-ready, dobry dla complex search use cases. Embedding Models: OpenAI text-embedding-3-small (1536 dim), Cohere Embed v3, BGE-large (open-source, lokalny), Nomic Embed Text. Vector Databases: Pinecone, Qdrant, Weaviate, Chroma (prototypy). Re-ranking: Cohere Rerank, BGE Reranker, Jina Reranker. LLMs dla generacji: OpenAI GPT-4o, Anthropic Claude 3.5 Sonnet, Google Gemini, Llama 3 (open-source). Evaluation: RAGAS (RAG Assessment) do automatycznej ewaluacji jakości RAG pipeline'u. Mierzy faithfulness, answer relevancy, context precision.

    Czytaj dalej

    Powiązane artykuły

    Kontakt

    Skontaktuj się z nami

    Porozmawiajmy o Twoim projekcie. Bezpłatna wycena w ciągu 24 godzin.

    Wyślij zapytanie

    Bezpłatna wycena w 24h
    Bez zobowiązań
    Indywidualne podejście
    Ekspresowa realizacja

    Telefon

    +48 790 814 814

    Pon-Pt: 9:00 - 18:00

    Email

    adam@fotz.pl

    Odpowiadamy w ciągu 24h

    Adres

    Plac Wolności 16

    61-739 Poznań

    Godziny pracy

    Pon - Pt9:00 - 18:00
    Sob - NdzZamknięte

    Wolisz porozmawiać?

    Zadzwoń teraz i porozmawiaj z naszym specjalistą o Twoim projekcie.

    Zadzwoń teraz