Wann sollte man Retrieval-Augmented Generation einsetzen

RAG ist kein Allheilmittel! Es ist der billigste Weg, Large Language Models zu verbessern. Das ist aber leider nicht immer der Fall. Im Folgenden finden Sie ein paar Hilfestellungen die die Entscheidung über den Einsatz von Retrieval-Augmented Generation (RAG) unterstützen.

Größe und Spezifität des Datensatzes:
Wenn der Datensatz groß und vielfältig ist, können Sie RAG in Betracht ziehen.
Die Feinabstimmung von LLMs auf umfangreiche und unterschiedlichen Datensätzen kann eine Herausforderung darstellen, einschließlich unzureichender Datensatzgröße oder -umfang, was die Leistung beeinträchtigen kann. Wenn der Datensatz klein und spezifisch ist, verwenden Sie RAG nicht. Die Feinabstimmung ist besonders effektiv für die Spezialisierung des LLM auf einen bestimmten Bereich, z. B. Codierung oder Befolgung von Anweisungen.

Für große und vielfältige Datensätze:
Wenn Kontextinformationen benötigt werden, verwenden Sie RAG.
Wenn Sie mit erhöhter Komplexität und Latenz umgehen können, verwenden Sie RAG.
Wenn Sie eine bessere Such- und Antwortqualität anstreben, verwenden Sie RAG.
RAG-Systeme können auf Informationen aus umfangreichen Dokumentenspeichern zugreifen und diese verarbeiten, während sie einen natürlichen Gesprächsfluss beibehalten.

Für kleine und spezifische Datensätze:
Wenn kein externes Wissen erforderlich ist, verwenden Sie RAG nicht.
Wenn schnellere Reaktionszeiten bevorzugt werden, verwenden Sie RAG nicht.
Während der RAG erhält das LLM in der Regel eine große Eingabeaufforderung, wobei ein Großteil der Eingabeaufforderung aus abgerufenem Kontext der jeweiligen Wissens-Silos besteht und der Rest Anweisungen sind. Große Eingabeaufforderungen können die Generierungszeit erheblich verzögern und die Anwendungskosten dementsprechend erhöhen. Wenn die Aufgabe einfache Fragen und Antworten oder eine feste Datenquelle umfasst, verwenden Sie RAG nicht.

Wenn die Entscheidung auf "nicht RAG" fällt, was können wir dann tun?
Feinabstimmung (sog. Finetuning) und/oder Prompt Engineering.

Die Feinabstimmung umfasst das Trainieren des Large Language Model (LLM) für einen bestimmten Datensatz, der für Ihre Aufgaben relevant ist. Dies hilft dem LLM, die Domäne besser zu verstehen und seine Genauigkeit für Aufgaben innerhalb dieser Domäne zu verbessern.

Beim Prompt Engineering konzentrieren Sie sich auf die Erstellung informativer Eingabeaufforderungen und Anweisungen für das LLM. Wenn Sie das LLM sorgfältig mit den richtigen Fragen und dem richtigen Kontext anleiten, kann es so gesteuert werden, dass es relevantere und genauere Antworten generiert, ohne dass ein externer Schritt zur Informationsbeschaffung erforderlich ist.

Letztendlich hängt die beste Alternative von Ihren spezifischen Bedürfnissen ab.