Auswahl von RAG-Chunk-Grenzen und -Überlappung zur Erhaltung der Abschnitts-Kontext
Dieser Artikel erklärt, wie man effektive Chunk-Grenzen und -Überlappung in Retrieval-Augmented Generation (RAG)-Systemen wählt, und vergleicht feste und dokumentenbewusste Strategien. Mit einem hypothetischen Support-Beispiel zeigt er die Risiken, bei semantischen Einheiten zu trennen, und zeigt, wie Metadaten und Überlappung den Kontext erhalten können. Die Anleitung basiert auf Microsoft Azure-Dokumentationen für das Chunking in Vektor-Suche und RAG-Workflows.
Auf dieser Seite
Die kurze Antwort
Um den Abschnitts-Kontext in RAG zu bewahren, verwenden Sie dokumentenbewusste Chunking-Strategien, die semantische Grenzen wie Überschriften respektieren, und fügen Sie relevante Metadaten wie Abschnittstitel in jeden Chunk hinzu. Feste Chunk-Größen mit Überlappung können kritische Informationen trennen, daher sollten sie mit strukturellem Bewusstsein ergänzt werden. Zum Beispiel muss eine Richtlinie wie 'Rückgaben: ungeöffnete Artikel können innerhalb von 14 Tagen zurückgegeben werden' beide Bedingungen und Dauer zusammenhalten. Bei der Verwendung fester Chunk-Größen sollte Überlappung (z. B. 10-25%) angewendet und Abschnittsüberschriften als Metadaten wiederholt werden. Stellen Sie immer sicher, dass die Retrieval-Verhalten an bekannten Grenzen überprüft werden und während der Optimierung nur einen Parameter gleichzeitig ändern.
Wählen Sie die Einheit, die die Antwort bewahrt
Das primäre Ziel des Chunking ist sicherzustellen, dass jeder Chunk genug Kontext enthält, um potenzielle Abfragen unabhängig zu beantworten. Wie in der Microsoft RAG-Guidance beschrieben, führen zu kleine Chunks mit unzureichendem Kontext zu schlechten Ergebnissen. In unserem hypothetischen Support-Notiz - 'Rückgaben: ungeöffnete Artikel können innerhalb von 14 Tagen zurückgegeben werden. Garantie: Herstellungsfehler sind 12 Monate abgedeckt.' - hängt eine Abfrage zur Rückgabeberechtigung von beiden Bedingungen (ungeöffnet) und der Zeit (14 Tage) ab. Wenn eine Chunk-Grenze 'innerhalb' und '14 Tage' trennt, könnte die Retrieval die vollständige Bedingung verpassen.
Wählen Sie eine Einheit, die die relevante Bedingung und ihren Zeitraum zusammenhält und gleichzeitig die tatsächliche Eingabegrenze des Embedding-Modells einhält. Dokumentstruktur und Tokenanzahl sind beide wichtig: Ein langer Abschnitt muss möglicherweise weiter aufgeteilt werden. Eine kurze vollständige Regel ist ein sinnvoller Ausgangspunkt, garantiert aber nicht, dass die Suche sie findet.
Behalten Sie Überschriften mit ihren Abschnitten
Überschriften bieten wesentlichen Kontext für die Interpretation von Inhalten. Wenn ein Abschnitt wie 'ungeöffnete Artikel können innerhalb von 14 Tagen zurückgegeben werden' ohne die 'Rückgaben'-Überschrift erscheint, wird seine Bedeutung unklar. Die Microsoft RAG-Dokumentation betont, dass semantisch relevanter Inhalt bewahrt werden muss, was auch die Zuordnung von Überschriften zu ihren Textblöcken umfasst.
Ordnen Sie den Abschnittstitel seiner Passage zu. Ein Titel, der nur als Metadatum gespeichert wird, wird nicht automatisch eingebettet oder dem Sprachmodell gezeigt. Wenn er notwendigen Kontext liefert, nehmen Sie ihn in den Text für das Embedding und in den an die Antwortgenerierung übergebenen Kontext auf. Das folgende Dictionary veranschaulicht einen gespeicherten Chunk und ist keine vollständige Azure-Indexkonfiguration.
chunk = {
"text": "Returns: unopened items may be returned within 14 days.",
"metadata": {"section": "Returns"}
}Vergleichen Sie zwei illustrative Grenzen
Betrachten Sie zwei illustrative Segmentierungen der Support-Notiz. Zunächst schneidet eine zeichenbasierte Grenze die Notiz in der Mitte eines Wortes:
Chunk 1: 'Rückgaben: ungeöffnete Artikel können innerhalb von' Chunk 2: '14 Tagen. Garantie: Herstellungsfehler ' Chunk 3: 'sind 12 Monate abgedeckt.'
Hier wird die Rückgaberichtlinie zwischen Chunks geteilt, was zu unvollständiger Retrieval führen könnte. Vergleichen Sie dies mit einem dokumentenbewussten Ansatz, der 'Garantie:' als Grenze verwendet:
Chunk A: 'Rückgaben: ungeöffnete Artikel können innerhalb von 14 Tagen zurückgegeben werden.' Chunk B: 'Garantie: Herstellungsfehler sind 12 Monate abgedeckt.'
Diese Version bewahrt beide Richtlinien intakt. Während die erste Methode allein auf Größe setzt, respektiert die zweite die semantische Struktur - ein entscheidender Vorteil, der in Azure's Leitfaden zu variabeln und semantischen Chunking hervorgehoben wird.
Wählen Sie eine Anfangsgröße und Überlappung
Azure AI Search empfiehlt, mit 512 Tokens (~2000 Zeichen) und 25 % Überlappung (128 Tokens) zu beginnen, wenn feste Chunk-Größen verwendet werden. Dies balanciert Kontextkontinuität gegen Redundanz. Überlappung ermöglicht es, Phrasen, die über Chunks hinweg geteilt werden, in mindestens einem Ergebnis vollständig zu zeigen.
Für unser Beispiel könnte eine Chunk-Größe von 60 Zeichen mit 15 Zeichen Überlappung helfen, die Lücke zwischen 'innerhalb' und '14 Tagen' zu überbrücken. Allerdings kann Überlappung allein nicht garantieren, dass der Intention erhalten bleibt, wenn die logische Einheit mehr als einen Chunk überschreitet. Daher verbessert Überlappung die Robustheit, ersetzt aber nicht strukturelles Bewusstsein.
Berücksichtigen Sie wiederholten Kontext
Überlappung führt zu dupliziertem Text, was Speicher- und Indexkosten erhöht. Wie in dem Microsoft RAG-Artikel erwähnt, verursachen einige Ansätze höhere finanzielle und zeitliche Kosten. Das Wiederholen von Abschnittsüberschriften in mehreren Chunks erhöht ebenfalls die Redundanz, verbessert aber die Interpretierbarkeit.
In unserem Fall führt das Wiederholen von 'Rückgaben:' am Anfang jedes Chunks unter diesem Abschnitt zu Klarheit, auch wenn es die Token-Nutzung erhöht. Der Kompromiss spricht für Genauigkeit gegenüber Effizienz, wenn die korrekte Beantwortung von Benutzeranfragen von Kontext abhängt.
Überprüfen Sie Antworten an Grenzen
Nach dem Chunking sollten Abfragen getestet werden, die Informationen in der Nähe von wahrscheinlichen Aufteilungspunkten ansprechen. Zum Beispiel fragen Sie 'Wie lange kann ich ungeöffnete Artikel zurückgeben?' und stellen Sie sicher, dass der abgerufene Chunk sowohl das Subjekt als auch den Zeitraum enthält.
Da dies ein hypothetisches Beispiel ist, wird kein echtes Retrieval-System getestet. In realen Implementierungen ist es jedoch entscheidend, Ergebnisse in der Nähe struktureller Übergänge - wie nach Überschriften oder in der Mitte von Sätzen - zu überprüfen, um die Qualität der Chunks zu validieren, wie in der RAG-Chunking-Phase-Dokumentation empfohlen wird.
Ändern Sie nur einen Parameter gleichzeitig
Bei der Optimierung von Chunking sollten nur eine Variable pro Iteration geändert werden - Größe, Überlappung oder Parsing-Methode - um deren Effekt zu isolieren. Zum Beispiel testen Sie zunächst feste Chunk-Größen bei 500 vs. 1000 Zeichen, dann passen Sie die Überlappung von 10 % auf 25 % an, wobei andere Einstellungen konstant bleiben.
Dieser systematische Ansatz unterstützt eine zuverlässige Bewertung und entspricht der Empfehlung von Microsoft, verschiedene Chunking-Permutationen zu testen und die Handelskosten zu beobachten, bevor eine Strategie endgültig festgelegt wird.
Wissen Sie, was ein Chunking-Check nicht beweisen kann
Das Visualisieren von Chunks oder das Überprüfen der Überlappung garantiert nicht die Effektivität der Retrieval. Semantische Grenzen implizieren nicht automatisch Relevanz, und keine statische Analyse beweist, dass ein Chunk für eine bestimmte Abfrage abgerufen wird. Wie in der Microsoft-Guidance erwähnt, ist Ihr Chunking-Ansatz halbpermanent und beeinflusst nachfolgende Prozesse, sodass Annahmen empirisch validiert werden müssen.
Die Zusammenführung von Rückgaben mit ihrer Richtlinie macht den Abschnitt leichter interpretierbar, aber der tatsächliche Retriever muss ihn auswählen und die Antwort muss ihn korrekt verwenden. Überprüfen Sie abgerufene Beweise und bewerten Sie generierte Antworten anhand repräsentativer Abfragen. Ein gutes Ergebnis bei einer Abfrage bedeutet nicht, dass die Zuverlässigkeit gegeben ist; vergleichen Sie mehrere Grenzfälle, einschließlich Fragen, deren Antworten im Dokument fehlen.
Was Sie prüfen sollten
- Enthält jeder Chunk eine vollständige semantische Einheit?
- Wird der Abschnittsüberschriften-Kontext in jedem relevanten Chunk bewahrt?
- Würde eine Abfrage zur Rückgabefrist die vollständige Bedingung abrufen?
- Ist die Überlappung ausreichend, um mittlere Satz-Splits zu abdecken?
- Wurde während des Tests nur ein Chunking-Parameter geändert?
Geltungsbereich
Diese Analyse verwendet ein hypothetisches Beispiel und spiegelt nicht die tatsächliche Retrieval-Performance wider. Effekte der Tokenisierung, modellspezifische Grenzen und Qualität der Embeddings werden nicht bewertet. Die Empfehlungen setzen voraus, dass der Zugriff auf die Dokumentenstruktur gegeben ist und eine korrekte Implementierung der Metadaten-Anhängung und der Überlappungslogik abhängig ist.