Retrieval Augmented Generation

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 17. August 2024 um 14:09 Uhr durch MovGP0 (Diskussion | Beiträge) (→‎Datenindexierung: Ablauf genauer beschrieben). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Unter Retrieval-Augmented Generation (RAG) versteht man ein Softwaresystem, welches Information Retrieval mit einem Large Language Model kombiniert. Eine Abfrage, welche an das System gestellt wird, kann hierbei auf Informationen aus (externen) Informationsquellen, Datenbanken oder dem World Wide Web zugreifen statt nur auf die Trainingsdaten des Modells.[1][2] Dies erhöht die Genauigkeit und Robustheit der generierten Inhalte, indem es die Modelle mit aktuellen und spezifischen Informationen versorgt.[3] Typische Anwendungsfälle sind der Zugriff von Chatbots auf interne (Unternehmens-)Daten oder die Bereitstellung von Sachinformationen, die ausschließlich aus verlässlichen Quellen stammen sollen.

Verfahren

Retrieval-Augmented Generation besteht im Wesentlichen aus vier Stufen:

  1. Datenindexierung
  2. Datenabruf
  3. Augmentierung
  4. Antwortgenerierung

Datenindexierung

Die zu referenzierenden Daten werden im ersten Schritt in Worteinbettungen umgewandelt und in einer Vektordatenbank indexiert. Die Daten können hierbei sowohl unstrukturiert (Texte, Bilder, Video, Audio), semistrukturiert, strukturiert (z. B. aus einer Relationalen Datenbank oder einem Wissensgraphen[4]) vorliegen. In der Vektordatenbank werden hierbei die Worteinbettungen mit den originalen Daten verknüpft.[2]

Abhängig von der jeweiligen Implementierung können auch Suchanfragen an das System und die zugehörigen Antworten durch ein RAG-System indexiert werden.

Chunking

Im ersten Schritt werden die zu indexierenden Daten in kleinere Bestandteile (Chunks) aufgeteilt. Textdokumente können beispielsweise in kleinere Absätze aufgeteilt werden, während man Wissensgraphen in Sub-Graphen zerteilt. Bilder können nach den Objekten im Bild (Hund, Tisch, Gesicht, etc.) mittels eines Segmentierungsmodells aufgeteilt werden.[5] Bei relationalen Datenbanken kann man das Datenbankschema (z. B. DDL) nach zusammengehörigen Tabellen aufteilen, welche miteinander verjoined werden müssen.

Die einzelnen Bestandteile werden anschließend mit Annotationen versehen, um sie der ursprünglichen Datenquelle zuordnen zu können.

Token-Generierung

Die einzelnen Chunks werden mittels eines Tokenizers in Worteinbettungen (Token-Vektoren) übersetzt. Diese werden anschließend in der Vektordatenbank gemeinsam mit den Chunks und Annotationen gespeichert.

Bei Bildinformationen wird hier das Bild von einem Bild-zu-Text Modell in eine Beschreibung übersetzt und diese Beschreibung für die Worteinbettung verwendet. Seltener wird das Bild selbst codiert, denn hierfür wird ein geeigneter Tokenizer benötigt, welcher Bilddaten verarbeiten kann. Wenn Bild- und Textdaten in der selben Datenbank gespeichert werden sollen, wird ein multimodaler Tokenizer benötigt. Ähnliches gilt für das Verarbeiten von Audio- und Videodaten.

Datenabruf

Beim Datenabruf wird eine Suchanfrage des Benutzers zuerst in eine Worteinbettung umgewandelt. Anschließend wird ermittelt, welche in der Vektordatenbank gespeicherten Daten mit der Abfrage des Benutzers semantisch korrelieren.[6][2] Werden hierbei relevante Daten gefunden, werden diese gewichtet (Ranking) und gefiltert.

Für die Berechnung der Korrelation können unterschiedliche Verfahren zum Einsatz kommen. Typisch ist die Verwendung von Okapi BM25[7].

Die Filterung der Daten kann aus unterschiedlichen Gründen erfolgen. Hierbei gilt es die Vertraulichkeit der Daten, Jugendschutz-Einschränkungen, Urheberrechte und ähnliches zu berücksichtigen.

