Grundlegende Chunking-Techniken zum Erstellen besserer LLM-Anwendungen
Bild vom Autor
Einführung
Jede LLM-Anwendung (Massive Language Mannequin), die Informationen abruft, steht vor einem einfachen Downside: Wie zerlegt man ein 50-seitiges Dokument in Teile, die ein Modell tatsächlich verwenden kann? Wenn Sie additionally eine RAG-App (Retrieval-Augmented Era) erstellen, müssen Ihre Dokumente in Blöcke aufgeteilt werden, bevor Ihre Vektordatenbank etwas abruft und Ihr LLM Antworten generiert.
Die Artwork und Weise, wie Sie Dokumente in Abschnitte aufteilen, bestimmt Was Informationen, die Ihr System abrufen kann und Wie Genau kann es Fragen beantworten. Dieser Vorverarbeitungsschritt, der oft als untergeordnetes Implementierungsdetail betrachtet wird, bestimmt tatsächlich, ob Ihr RAG-System erfolgreich ist oder nicht.
Der Grund ist einfach: Der Abruf erfolgt auf Chunk-Ebene, nicht auf Dokumentebene. Richtiges Chunking verbessert die Abrufgenauigkeit, reduziert Halluzinationen und stellt sicher, dass das LLM fokussierten, relevanten Kontext erhält. Schlechtes Chunking breitet sich durch Ihr gesamtes System aus und führt zu Fehlern, die durch Abrufmechanismen nicht behoben werden können.
Dieser Artikel behandelt wesentliche Chunking-Strategien und erklärt, wann die einzelnen Methoden anzuwenden sind.
Warum Chunking wichtig ist
Einbettungsmodelle und LLMs verfügen über endliche Kontextfenster. Dokumente überschreiten normalerweise diese Grenzwerte. Chunking löst dieses Downside, indem es lange Dokumente in kleinere Segmente aufteilt, bringt jedoch einen wichtigen Kompromiss mit sich: Chunks müssen klein genug sein, um einen effizienten Abruf zu ermöglichen, und gleichzeitig groß genug bleiben, um die semantische Kohärenz zu wahren.
Die Vektorsuche arbeitet mit Einbettungen auf Chunk-Ebene. Wenn Chunks mehrere Themen vermischen, stellen ihre Einbettungen einen Durchschnitt dieser Konzepte dar, was einen präzisen Abruf erschwert. Wenn Blöcke zu klein sind, fehlt ihnen ausreichend Kontext, damit das LLM nützliche Antworten generieren kann.
Die Herausforderung besteht darin, den Mittelweg zu finden, bei dem die Blöcke semantisch fokussiert und dennoch kontextuell vollständig sind. Kommen wir nun zu den eigentlichen Chunking-Techniken, mit denen Sie experimentieren können.
1. Chunking mit fester Größe
Chunking mit fester Größe Teilt Textual content basierend auf einer vorgegebenen Anzahl von Token oder Zeichen auf. Die Umsetzung ist unkompliziert:
- Wählen Sie eine Blockgröße (normalerweise 512 oder 1024 Token).
- Überlappung hinzufügen (normalerweise 10–20 %)
- Teilen Sie das Dokument
Die Methode ignoriert die Dokumentstruktur vollständig. Textual content wird unabhängig von semantischen Grenzen an beliebigen Stellen geteilt, oft mitten im Satz oder in der Mitte des Absatzes. Überlappung trägt dazu bei, den Kontext an Grenzen zu bewahren, geht aber nicht auf das Kernproblem der strukturblinden Aufteilung ein.
Trotz seiner Einschränkungen bietet das Chunking mit fester Größe eine solide Grundlage. Es ist schnell, deterministisch und eignet sich intestine für Dokumente ohne starke Strukturelemente.
Wann zu verwenden: Basisimplementierungen, einfache Dokumente, schnelles Prototyping.
2. Rekursives Chunking
Rekursives Chunking verbessert Ansätze mit fester Größe, indem es natürliche Textgrenzen berücksichtigt. Es versucht, an immer feineren Separatoren zu spalten – zuerst bei Absatzumbrüchen, dann bei Sätzen, dann bei Wörtern – bis die Abschnitte in die Zielgröße passen.
Rekursives Chunking
Bild vom Autor
Der Algorithmus versucht, semantisch verwandte Inhalte zusammenzuhalten. Wenn beim Teilen an Absatzgrenzen Abschnitte entstehen, die innerhalb der Größenbeschränkung liegen, wird der Vorgang dort beendet. Wenn Absätze zu groß sind, wird die Aufteilung auf Satzebene rekursiv nur auf übergroße Abschnitte angewendet.
Dadurch bleibt mehr von der ursprünglichen Struktur des Dokuments erhalten als durch die willkürliche Zeichenaufteilung. Chunks neigen dazu, sich an natürlichen Denkgrenzen auszurichten, was sowohl die Relevanz des Abrufs als auch die Qualität der Generierung verbessert.
Wann zu verwenden: Allzweckanwendungen, unstrukturierter Textual content wie Artikel und Berichte.
3. Semantisches Chunking
Anstatt sich auf Charaktere oder Strukturen zu verlassen, Semantisches Chunking nutzt Bedeutung, um Grenzen zu bestimmen. Der Prozess bettet einzelne Sätze ein, vergleicht ihre semantische Ähnlichkeit und identifiziert Punkte, an denen es zu Themenverschiebungen kommt.
Semantisches Chunking
Bild vom Autor
Die Implementierung umfasst die Berechnung der Einbettungen für jeden Satz, das Messen der Abstände zwischen aufeinanderfolgenden Satzeinbettungen und die Aufteilung, wenn die Distanz einen Schwellenwert überschreitet. Dadurch entstehen Blöcke, in denen der Inhalt um ein einzelnes Thema oder Konzept herum zusammenhängt.
Der Rechenaufwand ist höher. Das Ergebnis sind jedoch semantisch kohärente Blöcke, die häufig die Abrufqualität komplexer Dokumente verbessern.
Wann zu verwenden: Dichte wissenschaftliche Arbeiten, technische Dokumentation, bei der sich die Themen unvorhersehbar ändern.
4. Dokumentbasiertes Chunking
Dokumente mit expliziter Struktur – Markdown-Header, HTML-Tags, Codefunktionsdefinitionen – enthalten natürliche Aufteilungspunkte. Das dokumentenbasierte Chunking nutzt diese Strukturelemente.
Für Markdown auf Header-Ebene aufteilen. Teilen Sie für HTML semantische Tags wie auf <part> oder <article>. Teilen Sie Code nach Funktions- oder Klassengrenzen auf. Die resultierenden Blöcke richten sich nach der logischen Organisation des Dokuments, die normalerweise mit der semantischen Organisation korreliert. Hier ist ein Beispiel für dokumentbasiertes Chunking:
Dokumentenbasiertes Chunking
Bild vom Autor
Bibliotheken mögen LangChain Und LamaIndex stellen spezielle Splitter für verschiedene Formate bereit, die die Parsing-Komplexität bewältigen und es Ihnen ermöglichen, sich auf die Parameter der Blockgröße zu konzentrieren.
Wann zu verwenden: Strukturierte Dokumente mit klaren hierarchischen Elementen.
5. Spätes Chunking
Spätes Chunking kehrt die typische Einbettungs- und dann Chunking-Sequenz um. Betten Sie zunächst das gesamte Dokument mithilfe eines Lengthy-Context-Modells ein. Teilen Sie dann das Dokument auf und leiten Sie Chunk-Einbettungen ab, indem Sie die relevanten Einbettungen auf Token-Ebene aus der vollständigen Dokumenteinbettung mitteln.
Dadurch bleibt der globale Kontext erhalten. Die Einbettung jedes Blocks spiegelt nicht nur seinen eigenen Inhalt wider, sondern auch seine Beziehung zum umfassenderen Dokument. Verweise auf frühere Konzepte, gemeinsame Terminologie und dokumentweite Themen bleiben in den Einbettungen kodiert.
Der Ansatz erfordert Einbettungsmodelle mit langem Kontext, die in der Lage sind, ganze Dokumente zu verarbeiten, was seine Anwendbarkeit auf Dokumente angemessener Größe beschränkt.
Wann zu verwenden: Technische Dokumente mit erheblichen Querverweisen, Gesetzestexte mit internen Abhängigkeiten.
6. Adaptives Chunking
Adaptives Chunking Passt Chunk-Parameter dynamisch basierend auf Inhaltsmerkmalen an. Dichte, informationsreiche Abschnitte erhalten kleinere Teile, um die Granularität beizubehalten. Spärliche, kontextbezogene Abschnitte erhalten größere Teile, um die Kohärenz zu wahren.
Adaptives Chunking
Bild vom Autor
Die Implementierung verwendet in der Regel Heuristiken oder leichtgewichtige Modelle, um die Inhaltsdichte zu bewerten und die Blockgröße entsprechend anzupassen.
Wann zu verwenden: Dokumente mit stark schwankender Informationsdichte.
7. Hierarchisches Chunking
Durch hierarchisches Chunking entstehen mehrere Granularitätsebenen. Große übergeordnete Blöcke erfassen umfassende Themen, während kleinere untergeordnete Blöcke spezifische Particulars enthalten. Rufen Sie zum Zeitpunkt der Abfrage zuerst grobe Blöcke ab und führen Sie dann einen Drilldown in feinkörnige Blöcke innerhalb relevanter übergeordneter Elemente durch.
Dies ermöglicht sowohl übergeordnete Abfragen („Was deckt dieses Dokument ab?“) als auch spezifische Abfragen („Wie lautet die genaue Konfigurationssyntax?“) unter Verwendung desselben Chunked-Korpus. Die Implementierung erfordert die Aufrechterhaltung der Beziehungen zwischen Chunk-Ebenen und deren Durchquerung während des Abrufs.
Wann zu verwenden: Große technische Handbücher, Lehrbücher, umfassende Dokumentation.
8. LLM-basiertes Chunking
Beim LLM-basierten Chunking haben wir Verwenden Sie ein LLM, um Chunk-Grenzen zu bestimmen und das Chunking in intelligentes Terrain treiben. Anstelle von Regeln oder Einbettungen analysiert das LLM das Dokument und entscheidet basierend auf semantischem Verständnis, wie es aufgeteilt wird.
LLM-basiertes Chunking
Bild vom Autor
Zu den Ansätzen gehören das Aufteilen von Textual content in atomare Sätze, das Erstellen von Zusammenfassungen für Abschnitte oder das Identifizieren logischer Haltepunkte. Das LLM kann Blöcke auch mit Metadaten oder kontextbezogenen Beschreibungen anreichern, die den Abruf verbessern.
Dieser Ansatz ist teuer – er erfordert LLM-Aufrufe für jedes Dokument –, erzeugt aber hochkohärente Blöcke. Bei anspruchsvollen Anwendungen, bei denen die Abrufqualität die Kosten rechtfertigt, übertrifft LLM-basiertes Chunking häufig einfachere Methoden.
Wann zu verwenden: Anwendungen, bei denen die Abrufqualität wichtiger ist als die Verarbeitungskosten.
9. Agentisches Chunking
Agentic Chunking erweitert LLM-basierte Ansätze um Lassen Sie einen Agenten jedes Dokument analysieren und dynamisch die entsprechende Chunking-Strategie auswählen. Der Agent berücksichtigt die Dokumentstruktur, die Inhaltsdichte und das Format, um professional Dokument zwischen festen, rekursiven, semantischen oder anderen Ansätzen zu wählen.
Agentisches Chunking
Bild vom Autor
Dies behandelt heterogene Dokumentensammlungen, bei denen eine einzelne Strategie schlecht funktioniert. Der Agent könnte dokumentbasiertes Chunking für strukturierte Berichte und semantisches Chunking für narrative Inhalte innerhalb desselben Korpus verwenden.
Der Kompromiss besteht zwischen Komplexität und Kosten. Jedes Dokument erfordert eine Agentenanalyse, bevor mit dem Chunking begonnen werden kann.
Wann zu verwenden: Vielfältige Dokumentensammlungen, bei denen die optimale Strategie erheblich variiert.
Abschluss
Chunking bestimmt, welche Informationen Ihr Abrufsystem finden kann und welchen Kontext Ihr LLM zur Generierung erhält. Nachdem Sie nun die verschiedenen Chunking-Techniken verstanden haben, Wie wählen Sie eine Chunking-Strategie für Ihre Anwendung aus?? Sie können dies basierend auf Ihren Dokumentmerkmalen tun:
- Kurze, eigenständige Dokumente (FAQs, Produktbeschreibungen): Keine Aufteilung erforderlich
- Strukturierte Dokumente (Markdown, HTML, Code): Dokumentbasiertes Chunking
- Unstrukturierter Textual content (Artikel, Berichte): Versuchen Sie es mit rekursivem oder hierarchischem Chunking, wenn das Chunking mit fester Größe keine guten Ergebnisse liefert
- Komplexe, hochwertige Dokumente: Semantisches oder adaptives oder LLM-basiertes Chunking
- Heterogene Sammlungen: Agentisches Chunking
Berücksichtigen Sie auch das Kontextfenster Ihres Einbettungsmodells und typische Abfragemuster. Wenn Benutzer spezifische sachliche Fragen stellen, bevorzugen Sie aus Gründen der Präzision kleinere Abschnitte. Wenn Abfragen das Verständnis eines breiteren Kontexts erfordern, verwenden Sie größere Abschnitte.
Noch wichtiger ist, dass Sie Metriken festlegen und testen. Verfolgen Sie die Abrufgenauigkeit, Antwortgenauigkeit und Benutzerzufriedenheit über verschiedene Chunking-Strategien hinweg. Verwenden Sie repräsentative Abfragen mit bekanntermaßen richtigen Antworten. Messen Sie, ob die richtigen Blöcke abgerufen werden und ob das LLM aus diesen Blöcken genaue Antworten generiert.
Frameworks wie LangChain Und LamaIndex bieten vorgefertigte Splitter für die meisten Strategien an. Implementieren Sie bei benutzerdefinierten Ansätzen die Logik direkt, um die Kontrolle zu behalten und Abhängigkeiten zu minimieren. Viel Spaß beim Chunken!
