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.

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 rejestrowy

Poznańska 117/11

62-023 Kamionki · obsługa zdalna

Godziny pracy

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

Wolisz porozmawiać?

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

Zadzwoń teraz