Augmentierung

Im Augmentierungsprozess werden anwendungsspezifische Daten, etwa ein Systemprompt und die Metadaten des Benutzers, sowie die gefundenen Daten der Suchanfrage mit der Anfrage des Benutzers zusammengeführt.[2] Komplexe RAG-Systeme können hierbei die Anfrage des Benutzers in unterschiedliche Wissensgebiete aufteilen und spezifisch behandeln.

Antwortgenerierung

Im letzten Schritt wird die augmentierte Suchanfrage in ein Sprachmodell übergeben, welches die Daten mittels eines statistischen Modells in eine Antwort transformiert[8].

Zudem wird die vom Sprachmodell generierte Antwort mit Referenzen auf die Quellen der Daten verknüpft (typischerweise über einen URI), um dem Benutzer eine Nachvollziehbarkeit und Kontrollmöglichkeit der Antwort zu ermöglichen.

Anwendungen

Da RAG-Systeme eine Erweiterung zu klassischen Suchmaschinen sind, sind die Einsatzbereiche überschneidend. Anwendungen für RAG-Systeme finden in der Kundenbetreuung[9][10][11], der Analyse medizinischer Informationen[12][13], juristischen Recherchen[14], der Bildung[15][16], wissenschaftlichen Forschung, Finanzanalyse[17][18], der Auswertung von Logdaten[19][20], sowie allen anderen Anwendungen, bei denen das Auffinden von Informationen relevant ist.

Herausforderungen

RAG-Systeme weisen aufgrund einer Vielzahl an beteiligten Softwaresystemen und Akteuren eine hohe Komplexität in der Implementierung auf.

Zudem muss die Indexierung, die Gewichtung und die Filterung der Daten kontinuierlich an sich ständig ändernde Gegebenheiten angepasst und erweitert werden. Der Betrieb eines RAG-Systems ist somit nicht nur mit einem hohen Aufwand in der Implementierung, sondern auch mit einem kontinuierlichen Aufwand im Betrieb verbunden.

Softwarepakete

Für die Implementierung von RAG-Systemen gibt es Softwarepakete, welche Anwendungsspezifisch angepasst werden müssen. Hierbei unterscheidet man zwischen komplexen Software-Frameworks, welche eine umfangreiche Orchestrierung von KI-Agenten und Programmierschnittstellen ermöglichen, sowie Softwarepaketen, welche eine Low-Code Umgebung bereitstellen.

Liste von Softwarepaketen zur Erstellung von RAG-Systemen
Softwarepaket Lizenz Beschreibung
Microsoft Copilot Studio Proprietär Low-Code Web-Plattform in Microsoft 356
Azure AI Studio Proprietär Low-Code Web-Plattform in Microsoft Azure. Auch komplexe Orchestrierung möglich.
PromptFlow Open-Source Technologie hinter Copilot Studio und Azure AI Studio. Ermöglicht eine komplexe Orchestrierung. Integration mit LangChain oder Semantic Kernel möglich.
Vertex AI Agent Builder Proprietär Low-Code Web-Plattform der Google Cloud
watsonx Proprietär Low-Code Orchestrierungs-Plattform von IBM
Firecrawl Open-Source API-Service zur Webseitenindexierung
LangChain und LangGraph Open-Source Framework für Orchestrierung von KI-Systemen
Kernel Memory Open-Source Framework zur Erstellung von RAG-Systemen
Semantic Kernel Open-Source Framework für Orchestrierung von KI-Systemen
Haystack Open-Source Framework zur Erstellung von RAG-Systemen
REALM Open-Source Google-Research-Projekt mit einer RAG-System Beispielimplementierung

