Lektion 2 von 6·11 Min Lesezeit

Embedding-Strategien

Die Qualität Ihres RAG-Systems steht und fällt mit der Qualität Ihrer Embeddings. Das richtige Modell, die richtige Chunking-Strategie und durchdachtes Metadata-Enrichment machen den Unterschied zwischen "findet manchmal etwas" und "findet immer das Richtige".

Embedding-Modelle

Kommerzielle Modelle

ModellAnbieterDimensionenStärken
text-embedding-3-largeOpenAI3072Höchste Qualität, teuer
text-embedding-3-smallOpenAI1536Gutes Preis-Leistungs-Verhältnis
embed-v4.0Cohere1024Mehrsprachig, komprimierbar
voyage-3Voyage AI1024Spezialisiert auf Code und Legal

Open-Source-Modelle

ModellDimensionenStärken
BGE-large-en-v1.51024Top MTEB-Benchmark
E5-mistral-7b-instruct4096Instruction-basiert
GTE-large1024Alibaba, multilingual
nomic-embed-text-v1.5768Kompakt, effizient

Modell-Auswahl

Kriterien:
1. Sprache → Multilingual-Modell für DE/EN?
2. Domäne → Spezialisiertes Modell (Code, Legal, Medical)?
3. Budget → Kommerziell vs. Open-Source?
4. Latenz → Kleinere Modelle = schneller
5. Qualität → Benchmark-Ergebnisse (MTEB) prüfen

Chunking-Strategien

Fixed-Size Chunking

# Einfach, aber nicht optimal
chunks = split_text(text, chunk_size=1000, overlap=200)

Semantic Chunking

# Splittet an semantischen Grenzen
from langchain_experimental.text_splitter import SemanticChunker

chunker = SemanticChunker(
    embeddings=OpenAIEmbeddings(),
    breakpoint_threshold_type="percentile",
    breakpoint_threshold_amount=95
)
chunks = chunker.split_text(document)

Document-Structure-Aware Chunking

StrategieBeschreibungWann nutzen
Markdown HeaderSplittet an Headern, behält HierarchieDokumentation, Wiki
HTML SectionsSplittet an HTML-ElementenWeb-Content
Paragraph-basedSplittet an AbsätzenProsa-Texte
Code-awareSplittet an Funktionen/KlassenSource Code
Sliding WindowFeste Größe mit OverlapFallback / Default

Chunk-Size-Optimierung

Zu klein (< 200 Token):
  ✗ Kontextverlust — einzelne Sätze ohne Zusammenhang
  ✗ Mehr Chunks = höhere Retrieval-Kosten

Zu groß (> 2000 Token):
  ✗ Rauschen — irrelevante Informationen im Chunk
  ✗ Geringere Retrieval-Präzision

Optimal (300-800 Token):
  ✓ Genug Kontext für Verständlichkeit
  ✓ Fokussiert genug für präzise Retrieval

Metadata Enrichment

Chunks ohne Metadata sind wie Bücher ohne Inhaltsverzeichnis. Metadata verbessert Retrieval dramatisch:

chunk = {
    "text": "Die neue DSGVO-Änderung betrifft...",
    "metadata": {
        "source": "compliance/dsgvo-update-2026.pdf",
        "page": 12,
        "section": "Änderungen 2026",
        "category": "compliance",
        "date": "2026-01-15",
        "author": "Legal Team",
        "language": "de",
        "keywords": ["DSGVO", "Datenschutz", "Compliance"]
    }
}

Metadata-Filter in der Suche

results = vectorstore.similarity_search(
    query="DSGVO-Änderungen",
    filter={"category": "compliance", "date": {"$gte": "2026-01-01"}},
    k=5
)

Hybrid Search

Kombiniert Vektor-Suche (semantisch) mit Keyword-Suche (BM25) für bessere Ergebnisse:

Query: "DSGVO Artikel 15 Auskunftsrecht"

Vektor-Suche: Findet semantisch ähnliche Texte
BM25-Suche:   Findet exakte Keyword-Matches

Hybrid (RRF): Kombiniert beide Rankings → beste Ergebnisse

Praxis-Tipp: Testen Sie immer mindestens 3 Chunking-Strategien mit Ihren realen Daten. Die "richtige" Strategie hängt stark von Ihrem Dokumententyp ab. Investieren Sie in Metadata-Enrichment — es ist der größte Hebel für Retrieval-Qualität nach der Chunk-Strategie.