#
Crawling- und Chunkingstrategie bestimmen
Chunking ist die Aufteilung großer Textmengen (wie Webseiten-Inhalte oder Dokumente) in kleinere, handhabbare Textabschnitte oder "Chunks". Diese Abschnitte können dann einzeln vektorisiert und gespeichert werden.
Die Chunking-Strategie hat großen Einfluss auf die Qualität der Datenbasis und damit auch auf die Antwortqualität des KI-Assistenten.
Große Chunks haben den Vorteil, dass mehr Kontext bewahrt wird, was besonders wichtig für die semantische Relevanz ist, da längere Passagen oder auch verteilt vorliegendende Texte oft zusammenhängende Informationen enthalten. Auf der anderen Seite kann bei großen Chunks die Genauigkeit sinken, da große Textabschnitte mehr irrelevante Informationen enthalten. Die Nutzung von kleinen Chunks hingegen ermöglicht präzisere Ergebnisse, birgt jedoch auch die Gefahr, dass der Kontext verloren geht. Werden kleine Chunks genutzt, kann bei Bedarf die Anzahl auszuwählender Chunks , also die Anzahl der Chunks, die für die Antwortgenerierung herangezogen werden, erhöht werden.
#
Crawling und Chunking von Dokumenten
Auf der Seite Datenimport können Sie rechts oberhalb der Korpora unter Chunking-Konfiguration die Standardeinstellungen für das Crawling von Dokumenten konfigurieren. Diese Standardeinstellungen können Sie für einzelne Dokumente oder Dokumentensammlungen überschreiben, indem Sie zunächst auf + Daten hinzufügen klicken, Ihre Dokumente im sich öffenen Fenster hochladen und im gleichen Fenster unter Erweiterte Einstellungen die Chunking-Konfiguration anpassen:
#
Chunkingstrategie
- Feste Chunklänge
- Es werden Chunks mit einer konfigurierbaren Länge gebildet, dabei werden Absatzgrenzen berücksichtigt. Passen mehrere Absätze in die beabsichtigte Chunklänge, werden sie als ein Chunk zusammengefügt, ansonsten wird nach einem Absatz ein neuer Chunk begonnen.
- Die Default-Chunklänge beträgt 500 Token.*
- Diese Option eignet sich für gut strukturierte PDFs wie FAQ, Definitionssammlungen, Lexika etc., bei denen die inhaltlichen Abschnitte eine ähnliche Länge aufweisen.
- Ein Chunk pro Dokument
- Das ganze Dokument wird als ein zusammenhängender Chunk gespeichert. Dabei besteht eine Maximallänge basierend auf den verwendeten Vector-Embeddings (aktuell 8.192 Token). Überschreitet der extrahierte Text diese Länge, werden mehrere Chunks mit der konfigurierten Überlappung gebildet. Zwischen Chunks verschiedener Dokumente gibt es keine Überlappung.
- Diese Option eignet sich für Dokumente, bei denen die Inhalte möglichst nicht voneinander getrennt werden sollten, z. B. Verträge, Versicherungsbedingungen, Montageanleitungen etc.
- Ein Chunk pro Seite
- Jede Seite des Dokuments wird als ein zusammenhängender Chunk gespeichert. Dabei besteht eine Maximallänge basierend auf den verwendeten Vector-Embeddings (aktuell 8.192 Token). Überschreitet der extrahierte Text einer Seite diese Länge, werden mehrere Chunks gebildet.
- Hinweis: Wenn noch ein kleiner Absatz auf einer zweiten Seite ist, dann wird dieser in einem zweiten Chunk gespeichert. Dies ließe sich über die Nutzung einer entsprechenden Überlappung lösen, allerdings ist gilt diese dann auch für alle anderen Seiten.
- Diese Option eignet sich für Dokumente, bei denen Inhalte auf eine Seite begrenzt wird und auf der nächsten Seite ein neuer Inhalt beginnt, z. B. Rezeptbücher, Produktübersichten etc.
- Textstrukturbasiert
- Beim textstrukturbasierten Chunking werden eher kurze Chunks abhängig von der Textstruktur gebildet, z.B. Chunks für einzelne Bullet Points oder kurze Absätze.
*Die Chunklänge wird in Token angegeben. Aus wie vielen Token ein Textabschnitt besteht, können Sie z. B. mit Hilfe des Tokenizers von OpenAI prüfen.
Abhängig vom Dateiformat stehen verschiedene Konfigurationsmöglichkeiten zur Verfügung:
#
Überlappung
Sie können konfigurieren, wie stark die einzelnen Chunks überlappen. Der Default-Wert sind 20 %. Durch überlappende Chunks bleiben inhaltliche Zusammenhänge besser erhalten.
#
Kurze Chunks ignorieren
Sie können bestimmen, ob Sie kurze Chunks bei der Antwortgenerierung berücksichtigen möchten. Wird diese Option aktiviert, werden alle Chunks, die kürzer als 20 Token sind, ignoriert.
#
Text aus Bildern extrahieren
Sie können festlegen, ob ein Bild, das Text enthält, transkribiert wird oder - im Falle von Bildern ohne Text/Tabellen/Diagrammen - eine Beschreibung generiert und als Chunk gespeichert wird.
#
Crawling und Chunking von Websites
Sie können die Crawling- und Chunkingstrategie für Websites anpassen, indem Sie zunächst auf + Daten hinzufügen klicken, die Seed-URL der zu crawlenden Website im sich öffenen Fenster hochladen und im gleichen Fenster auf Erweiterte Einstellungen klicken:
Bei Websites empfiehlt es sich grundsätzlich diese vor dem Crawling eingehend zu untersuchen:
- Welche Seiten (auch Subdomains) und Inhalte umfasst meine Website?
- Welche Inhalte sind für den KI-Assistenten relevant und welche sind es explizit nicht (z. B. alte Pressemitteilungen)?
- Gibt es Bereiche, die nur nach Login erreichbar sind?
- Gibt es Inhalte, die dynamisch laden?
- Gibt es Downloads?
- Gibt es relevante Inhalte, die nur durch Grafiken, aber nicht durch Text dargestellt werden?
Auf Basis dieser Überlegungen können Inhalte, die nicht Teil der Datenbasis des KI-Assistenten sein sollen, beim Crawling ausgeschlossen werden. So können Sie vermeiden, dass veraltete Inhalte oder für den Usecase nicht relevante Inhalte die Qualität der Datenbasis und damit auch die Antwortqualität mindern. Darüber hinaus können Sie Inhalte, die dynamisch laden, nur durch Grafiken dargestellt sind oder auf andere Weise schwieriger zugänglich sind, nach dem Crawling im Korpus suchen oder Fragen zu diesen Themen gezielt testen und so prüfen, ob sie durch das Crawling ausreichend gut erfasst wurden. Sollten Inhalte in einem durch Login geschützten Bereich vorliegen, muss beim Crawling eine Authentifizierung erfolgen. Sprechen Sie hierzu bitte mit Ihrer Kauz-Projektleitung.
#
Whitelist & Blacklist
Welche Seiten Ihrer Website gecrawlt werden, können Sie definieren indem Sie
- mithilfe der Whitelist festlegen, welche Seiten gecrawlt werden dürfen oder
- mithilfe der Blacklist festlegen, welche Seite nicht gecrawlt werden dürfen. Fügen Sie in die Whitelist bzw. Blacklist aussagekräftige Teile der einzuschließeden bzw. auszuschließenden URL ein.
Beispiel für die Nutzung der Whitelist:
- Seed-URL: https://kauz.ai/faq/
- Whitelist: faq
--> Nur die Seite https://kauz.ai/faq/ und Seiten, die von https://kauz.ai/faq/ aus erreichbar sind und "faq" in der URL haben, werden gecrawlt.
Beispiel für die Nutzung der Blacklist:
- Seed-URL: https://kauz.ai/
- Blacklist: blog
--> Alle Seiten, die von https://kauz.ai/ aus erreichbar sind und zur gleichen Domain gehören, werden gecrawlt. Nur Seiten, die "blog" in der URL haben, werden nicht gecrawlt.
Beachten Sie bitte, dass die Seed-URL nicht durch die Blacklist ausgeschlossen werden darf.
#
Crawlingtiefe beschränken
Sie können bestimmen, ob beim Crawling der Zugriff auf Unterseiten beschränkt werden soll. Bei einer Crawlingtiefe von 1 wird nur die mithilfe der Seed-URL angegeben Seite gecrawlt. Bei einer Crawlingtiefe von 2 werden die mithilfe der Seed-URL angegeben Seite und alle Seiten, die von dieser Seite aus erreichbar sind und zur gleichen Domain gehören, gecrawlt. Seiten, die ebenfalls von der Seed-URL nicht in nur einem Schritt erreicht werden können, werden nicht gecrawlt.
#
Dokumente einbeziehen
Sie können festlegen, ob Nicht-HTML-Dokumente (z. B. PDFs) mitgecrawlt werden sollen.
#
Chunking-Strategie
- Ein Chunk pro Dokument
- Eine Seite der Website wird als ein zusammenhängender Chunk gespeichert. Dabei besteht eine Maximallänge basierend auf den verwendeten Vector-Embeddings (aktuell 8.192 Token). Überschreitet der extrahierte Text diese Länge, werden mehrere Chunks mit dem konfigurierten Overlap gebildet. Zwischen Chunks verschiedener Dokumente gibt es keine Überlappung.
- Textstrukturbasiert
- Es werden eher kurze Chunks abhängig von der Textstruktur gebildet, z.B. Chunks für einzelne Bullet Points oder kurze Absätze.
#
Überlappung
Sie können konfigurieren, wie stark die einzelnen Chunks überlappen. Der Default-Wert sind 20 %. Durch überlappende Chunks bleiben inhaltliche Zusammenhänge besser erhalten.
#
Kurze Chunks ignorieren
Sie können bestimmen, ob Sie kurze Chunks bei der Antwortgenerierung berücksichtigen möchten. Wird diese Option aktiviert, werden alle Chunks, die kürzer als 20 Token sind, ignoriert.
Lassen Sie sich gern von Ihrer Kauz-Projektleitung beraten, um eine geeignete Chunking-Strategie zu bestimmen.