Hierarchiczne dzielenie na fragmenty (Hierarchical Chunking / Parent-Child)
Zaawansowana strategia podziału dokumentów (Parent-Document Retriever) dla systemów RAG. Tekst jest dzielony na małe fragmenty podrzędne (Child Chunks) w celu precyzyjnego wyszukiwania wektorowego, jednak do kontekstu modelu przekazywany jest pełny fragment nadrzędny (Parent Chunk), aby zachować szeroki kontekst i nie utracić sensu.
1. Przegląd koncepcji i przeznaczenie
Gdy bierzecie podręcznik lub kodeks prawny i przygotowujecie go dla bazy wiedzy RAG, staje przed Wami najtrudniejsze pytanie inżynierskie: Jak dokładnie pociąć tekst?
Spójrzcie na problem obrazowo:
- Wariant A (Drobne cięcie po 2 zdania): Wyszukiwanie frazowe „grzywna 5000 UAH” zadziała natychmiastowo. Ale w tym mikroskopijnym fragmencie nie ma informacji, za co dokładnie grozi ta grzywna ani komu należy ją zapłacić!
- Wariant B (Duże cięcie po 10 stron): Kontekstu jest pod dostatkiem, ale wektor takiego giganta staje się szarą papką z setkami różnych tematów, przez co algorytm nie znajduje precyzyjnej odpowiedzi.
Rozwiązaniem tego problemu jest Hierarchical Chunking (zwany też Parent-Child Retriever).
Z praktycznego punktu widzenia działa to jak lupa i zdjęcie panoramiczne: szukasz szczegółu przez szkło powiększające (mały chunk), ale aby zrozumieć, gdzie ten szczegół się znajduje, robisz krok wstecz i patrzysz na cały pokój (chunk rodzica).
2. Jak działa para „Rodzic — Dziecko” (Parent-Child)
┌─────────────────────────────────────────────────────────────┐
│ NADRZĘDNY CHUNK (Parent Chunk, 1000 słów) │
│ «Rozdział 4. Bezpieczeństwo pracy i kary finansowe...» │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ PODRZĘDNY CHUNK #1 (100 słów): │ │
│ │ «W przypadku naruszenia obowiązku noszenia kasku na budowie...» │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ PODRZĘDNY CHUNK #2 (100 słów): ➔ DOKŁADNE ZBIEŻNOŚĆ WEKTOROWA! │ │
│ │ «...nakładana jest kara w wysokości 5 000 UAH.» │ │
│ └─────────────────────────────────────────────────────────┘ │
└──────────────────────────────┬──────────────────────────────┘
│
▼
Ale do kontekstu modelu wysyłany jest CAŁY NADRZĘDNY ROZDZIAŁ #4!
Model widzi zarówno karę, jak i pełny kontekst!
3. Dlaczego ta metoda wypiera standardowe cięcie o stałej długości
- Idealna precyzja retrievalu: Wektory krótkich zdań są niezwykle ostre i specyficzne.
- Zero halucynacji wynikających z braku faktów: Model zawsze widzi otaczające doprecyzowania, wyjątki od reguł („poza przypadkami klęsk żywiołowych”) oraz nagłówki sekcji.
- Zachowanie logicznych tabel: Tabele nie są przecinane w połowie rzędów.
4. Praktyczna konkluzja
Nowoczesne frameworki (LangChain ParentDocumentRetriever oraz LlamaIndex) wspierają hierarchical chunking out-of-the-box. Poświęćcie pół godziny na konfigurację schematu Parent-Child – a trafność odpowiedzi Waszego korporacyjnego bota wzrośnie o co najmniej 30%.
FAQ: Hierarchiczne dzielenie na fragmenty (Hierarchical Chunking / Parent-Child)
Powiązane pojęcia
Dzielenie dokumentów na fragmenty (Chunking dla początkujących)
Technika podziału dużych dokumentów (PDF, książek, artykułów long-form) na mniejsze logiczne bloki tekstowe (fragmenty o długości 300–500 tokenów) z nakładaniem się (Overlap). Zapewnia wysoką precyzję wyszukiwania i zapobiega utracie kontekstu na granicach fragmentów.
Rozmiar okna kontekstowego (Pamięć bieżącej rozmowy)
Maksymalna objętość tekstu (w tokenach), którą model językowy jest w stanie jednoczesnie utrzymać w pamięci podczas bieżącej sesji. Określa, jaką długość dokumentów można załadować jednorazowo bez utraty treści.
RAG vs. Fine-Tuning (Wieczna dylemat wdrożeń AI)
Fundamentalny wybór architektoniczny dla biznesu. RAG (wyszukiwanie w dokumentach w czasie zapytania) kontra Fine-Tuning (zmiana wag modelu poprzez dokształcanie). Kryteria wyboru między aktualnością faktów a specyficznym stylem zachowania.