### Collect In der **Sammelphase** werden relevante Daten aus verschiedenen Quellen gesammelt. Diese Daten können Texte, Bilder, Videos oder andere Formen von Informationen sein, die später im Prozess verwendet werden. ++ Als Datenquellen können unterschiedlichste Systeme dienen. Standardinformationssysteme wie ERP, CRM oder ITSM. Gängige Beispiele sind SAP, Salesforce oder ServiceNow. Aber auch Dateien in verschiedenen Formaten, .doc, .excel, .pdf und so weiter. Verschiedene Data-Loaders müssen implementiert werden, um die Daten in die Vector-Datenbank zu laden. --- ### Chunk **Chunking** bezieht sich auf das Aufteilen der gesammelten Daten in kleinere, handhabbare Stücke. Dies erleichtert die Verarbeitung und das Einbetten der Daten. Die Chunking-Strategien können variieren und umfassen folgende Methoden: - **Paragraph**: Absätze werden als eigenständige Einheiten behandelt, was hilfreich ist, um den Zusammenhang und Kontext zu bewahren. - **Sentence**: Sätze werden separat betrachtet, was die Granularität der Analyse erhöht und eine präzisere Verarbeitung ermöglicht. - **Word**: Wörter werden einzeln behandelt, was besonders nützlich für feinkörnige Analysen und spezielle Anwendungen wie Named Entity Recognition (NER) ist. #### Überlappungen Überlappungen zwischen Chunks können hilfreich sein, um den Kontext über Chunks hinweg zu bewahren. Zum Beispiel könnte ein Satz teilweise in zwei benachbarte Absatz-Chunks aufgenommen werden, um den Zusammenhang sicherzustellen. #### High Level Context Das Einbeziehen von hohem Kontext wie Dokumenttiteln oder Überschriften kann den Chunks zusätzliche Informationen geben, die bei der Interpretation und Verarbeitung hilfreich sind. Dies hilft insbesondere bei der Beibehaltung des thematischen Zusammenhangs und der Relevanz der Informationen. --- ### Embed In der **Einbettungsphase** werden die Daten in eine numerische Form umgewandelt, die von maschinellen Lernmodellen verarbeitet werden kann. #### Embedding Models - **Text**: Textdaten werden mithilfe von Text-Embedding-Modellen, wie Word2Vec, GloVe oder BERT, in Vektoren umgewandelt. - **Image/ClipEmbedding**: Bilddaten werden mit Modellen wie CLIP (Contrastive Language-Image Pretraining) eingebettet, das sowohl Text- als auch Bildinformationen kombiniert und in einen gemeinsamen Vektorraum projiziert. #### Fine-Tuning Embeddings Das Fine-Tuning von Embeddings auf spezifische Daten kann die Leistung erheblich verbessern. Laut Experimenten von [LlamaIndex](https://www.llamaindex.ai/) kann das Feintunen des Einbettungsmodells eine Leistungssteigerung von 5–10% in den Retrieval-Evaluationsmetriken bewirken. Diese Feintuning-Schritte umfassen: - **[Q-21]**: Anpassung des Modells auf spezifische Datensätze, um die Genauigkeit und Relevanz zu erhöhen. - **[Q-8]**: Optimierung der Modellparameter, um bessere Einbettungen für die spezifische Domäne zu generieren. - **[Q-22]**: Durchführung von Experimenten und Anpassungen, um die optimale Modellleistung zu erreichen (mit Code) #### Domänenspezifische Modelle Es gibt auch Möglichkeiten, Einbettungen auf eigene Daten zu feintunen oder vortrainierte Einbettungsmodelle zu verwenden, die bereits für eine bestimmte Domäne, wie Pharma oder Finanzen, feingetunt wurden. Diese Modelle bieten den Vorteil, dass sie bereits auf die spezifischen Anforderungen und Terminologien der Domäne optimiert sind. #### Andere Einbettungsmodelle Es gibt auch spezialisierte Einbettungsmodelle, die bereits auf bestimmte Domänen feingetunt wurden. Diese Modelle können direkt verwendet werden und bieten Vorteile für spezifische Anwendungsfälle: **Instruction-Finetuned Text Embeddings**: Diese Modelle sind darauf trainiert, spezifische Anweisungen oder Domänen zu berücksichtigen, wie in [Q-13] und [Q-12] beschrieben. --- ### Index In der **Indexierungsphase** werden die eingebetteten Daten in einem Suchindex gespeichert. Dies ermöglicht ein schnelles Abrufen relevanter Informationen in späteren Phasen. Speicherung von Metadaten und hierarchische Indizes sind spannende fortgeschrittene Techniken ([Q-21], [Q-36]) --- ### Retrieve Während der **Abrufphase** werden relevante Informationen aus dem Index abgerufen, basierend auf einer Abfrage oder einem Bedarf. --- ### Rerank Die abgerufenen Informationen werden in der **Neurankungsphase** neu bewertet, um sicherzustellen, dass die relevantesten und nützlichsten Informationen an erster Stelle stehen. Dies verbessert die Qualität der zurückgegebenen Ergebnisse. --- ### Evaluate Die **Evaluierungsphase** bewertet die Leistung des gesamten RAG-Zyklus. Dies umfasst die Beurteilung verschiedener Metriken, wie Präzision, Genauigkeit und Relevanz der zurückgegebenen Informationen. In den Schritten [Q-24], [Q-27], [Q-29], [Q-34], und [Q-34] werden spezifische Evaluationsmethoden oder -kriterien angewendet, um die Effektivität des Prozesses zu messen und Verbesserungspotentiale zu identifizieren. #actionrequired ---