Hoppa till innehållet
AI-grafen
E· Universitetrag-informationssokning· ca 60 min· utvecklande· verifierad 2026-09-20

Chunkning av dokument

Kunna välja chunkstorlek och överlapp och mäta effekten på retrieval.

Förkunskaper

Intuition

Dokument måste delas i bitar innan de embeddas. Chunkningen avgör mer av RAG-kvaliteten än valet av embeddingmodell.

Avvägningen:

För små chunkar (< 100 tokens)För stora (> 1 000 tokens)
saknar sammanhangembeddingen blir en medelvärdessoppa
många träffar behövsirrelevant text tar plats i kontexten
hög precision per träffsvårt att veta vad som gav träffen

Standardval: 200–500 tokens med 10–20 % överlapp. Men det bästa är att dela efter struktur — rubrik, stycke, avsnitt — i stället för blint efter längd. En chunk som är ett helt avsnitt är nästan alltid bättre än en som är 400 tokens och slutar mitt i en mening.

Kod

import re

def chunka_efter_rubrik(md, max_ord=400, overlapp=60):
    """Dela på rubriker; långa avsnitt delas vidare med överlapp. Behåller rubrikkedjan som metadata."""
    delar, rubrik = [], ""
    for block in re.split(r"\n(?=#{1,3} )", md):
        m = re.match(r"(#{1,3}) (.+)", block)
        if m:
            rubrik = m.group(2).strip()
        ord_ = block.split()
        if len(ord_) <= max_ord:
            delar.append({"rubrik": rubrik, "text": block.strip()})
        else:
            steg = max_ord - overlapp
            for i in range(0, len(ord_), steg):
                delar.append({"rubrik": rubrik, "text": " ".join(ord_[i:i + max_ord])})
    return [d for d in delar if d["text"]]

# Lägg rubriken i texten som embeddas — den bär mycket sammanhang
for d in chunka_efter_rubrik(dokument):
    d["embed_text"] = f"{d['rubrik']}\n\n{d['text']}"

Tre saker som ofta glöms:

  1. Metadata följer med: källa, URL, rubrik, datum, licens — annars kan svaret inte hänvisa.
  2. Tabeller och kodblock ska inte klyvas mitt itu.
  3. Mät: kör ditt retrieval-testset med tre chunkstrategier och jämför recall@10. Det tar en timme och är den mest lönsamma timmen i ett RAG-projekt.

Behärskning innebär

  • Väljer chunkstorlek och överlapp med motivering
  • Bevarar metadata och struktur
  • Mäter effekten på retrieval

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser