AI Personal Learning
und praktische Anleitung
讯飞绘镜

AI Engineering Academy: 2.4 Daten-Chunking-Techniken für Retrieval Augmented Generation (RAG) Systeme

kurz

Das Chunking von Daten ist ein wichtiger Schritt in Retrieval Augmented Generation (RAG)-Systemen. Dabei werden große Dokumente in kleinere, handhabbare Teile zerlegt, um eine effiziente Indizierung, Abfrage und Verarbeitung zu ermöglichen. Dieses README bietet RAG Überblick über die verschiedenen in der Pipeline verfügbaren Chunking-Methoden.

https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/01_Data_Ingestion


 

Bedeutung von Chunking in der RAG

Wirksames Chunking ist für das RAG-System von entscheidender Bedeutung, denn es kann:

  1. Verbessern Sie die Abrufgenauigkeit, indem Sie kohärente, in sich geschlossene Informationseinheiten erstellen.
  2. Verbesserung der Effizienz von Einbettungsgenerierung und Ähnlichkeitssuche.
  3. Ermöglicht eine präzisere Kontextauswahl bei der Erstellung von Antworten.
  4. Hilfe bei der Verwaltung von Sprachmodellen und eingebetteten Systemen von Token Beschränkungen.

 

Chunking-Verfahren

Wir haben sechs verschiedene Chunking-Methoden implementiert, die jeweils unterschiedliche Vorteile und Einsatzszenarien haben:

  1. RecursiveCharacterTextSplitter
  2. TokenTextSplitter
  3. KamradtSemanticChunker
  4. KamradtModifiedChunker
  5. ClusterSemanticChunker
  6. LLMSemanticChunker

 

chunking

1. rekursiverZeichenTextSplitter

2. der TokenTextSplitter

3. kamradtSemantikBlocker

4) KamradtModifizierterBunker

5. clusterSemanticChunker

6. LLMSemanticChunker

 

Methode Beschreibung

  1. RecursiveCharacterTextSplitterAufteilung von Text auf der Grundlage einer Hierarchie von Begrenzungszeichen, wobei natürliche Trennpunkte im Dokument bevorzugt werden.
  2. TokenTextSplitterZerlegt Text in Blöcke mit einer festen Anzahl von Token, wobei sichergestellt wird, dass die Aufteilung an den Tokengrenzen erfolgt.
  3. KamradtSemanticChunkerSliding-Window-Einbettungen verwenden, um semantische Diskontinuitäten zu erkennen und den Text entsprechend zu segmentieren.
  4. KamradtModifiedChunkerKamradtSemanticChunker: Eine verbesserte Version von KamradtSemanticChunker, die die Bisektionssuche verwendet, um den optimalen Schwellenwert für die Segmentierung zu finden.
  5. ClusterSemanticChunkerAufteilung des Textes in Abschnitte (Chunks), Berechnung der Einbettungen und Verwendung der dynamischen Programmierung, um optimale Abschnitte auf der Grundlage semantischer Ähnlichkeit zu erstellen.
  6. LLMSemanticChunkerSprachmodellierung verwenden, um geeignete Segmentierungspunkte im Text zu identifizieren.

Verwendung

Um diese Chunking-Methoden in Ihrem RAG-Prozess zu verwenden:

  1. durch (eine Lücke) chunkers Modul, um die benötigten Chunker zu importieren.
  2. Initialisieren Sie den Chunker mit geeigneten Parametern (z. B. maximale Chunk-Größe, Überlappung).
  3. Übergeben Sie Ihr Dokument an den Chunker, um Chunking-Ergebnisse zu erhalten.

Beispiel:

from chunkers import RecursiveCharacterTextSplitter
chunker = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = chunker.split_text(your_document)

Wie man eine Chunking-Methode wählt

Die Wahl der Chunking-Methode hängt von Ihrem spezifischen Anwendungsfall ab:

  • Für eine einfache Textaufteilung können Sie RecursiveCharacterTextSplitter oder TokenTextSplitter verwenden.
  • Wenn eine semantische Segmentierung erforderlich ist, sollten Sie KamradtSemanticChunker oder KamradtModifiedChunker in Betracht ziehen.
  • Für fortgeschritteneres semantisches Chunking verwenden Sie ClusterSemanticChunker oder LLMSemanticChunker.

Faktoren, die bei der Auswahl einer Methode zu berücksichtigen sind:

  • Dokumentstruktur und Inhaltstypen
  • Erforderliche Chunk-Größe und Überlappung
  • Verfügbare Computerressourcen
  • Spezifische Anforderungen an das Retrievalsystem (z. B. vektorbasiert oder schlagwortbasiert)

Es ist möglich, verschiedene Methoden auszuprobieren und diejenige zu finden, die Ihren Dokumentations- und Abrufanforderungen am besten entspricht.

Integration mit RAG-Systemen

Nach Abschluss des Chunking werden in der Regel die folgenden Schritte durchgeführt:

  1. Erzeugung von Einbettungen für jeden Chunk (für vektorbasierte Retrievalsysteme).
  2. Indizieren Sie diese Chunks in dem gewählten Retrievalsystem (z. B. Vektordatenbank, invertierter Index).
  3. Bei der Beantwortung einer Abfrage werden die Indexbrocken im Abrufschritt verwendet.

 

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " AI Engineering Academy: 2.4 Daten-Chunking-Techniken für Retrieval Augmented Generation (RAG) Systeme
de_DEDeutsch