Eine der neuesten Weiterentwicklungen im Bereich Natural Language Processing (NLP) ist Retrieval-Augmented Generation (RAG), eine Technik, bei der die Stärken von Informationsabruf (Information Retrieval) und Textgenerierung (Natural Language Generation, NLG) kombiniert werden. RAG kann die Konzeption, das Design und die Implementierung von Software neu gestalten und eine neue Ära der Effizienz und Kreativität durch generative Modelle einleiten.
Was ist Retrieval-Augmented Generation (RAG)?
Retrieval-Augmented Generation (RAG) ist ein NLP-Modell (Natural Language Processing), das 2 Schlüsselkomponenten kombiniert: einen Generator und einen Retriever.
Generator: In diesem Teil werden neue Inhalte wie Sätze oder Absätze erstellt, normalerweise basierend auf Large Language Models (LLMs).
Retriever: In diesem Teil werden relevante Informationen aus einem vorgegebenen Satz von Dokumenten oder Daten abgerufen.
In einfachen Worten: RAG verwendet den Retriever, um nützliche Informationen in einer großen Sammlung von Texten zu finden. Anschließend verwendet der Generator diese Informationen, um sein LLM-basiertes Training zu ergänzen und neuen, kohärenten Text zu erstellen. Mit diesem Ansatz können Sie die Qualität und Relevanz der KI-generierten Inhalte verbessern, indem Sie neues und oftmals domainspezifischeres Wissen nutzen, das außerhalb des umfangreichen Datensatzes liegt, der zum Trainieren des ursprünglichen LLM verwendet wurde. Er wird häufig für Aufgaben wie die Beantwortung von Fragen oder das Zusammenfassen von Text verwendet.
RAG integriert diese beiden Prozesse und bietet Entwicklungsteams die Möglichkeit, eine Fülle von vorhandenem Wissen zu nutzen, um LLMs zu ergänzen und die Generierung neuer, kontextbezogener Inhalte zu verbessern.
Wie sehen die Daten aus?
Daten sind für Large Language Models, generative KI-Modelle und KI-Anwendungen unverzichtbar. Sie werden auf verschiedene Weise genutzt, um die Performance dieser Modelle in unterschiedlichen Bereichen zu trainieren, zu validieren und zu verbessern. NLP-Modelle und RAG verwenden Trainingsdaten, die als „Vektordaten“ bezeichnet werden, um Beziehungen zwischen Datensätzen zu bestimmen.
Was sind Vektordaten?
Möglicherweise haben Sie schon von Vektordaten in geografischen Informationssystemen (GIS) und in der Kartierung gehört. In zahlreichen Bereichen wie Geografie, Städtebau, Umweltwissenschaften und Transport werden diese Daten heutzutage verwendet. Sie ermöglichen die genaue Darstellung, Analyse und Visualisierung von Geoinformationen und helfen Nutzenden, geografische Daten zu verstehen und Entscheidungen auf der Basis geografischer Daten zu treffen. Die Vektordaten veranschaulichen die Beziehung oder den Raum zwischen verschiedenen Punkten, beispielsweise wie weit eine Stadt von einer anderen entfernt ist.
Wie verwenden NLP und RAG Vektordaten?
NLP und RAG verwenden keine Vektordaten im traditionellen Sinne von GIS oder räumlicher Analyse, aber Vektordarstellungen sind für verschiedene Aufgaben innerhalb dieser Systeme entscheidend. In diesem Framework beziehen sich Vektordaten typischerweise auf numerische Darstellungen von Wörtern, Sätzen oder Dokumenten in einem hochdimensionalen Vektorraum.
Diese numerischen Darstellungen werden in Modellen verwendet, die üblicherweise als „Einbettungen“ bezeichnet werden. Diese Einbettungen erfassen die semantischen und syntaktischen Beziehungen zwischen Wörtern oder Textsegmenten. So können beispielsweise hochdimensionale Vektordaten in Modelle wie watsonx.ai von IBM oder Hugging Face eingespeist werden, die auf die Umwandlung von Daten in Einbettungen spezialisiert sind. Dabei werden komplexe Daten in numerische Formulare umgewandelt, die Computer verstehen können.
Obwohl sich der Begriff „Vektordaten“ in RAG nicht unbedingt auf geografische Vektoren bezieht, ist die Darstellung von Text als Vektoren für viele Aspekte von NLP und RAG von zentraler Bedeutung, einschließlich Repräsentationslernen, Retrieval und Generierung. Mit diesen Trainingsdaten können Modelle Texte sinnvoll verarbeiten und manipulieren. Dies erleichtert Aufgaben wie die Beantwortung von Fragen, Zusammenfassungen und die Erstellung von Dialogen.
Wie RAG in der Softwareentwicklung verwendet werden kann
1. Informationsabruf
Der Abruf von Informationen spielt bei der Softwareentwicklung eine entscheidende Rolle. Entwicklungsteams müssen häufig auf viele Ressourcen zugreifen, darunter Dokumentation, Code-Repositories, Foren und Forschungsarbeiten. RAG optimiert diesen Prozess, indem es den Abruf relevanter Informationen automatisiert, Zeit spart und Entwicklungsteams Zugang zu aktuellen, genauen und kontextrelevanten Informationen verschafft.
2. Generierung natürlicher Sprache
Sobald die relevanten Informationen abgerufen wurden, kommt die RAG-Komponente zur Textgenerierung ins Spiel. Dazu gehört das Erstellen von für Menschen lesbarem Text basierend auf den abgerufenen Daten. In der Softwareentwicklung kann das in Form von Code-Snippets, Dokumentation oder sogar interaktiven Guides erfolgen. Der generierte Inhalt entsteht nicht einfach durch Kopieren und Einfügen vorhandener Informationen, sondern er ist auf die konkreten Anforderungen der Entwicklerin oder des Entwicklers zugeschnitten.
3. Iterative Verfeinerung
Was RAG von anderen abhebt, ist der iterative Verfeinerungsprozess. Die Entwicklerinnen und Entwickler können mit den generierten Inhalten interagieren, Feedback geben und die Ausgabe optimieren. Durch diese wechselseitige Interaktion wird das Endergebnis so optimiert, dass es genauer ist und besser auf die Absicht und den Programmierstil der Entwicklerin oder des Entwicklers abgestimmt ist. Es handelt sich um einen iterativen Ansatz, der die Lücke zwischen der immensen Informationsmenge und den besonderen Anforderungen eines bestimmten Projekts schließt.
Use Cases für Softwareentwicklung mit Retrieval-Augmented Generation
Use Case 1: Codegenerierung
RAG kann grundlegende Veränderungen bei der Codegenerierung bewirken. Die Entwicklungsteams können übergeordnete Anforderungen oder Logik beschreiben, und das System kann relevante Code-Snippets abrufen und sie an den jeweiligen Kontext anpassen. Dies beschleunigt den Codierungsprozess und fördert Best Practices.
Use Case 2: Dokumentation
Die Dokumentation ist ein wichtiger Aspekt der Softwareentwicklung, der aus Zeitgründen oft vernachlässigt wird. RAG vereinfacht das Erstellen von Dokumentationen, indem es Informationen aus relevanten Quellen abruft und automatisch kohärente, entwicklungsfreundliche Dokumentationen erstellt.
Use Case 3: Fehlerbehebung und Debugging
Wenn Entwicklungsteams vor einer Herausforderung beim Programmieren stehen, können sie mit RAG nach Lösungen suchen und kontextbezogene Vorschläge erhalten. Dies kann den Debugging-Prozess erheblich beschleunigen und die Ausfallzeit reduzieren.
Nutzung von RAG für Hybrid Cloud Computing
DevOps- und MLOps-Teams (Developer Operations und Machine Learning Operations) können RAG in einer Hybrid Cloud-Umgebung nutzen, um beispielsweise die Prozesse bei Datenverwaltung, Modelltraining, Dokumentation, Überwachung und Ressourcenzuordnung zu verbessern – zur Steigerung der Effizienz und Effektivität von ML-Abläufen.
Daten und Dokumentation
Mit RAG lassen sich relevante Daten sowohl aus lokalen als auch aus cloudbasierten Datenquellen abrufen. Dies ist besonders in einer Hybrid Cloud-Umgebung nützlich, in der Daten auf mehrere Standorte verteilt werden können. Durch effektives Abrufen und Erweitern von Daten ermöglicht MLOps den Zugriff von ML-Modellen auf diverse und umfassende Datensätze für Training und Validierung.
RAG kann auch bei der Automatisierung von Dokumentations- und Wissensaustauschprozessen innerhalb von MLOps-Workflows helfen. Mithilfe von NLG-Funktionen können RAG-Systeme automatisch Dokumentationen, Berichte und Zusammenfassungen von ML-Experimenten, Modellevaluierungen und Bereitstellungsverfahren generieren. So können Sie umfassende Aktivitätsdatensätze verwalten und den Wissenstransfer zwischen Teammitgliedern vereinfachen.
Ressourcenzuweisung und -optimierung
RAG-Techniken können auch in Workflows integriert werden, um die adaptive Ressourcenzuweisung und -skalierung in einer Hybrid Cloud-Umgebung zu ermöglichen. MLOps-Teams können beispielsweise Rechenressourcen dynamisch in On-Premise-Infrastrukturen und cloudbasierte Plattformen zuweisen und so die Trainings-, Inferenz- und Bereitstellungsprozesse von Modellen optimieren, indem sie Insights über Modell-Performance und Ressourcennutzung generieren.
Das wachsende KI-Ökosystem
Es gibt ein wachsendes Ökosystem von Datenprodukten und generativen Modellen für Entwicklungsteams, die RAG nutzen möchten. Ein bekanntes Beispiel, von dem Sie vielleicht schon gehört haben, ist OpenAI, das Unternehmen hinter ChatGPT. Der RAG-Assistent von OpenAI befindet sich derzeit in der Betaversion und ist Teil der erweiterten Modellfamilie, die von OpenAI entwickelt wurde.
Unternehmen und Entwicklungsteams können auch ihre eigenen Versionen von RAG mithilfe eines Ökosystems von Datentools und -modellen implementieren, um eine Umgebung mit verbesserter Sicherheit für bestimmte Use Cases zu entwickeln. Darüber hinaus helfen die zunehmenden Partnerschaften in diesem Netzwerk den MLOps-Teams beim schnellen Einstieg und ermöglichen eine gezielte Ausrichtung auf Geschäftsergebnisse – statt die Zeit mit der Fehlersuche und Wartung komplexer Standalone-Technologien zu verbringen.
Mehr erfahren
Dell Technologies und Red Hat haben gemeinsam eine Full-Stack-KI/ML-Lösung entwickelt, die auf Dell APEX Cloud Platform for Red Hat OpenShift mit Red Hat OpenShift AI basiert. OpenShift AI auf DELL APEX Cloud Platform verwendet ein LLM mit RAG, um aus vektorisierten Dokumenten einen digitalen Assistenten zu erstellen, der nicht nur unternehmensspezifische Informationen enthält, sondern auch aktuelle Antworten für seine Nutzenden bereitstellt.
Red Hat baut sein Netzwerk aus Software- und Hardwarepartnern weiterhin aus, um umfassende Lösungen zum Entwickeln, Bereitstellen und Verwalten von ML-Modellen und KI-basierten intelligenten Anwendungen anbieten zu können.
Im Red Hat Ecosystem Catalog finden Sie Lösungen von Software- und Hardwarepartnern, die für Red Hat OpenShift für Ihre KI/ML-Workloads zertifiziert sind.
Über den Autor
Adam Wealand's experience includes marketing, social psychology, artificial intelligence, data visualization, and infusing the voice of the customer into products. Wealand joined Red Hat in July 2021 and previously worked at organizations ranging from small startups to large enterprises. He holds an MBA from Duke's Fuqua School of Business and enjoys mountain biking all around Northern California.
Mehr davon
Nach Thema durchsuchen
Automatisierung
Das Neueste zum Thema IT-Automatisierung für Technologien, Teams und Umgebungen
Künstliche Intelligenz
Erfahren Sie das Neueste von den Plattformen, die es Kunden ermöglichen, KI-Workloads beliebig auszuführen
Open Hybrid Cloud
Erfahren Sie, wie wir eine flexiblere Zukunft mit Hybrid Clouds schaffen.
Sicherheit
Erfahren Sie, wie wir Risiken in verschiedenen Umgebungen und Technologien reduzieren
Edge Computing
Erfahren Sie das Neueste von den Plattformen, die die Operations am Edge vereinfachen
Infrastruktur
Erfahren Sie das Neueste von der weltweit führenden Linux-Plattform für Unternehmen
Anwendungen
Entdecken Sie unsere Lösungen für komplexe Herausforderungen bei Anwendungen
Virtualisierung
Erfahren Sie das Neueste über die Virtualisierung von Workloads in Cloud- oder On-Premise-Umgebungen