1. Dlaczego nie da się wkleić 1000 stron PDF bezpośrednio do czatu?
Choć współczesne modele językowe reklamują ogromne okna kontekstowe, próba przesłania całej firmowej dokumentacji w jednym zapytaniu prowadzi do trzech poważnych problemów inżynierskich:
• Eksplozja zużycia pamięci VRAM przetworzenie 100 tysięcy tokenów przy każdym pytaniu wymaga gigabajtów bufora KV Cache i wydłuża czas oczekiwania na pierwsze słowo do kilkudziesięciu sekund.
• Zjawisko Lost in the Middle badania dowodzą, że modele AI najlepiej pamiętają początek i sam koniec długiego promptu, często ignorując fakty ukryte w środkowych akapitach.
• Halucynacje przytłoczony nadmiarem nieistotnych danych model zaczyna mieszać wątki z różnych rozdziałów dokumentu.
2. Od tekstu do współrzędnych: Chunking oraz Embeddingi
Architektura RAG (Retrieval-Augmented Generation) rozwiązuje ten problem, podając modelowi wyłącznie te akapity, które dotyczą zadanego pytania. Proces przygotowania dokumentów (Ingestion) składa się z dwóch kroków:
• Chunking (Porcjowanie tekstu) dokument PDF lub Markdown jest dzielony na mniejsze fragmenty o stałej długości (np. po 500 tokenów) z tzw. zakładką (Overlap rzędu 50 tokenów), aby nie przeciąć ważnego zdania w połowie myśli.
• Embedding (Wektoryzacja) każdy fragment tekstu trafia do lekkiego modelu wektorującego (np. nomic-embed-text lub bge-m3), który zamienia znaczenie akapitu na tablicę liczb zmiennoprzecinkowych (np. wektor o długości 768 lub 1024 wymiarów).
3. Jak działa baza wektorowa i podobieństwo cosinusowe?
Wygenerowane wektory wraz z oryginalnym tekstem są zapisywane w specjalistycznej bazie wektorowej (takiej jak Qdrant, Milvus, Chroma czy rozszerzenie pgvector dla PostgreSQL).
Tradycyjna baza SQL szuka dokładnego dopasowania słów kluczowych (np. ze słowem faktura). Baza wektorowa działa inaczej umieszcza pojęcia w wielowymiarowej przestrzeni geometrycznej. Zdania o zbliżonym znaczeniu (nawet jeśli używają zupełnie innych słów, np. rachunek za serwer oraz opłata za hosting) znajdują się bardzo blisko siebie. Odległość między nimi mierzy się za pomocą miary podobieństwa cosinusowego (Cosine Similarity).
4. Pełny obieg zapytania w architekturze RAG
Gdy użytkownik zadaje pytanie na czacie (np. w Open WebUI lub przez webhook w n8n), w ułamku sekundy zachodzi następujący proces:
1. Pytanie użytkownika jest zamieniane przez model embeddingów na wektor liczbowy.
2. Baza wektorowa porównuje wektor pytania z tysiącami zapisanych akapitów i zwraca 3 do 5 najbardziej pasujących fragmentów (Top-K).
3. System skleja ukryty prompt systemowy: Na podstawie poniższych fragmentów dokumentacji odpowiedz na pytanie użytkownika.
4. Główny model LLM (np. Qwen lub Llama) czyta tylko te 5 krótkich akapitów i błyskawicznie generuje precyzyjną odpowiedź opartą na faktach.
5. Kiedy stosować RAG, a kiedy dotrenować model (Fine-Tuning)?
• Wybierz architekturę RAG gdy pracujesz na zmiennych danych (cenniki, stany magazynowe, dokumentacja techniczna, przepisy prawne), zależy Ci na cytowaniu źródeł i chcesz aktualizować wiedzę bota w sekundę bez zatrzymywania serwera.
• Wybierz Fine-Tuning (LoRA) gdy chcesz nauczyć model nowego stylu wypowiedzi, specyficznego formatu zwracania danych lub niszowego języka programowania, a nie samych faktów encyklopedycznych.