Referenzen

  1. Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze: Introduction to Information Retrieval. Hrsg.: Stanford University, Ludwig-Maximilians-Universität München. 2009, ISBN 0-521-86571-9 (englisch, stanford.edu).
  2. a b c d Trey Grainger, Doug Turnbull, Max Irwin: AI-Powered Search. Hrsg.: Manning. 2024, ISBN 978-1-61729-697-0 (englisch, manning.com [abgerufen am 23. Juli 2024]).
  3. Penghao Zhao et al.: Retrieval-augmented generation for ai-generated content: A survey. 21. Juni 2024, doi:10.48550/arXiv.2402.19473, arxiv:2402.19473 (englisch).
  4. Tomaž Bratanič, Oskar Hane: Knowledge Graph-Enhanced RAG. Hrsg.: Manning. ISBN 978-1-63343-626-8 (englisch, manning.com [abgerufen am 23. Juli 2024]).
  5. Alexander Kirillov, Eric Mintun, Nikhila Ravi, Hanzi Mao, Chloe Rolland, Laura Gustafson, Tete Xiao, Spencer Whitehead, Alexander C. Berg, Wan-Yen Lo, Piotr Dollár, Ross Girshick: Segment Anything. 5. April 2023, doi:10.48550/arXiv.2304.02643, arxiv:2304.02643 (englisch).
  6. Olesya Bondarenko: Implement Semantic Search with ML and BERT. Hrsg.: Manning. (englisch, manning.com [abgerufen am 23. Juli 2024]).
  7. Stephen E. Robertson, Hugo Zaragoza: The Probabilistic Relevance Framework: BM25 and Beyond. Januar 2009, doi:10.1561/1500000019 (englisch, researchgate.net [PDF; abgerufen am 23. Juli 2024]).
  8. Yunfan Gao, Yun Xiong, Xinyu Gao, Kangxiang Jia, Jinliu Pan, Yuxi Bi, Yi Dai, Jiawei Sun, Meng Wang, Haofen Wang: Retrieval-Augmented Generation for Large Language Models: A Survey. Tongji-Universität, Fudan-Universität, 27. März 2024, arxiv:2312.10997 (englisch).
  9. Keshav Unni: Better Customer Support Using Retrieval-Augmented Generation (RAG) at Thomson Reuters. Medium, 8. August 2023, abgerufen am 18. August 2024 (englisch).
  10. Tarunvel V S: RAG in Customer Support. Medium, 11. April 2024, abgerufen am 18. August 2024 (englisch).
  11. Adarsh: Enhancing Customer Service with Retrieval-Augmented Generation (RAG) in AI Chatbots. kommunicate.io, 6. August 2024, abgerufen am 18. August 2024 (englisch).
  12. Tanya Malhotra: MedGraphRAG: An AI Framework for Improving the Performance of LLMs in the Medical Field through Graph Retrieval Augmented Generation (RAG). 12. August 2024, abgerufen am 16. August 2024 (englisch).
  13. Junde Wu, Jiayuan Zhu, Yunli Qi: Medical Graph RAG: Towards Safe Medical Large Language Model via Graph Retrieval-Augmented Generation. 8. August 2024, doi:10.48550/arXiv.2408.04187, arxiv:2408.04187.
  14. Arunim Samat: Legal-RAG vs. RAG: A Technical Exploration of Retrieval Systems. truelaw.ai, 23. März 2024, abgerufen am 16. August 2024 (englisch).
  15. Enhancing Education with RAG: How Universities Can Benefit. ElementX.ai, abgerufen am 16. August 2024 (englisch).
  16. Unveiling the Impact of RAG AI in Education: Real Case Studies Revealed. MyScale, 17. März 2024, abgerufen am 16. August 2024 (englisch).
  17. Eduardo Alvarez: Transforming Financial Services with RAG: Personalized Financial Advice. Medium, 5. April 2024, abgerufen am 16. August 2024 (englisch).
  18. Embracing RAG in Financial Services: A New Frontier in AI Technologies. In: LinkedIn Pulse. RoSoft Ventures, 11. November 2023, abgerufen am 16. August 2024 (englisch).
  19. Harikiran Akella: Log Analysis with GenAI — With HandsOn. Medium, 21. März 2024, abgerufen am 16. August 2024 (englisch).
  20. Yi Xiao, Van-Hoang Le, Hongyu Zhang: Stronger, Cheaper and Demonstration-Free Log Parsing with LLMs. 12. Juni 2024, doi:10.48550/arXiv.2406.06156, arxiv:2406.06156 (englisch).