Powrót do strony głównej

Agentic RAG na hackathonie: chunkowanie i wyszukiwanie

Artykuł opisuje doświadczenie tworzenia systemów RAG dla hackathonu z przetwarzaniem dokumentów sądowych DIFC. Porównywane są prosta (wyszukiwanie hybrydowe po stronach) i agentowa architektury z routerem. Podane są metryki dokładności, grounding i wnioski dotyczące chunkowania.

Agentic RAG Challenge: lekcje chunkowania i agentów
Advertisement 728x90

Agentic RAG: doświadczenie w budowaniu systemów wyszukiwania dokumentów sądowych DIFC

Trudności przeszukiwania wektorowego w RAG

Przeszukiwanie wektorowe jest skuteczne dla fragmentów semantycznie podobnych (np. "przerwanie umowy" ≈ "rozwiązanie kontraktu"), ale nie radzi sobie z konkretnymi faktami, takimi jak "miasto sądu w sprawie Jason vs. Kruger". Skala dokumentów pogłębia problem: od szybkiego wyszukiwania w małej bibliotece do konieczności indeksowania w ogromnych zbiorach.

Kluczem do sukcesu jest chunkowanie — dzielenie tekstu na logiczne fragmenty. Proste podejście (według wzorców: artykuł 1, paragraf 2) działa przy silnej hierarchii, ale wymaga optymalnego rozmiaru. Mały chunk daje wyraźny wektor bez kontekstu; duży — rozmyty.

Przykład problemu:

Google AdInline article slot
  • Oryginalny tekst: "Na posiedzeniu obecni byli: Uczestnik 1, Uczestnik 2, Uczestnik 3".
  • Podział według znaków listy → każdy punkt traci sens.

Strategie chunkowania i hybrydowe przeszukiwanie

Hybrydowe przeszukiwanie łączy wektory, BM25 i metadane. Reranker (model oparty na parach pytanie-odpowiedź) przekształca top-k*10 na top-k dla większej precyzji.

Warianty chunkowania:

| Podejście | Opis | Zalety | Wady |

Google AdInline article slot

|--------|----------|-------|--------|

| B1. Stały rozmiar + nakładanie | Chunki po N tokenach z nakładaniem | Prostota | Ryzyko zerwania kontekstu |

| B2. Hierarchiczne | Duże chunkowanie → małe; kontekst z dużych | Zachowanie kontekstu | Złożoność implementacji |

Google AdInline article slot

| B3. Semantyczne | Grupowanie według znaczenia za pomocą ML | Relevance | Wysokie koszty zasobów |

Zespół zastosował B1 i B2, pomijając B3 z powodu ograniczeń czasowych.

Architektura prostego rozwiązania

Qdrant + LlamaIndex do bazy wektorowej, Unstructured do wyodrębniania z PDF z zachowaniem struktury.

Chunkowanie: po stronach + nakładanie. Przeszukiwanie: hybrydowe + regex dla wzorców + filtrowanie po metadanych. Reranker: tak.

Zalety:

  • Szybka implementacja.
  • Przewidywalność.
  • Grounding z chunków (strony).

Wady:

  • Regex: fałszywe sygnały / pomylenia.
  • Silna zależność od struktury.
  • Pierwotnie grounding nie był w metadanych (poprawione).

Wyniki:

  • Etap eliminacyjny: dokładność det 0.9 → 0.81 (po poprawce), grounding 0.5 → 0.58.
  • Finał: dokładność 0.79, grounding 0.63, prędkość średnia.

Agenty RAG: router i narzędzia

Chunkowanie: hierarchiczne. Algorytm:

  • Analiza struktury przez LLM na próbkach.
  • Zapisanie wzorców.
  • Rekursywne łączenie małych chunków do docelowego rozmiaru.

Problemy: niestabilność wzorców na stronach → brudne chunki.

Przeszukiwanie: router agenta dystrybuuje zadania do 4 narzędzi (metadane, dokładne dopasowanie, porównanie dokumentów, hybrydowe), z filtrami po numerze sprawy/przepisie. Architektura: router → narzędzia (z rerankerem) → generator agenta.

Zalety:

  • Poprawny wybór narzędzi w zależności od kontekstu.
  • Filtracja działała.

Wady:

  • Niestabilne chunkowanie.
  • Brudne chunki.
  • Nieprzetestowane (błędy API przed końcówką).

Wyniki etapu eliminacyjnego: dokładność 0.74, grounding 0.6, niska prędkość (2 wywołania LLM). Finał nie został oddany.

Co ważne

  • Hybrydowe przeszukiwanie + reranker to konieczność dla dokładności poza semantyką.
  • Chunkowanie po stronach jest prostsze i bardziej stabilne niż hierarchiczne w krótkim czasie.
  • Agenci są pomocni w routingu, ale wymagają rygorystycznego schematu narzędzi i testów.
  • Grounding w metadanych jest kluczowy dla deterministycznych odpowiedzi.
  • Regex uzupełnia, ale nie zastępuje wektorów; ostrożnie z fałszywymi sygnałami.

Ostateczny wniosek: proste rozwiązanie dało stabilne wyniki 0.79/0.63. Agentowe ma potencjał, ale wiąże się z ryzykiem w chunkowaniu i debugowaniu. Doświadczenie pokazało: skup się na przewidywalności, zamiast na skomplikowanych rozwiązaniach.

— Editorial Team

Advertisement 728x90

Czytaj dalej