Retrieval Augmented Generation

LLMs, die auf auf externe Wissensquellen verweisen

Unter Retrieval Augmented Generation (RAG) versteht man ein Softwaresystem, welches Information Retrieval mit einem Large Language Model kombiniert. Eine Abfrage, welches an das System gestellt wird, wird hierbei mit Informationen aus einer Datenbank oder dem World Wide Web erweitert.[1][2]

Verfahren

Bearbeiten

Retrieval Augmented Generation besteht im Wesentlichen aus vier Stufen:

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

Datenindexierung

Bearbeiten

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, oder strukturiert (z. B. aus einer Relationale Datenbank oder einem Wissensgraphen) 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örige Antworten von einem RAG-System indexiert werden.

Datenabruf

Bearbeiten

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.[3][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[4].

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

Augmentierung

Bearbeiten

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

Bearbeiten

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

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.

Herausforderungen

Bearbeiten

RAG-Systeme weisen aufrund 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.

Referenzen

Bearbeiten
  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. Olesya Bondarenko: Implement Semantic Search with ML and BERT. Hrsg.: Manning. (englisch, manning.com [abgerufen am 23. Juli 2024]).
  4. 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]).
  5. Yunfan Gaoa, Yun Xiongb, Xinyu Gaob, Kangxiang Jiab, Jinliu Panb, Yuxi Bic, Yi Daia, Jiawei Suna, Meng Wangc, Haofen Wang: Retrieval-Augmented Generation for Large Language Models: A Survey. (PDF) Tongji-Universität, Fudan-Universität, 27. März 2024, abgerufen am 23. Juli 2024 (englisch).