Ga naar inhoud

Chunkingstrategieën voor RAG

High-precision chunking ontwerpen voor website-RAG: vaste, semantische, hiërarchische en adaptieve strategieën, plus evaluatie.

chunking • rag • retrieval • embeddings

Chunking zet ruwe, genormaliseerde paginacontent om in retrieval-eenheden. Slechte keuzes verhogen kosten (te veel fragmenten), verlagen recall (te grote blokken) of verdunnen precision (grensbreuken). Er is geen universeel beste methode; de strategie moet passen bij corpusstructuur, veranderlijkheid en querypatronen. Deze gids brengt de ontwerpruimte, trade-offs, evaluatieworkflow en optimalisatieknoppen voor production RAG-pipelines in kaart.

Waarom chunking ertoe doet

Doelen:

  • Maximaliseer de kans dat relevante feiten in top-k retrieval verschijnen.
  • Behoud semantische samenhang zodat gegenereerde antwoorden grounded zijn.
  • Optimaliseer tokengebruik en vermijd het herhaald embedden van boilerplate.
  • Maak deterministische incrementele updates mogelijk met stabiele chunk IDs.

Verkeerd afgestemde chunking zie je terug als hoge redundantie, lage Recall@k, gehallucineerde grensfeiten en opgeblazen embeddingkosten.

Fixed Window Chunking

Eenvoudige vensters van N tokens, bijvoorbeeld 500 tokens. Voordelen: deterministisch, eenvoudig te implementeren, stabiel updategedrag. Nadelen: grenzen snijden door concepten; redundante overlap is nodig om truncatie te verminderen, waardoor kosten groeien. Gebruik spaarzaam: een goede baseline voor heterogene of slecht gestructureerde content waar semantische signalen onbetrouwbaar zijn.

Overlapping Sliding Windows

Venstergrootte W met overlap O, bijvoorbeeld 500 / 50 tokens, vermindert feittruncatie aan grenzen. Overlap boven ongeveer 15% levert afnemende recallwinst op terwijl indexgrootte stapelt. Volg duplication_ratio = distinct_token_count / total_token_count om O omlaag te tunen.

Semantische grensdetectie

Segmenteer langs structurele signalen: H2/H3-koppen, lijstgroepen, codeblokken en tabelgrenzen. Dwing min/max token bounds af, merge te kleine siblings en split te grote secties. Voordelen: hogere samenhang, minder overlap. Risico’s: kapotte markup, inconsistente headinghiërarchie. Beperk dit met hiërarchiereparatie en fallback naar paragraafsplitsing wanneer koppen ontbreken.

Hiërarchische chunking

Twee-laags index: grove sectie-embeddings, bijvoorbeeld een volledige tutorialsectie, plus fijnmazige subchunks. Retrieval flow: grove ANN → filter top N secties → fijne retrieval daarbinnen. Voordelen: kleinere globale zoekruimte voor grote corpora, betere latency. Complexiteit: meer bewegende delen en cascade scoring logic nodig.

Adaptieve / dynamische chunking

Pas chunkgroottes aan op basis van lokale semantische dichtheid en structurele signalen. Voorbeeldlogica: begin bij een headingsectie; als >800 tokens, split op paragraafclusters gescoord op semantische gelijkenis; als <120 tokens, merge met de volgende sibling tenzij topic divergence > threshold. Vereist embedding- of similarity-prepass; betaal die kosten één keer bij ingestion voor betere retrieval-efficiëntie op lange termijn.

Embeddingoverwegingen

Bewaar metadata: token_count, model_version, content_hash. Vermijd truncation-pre-compute tokens en split vóór de modelcall. Dense modellen degraderen door overmatige boilerplate; strip navigatieartefacten vóór chunking. Monitor vector_density (unique terms / tokens) om low-signal fragmenten te vinden, kandidaten voor re-merge.

Evaluatiemethoden

Benchmarks per strategie:

MetricDoel
Recall@kFeitbehoud
Precision@kContextnoise
Chunk CountKostenindicator
Duplication RatioOverlap tuning
Avg Tokens per ChunkVensterbenutting
Latency (Retrieval)Indexefficiëntie

Draai op een gold query set; adopteer een strategie alleen als recallwinst zwaarder weegt dan kosten- en latencyverschillen.

Implementatieplaybook

  1. Baseline: Fixed 500 + 10% overlap; verzamel benchmarks.
  2. Introduceer semantische grenzen: vervang vensters waar koppen betrouwbaar zijn; meet opnieuw.
  3. Voeg een hiërarchische laag toe als corpus >250k chunks of latency > target.
  4. Deploy adaptieve logica voor sectiegroottes met hoge variantie.
  5. Kwartaalherbeoordeling: vergelijk kosten per kwaliteitsdelta met nieuwe modelmogelijkheden.

Bewaar per iteratie een diff van het chunk manifest voor rollback.

Belangrijkste lessen

  • Semantische grenzen verslaan pure fixed windows meestal in precision/kosten.
  • Overlap is een knop, meet duplicatie en gok niet.
  • Hiërarchische retrieval helpt schalen zonder lineaire latencygroei.
  • Stabiele chunk IDs maken veilige incrementele embedding refresh mogelijk.
  • Evalueer strategiewijzigingen als code deploys: benchmark, vergelijk, log.