Workflow-Schritte
Ein typischer RAG-Workflow besteht aus zwei Hauptphasen: Ingestion und Online-Verarbeitung. Die Ingestion, oder Vorverarbeitung, (Schritte 1-4) umfasst die Vorbereitung der Daten für das RAG-System und erfolgt in der Regel offline. Die Online-Verarbeitung (Schritte 5-7) behandelt die Echtzeitaspekte des RAG-Systems und konzentriert sich auf Datenabruf und Antwortgenerierung.1
Document Parsing
Daten werden geladen und mit Dokumenten-Loadern, die auf bestimmte Dateitypen wie CSV, Markdown und PDF zugeschnitten sind, in digitalen Text formatiert. Dieser Schritt umfasst die Extraktion von Inhalten und zugehörigen Metadaten wie Quelle und Seitenzahlen. Abhängig von der Qualität und dem Format der Dateien können Datenbereinigung und Anpassung erforderlich sein, um verschiedenen Anwendungsfallanforderungen gerecht zu werden.
2
Splitting
Dokumente werden in kleinere Chunks unterteilt, um den Kontextfenster-Limitierungen des Modells gerecht zu werden. Es gibt verschiedene Strategien für das Daten-Chunking, wobei Chunk-Größe, Überlappungsgröße und Sliding Window wichtige Hyperparameter sind, die optimiert werden können.
3
Vector Embeddings
Jeder Text-Chunk wird mithilfe eines Embedding-Modells in eine Vektordarstellung umgewandelt. Diese Embeddings erleichtern den Inhaltsabruf basierend auf semantischer Ähnlichkeit.
4
Vector Store
Die Embeddings mit ihren entsprechenden Inhalten und Metadaten werden in einer Vektordatenbank gespeichert, wobei das Embedding als Index verwendet wird. Es sind mehrere Vektordatenbank-Optionen verfügbar, darunter beispielsweise FAISS, ChromaDB, Qdrant und Milvus.
5
Retrieval
Die Anfrage wird ebenfalls eingebettet, und eine Retriever-Funktion wird verwendet, um die nächstgelegenen Chunk-Vektoren in der Vektordatenbank zum Anfragevektor zu identifizieren, basierend auf einer bestimmten Ähnlichkeitsmetrik. Dieser Schritt nutzt die während des Ingestion-Workflows gespeicherten Embeddings.
6
Reranking
Dies ist ein optionaler Schritt in der Online-Verarbeitungsphase. Ein Reranker-Modell kann auch verwendet werden, um die abgerufenen Chunks nach Relevanz zu sortieren und unnötige Chunks zu entfernen.
7
Q&A-Generierung
Das LLM erhält die Benutzeranfrage und die finalen abgerufenen Chunks, um eine fundierte Antwort zu generieren.