Chunking
Chunking bezeichnet das Zerlegen langer Texte in kleinere, in sich sinnvolle Abschnitte, sogenannte Chunks. Es ist ein Standardschritt, wenn KI-Systeme in großen Dokumentsammlungen nach passenden Textstellen suchen sollen.
Chunking heißt: Ein langer Text wird in kleinere Stücke zerschnitten. Diese Stücke nennt man Chunks, zu Deutsch etwa Häppchen oder Abschnitte. Ein Handbuch mit 300 Seiten wird so zum Beispiel zu einigen tausend Absätzen von je ein paar Sätzen. Nötig ist das, weil Programme, die Texte verstehen und beantworten sollen, nur eine begrenzte Menge Text auf einmal verarbeiten können. Statt das ganze Handbuch zu übergeben, sucht man die drei oder vier Abschnitte heraus, die zur Frage passen. Das Zerschneiden klingt banal, entscheidet aber oft darüber, ob ein System brauchbare oder unbrauchbare Antworten liefert.
Warum die Schnittstellen über die Antwortqualität entscheiden
Die meisten Firmen bauen ihre KI-Anwendungen nicht, indem sie ein eigenes Modell trainieren. Sie nehmen ein fertiges Modell und stellen ihm die eigenen Dokumente zur Verfügung. Damit das funktioniert, muss das System aus tausenden Seiten die richtige Stelle finden. Gesucht wird dabei nie in ganzen Dokumenten, sondern immer in Chunks.
Sind die Chunks zu groß, enthält jeder Treffer viel Beiwerk. Das Modell bekommt dann neben der gesuchten Information noch drei fremde Themen mitgeliefert und verwechselt sie leicht. Sind die Chunks zu klein, geht der Zusammenhang verloren. Ein Abschnitt, in dem nur "Die Frist beträgt 14 Tage" steht, ist wertlos, wenn nirgends steht, um welche Frist es geht.
Ein typischer Fehler ist es, mitten in einer Tabelle oder mitten in einem Satz zu schneiden. Solche zerrissenen Chunks führen zu Antworten, die auf den ersten Blick plausibel wirken, aber falsche Zahlen enthalten. Wer sich über schlechte Ergebnisse einer Dokumentensuche wundert, findet die Ursache erstaunlich oft nicht im Modell, sondern in der Art des Zerschneidens.
Vom festen Zeichenraster zur inhaltlichen Trennung
Die einfachste Methode zählt Zeichen. Man schneidet zum Beispiel alle 1000 Zeichen ein neues Stück ab. Das ist schnell und völlig unabhängig vom Inhalt, ignoriert aber jede Struktur. Etwas besser ist es, an natürlichen Grenzen zu trennen: an Absätzen, Überschriften oder Satzenden. Bei einem Text mit klarer Gliederung liefert das meist gute Ergebnisse.
Fast immer arbeitet man zusätzlich mit Überlappung. Das heißt: Das Ende eines Chunks wird am Anfang des nächsten wiederholt, etwa die letzten zwei Sätze. So geht keine Information verloren, die zufällig genau auf der Schnittkante lag. Man kann sich das wie Dachziegel vorstellen, die einander überdecken, damit kein Regen durch die Fugen läuft.
Aufwendigere Verfahren schneiden nach Bedeutung. Dabei prüft ein Programm, wo sich das Thema im Text ändert, und setzt dort die Grenze. Das kostet mehr Rechenzeit, passt sich aber an unstrukturierte Texte an. Für Programmcode, Tabellen oder Verträge gibt es wiederum eigene Regeln, weil dort andere Einheiten sinnvoll sind: eine Funktion, eine Zeile, ein Paragraph.
Chunking in Firmen-Chatbots und Suchsystemen
Am häufigsten begegnet dir Chunking bei Systemen, die Antworten aus einer eigenen Dokumentsammlung holen. Dieses Vorgehen heißt Retrieval Augmented Generation, kurz RAG: Das System sucht erst passende Textstellen und lässt das Modell dann auf dieser Grundlage antworten. Jeder interne Firmen-Chatbot, jede KI-gestützte Hilfeseite und viele Rechercheassistenten arbeiten so. Ohne Chunking gäbe es dort nichts, worin man suchen könnte.
In Produktbeschreibungen und Fachartikeln taucht der Begriff meist zusammen mit einer Zahl auf, etwa "Chunk-Größe 512 Token". Ein Token ist dabei eine Texteinheit von etwa einer halben bis einer ganzen Silbe. 512 Token entsprechen grob einer halben Textseite. Solche Angaben sind Stellschrauben, an denen Entwickler beim Feinjustieren drehen.
Ein verbreiteter Irrtum ist, größere Kontextfenster machten Chunking überflüssig. Moderne Modelle können zwar sehr lange Texte auf einmal lesen. Trotzdem bleibt das Zerschneiden sinnvoll, weil man nicht bei jeder Frage die komplette Dokumentation mitschicken will. Das wäre teuer, langsam und würde die relevante Stelle im Rauschen untergehen lassen.