Wie Datenqualität Retrieval-Augmented Generation (RAG)-Anwendungen beeinflusst

Retrieval-Augmented Generation (RAG)-Anwendungen haben den Zugang zu Informationen grundlegend verändert. Durch die Verbindung von Informationsabruf und generativer KI sind RAG-Systeme in der Lage, Ausgaben zu erzeugen, die sowohl präzise als auch kontextbezogen relevant sind. Dennoch hängt die Leistungsfähigkeit einer RAG-Anwendung von einem entscheidenden Faktor ab: der Qualität des zugrunde liegenden Datensatzes.

Nach der Lektüre dieses Artikels werden Sie Folgendes verstehen:

  • Welche zentrale Bedeutung Daten für den Einsatz von Retrieval-Augmented Generation (RAG)-Modellen haben.
  • Welche wesentlichen Merkmale hochwertige Daten für RAG-Anwendungsfälle auszeichnen.
  • Welche Risiken und Folgen mit der Verwendung minderwertiger Daten verbunden sind.

Nicht alle Daten sind gleichermaßen wertvoll, und der Unterschied zwischen hochwertigen und schwachen Daten kann darüber entscheiden, ob Ihr RAG-Modell erfolgreich arbeitet oder scheitert. In diesem Beitrag betrachten wir, was gute Daten ausmacht, weshalb schlechte Daten Ihre Anwendung ausbremsen können und wie Sie die passenden Informationen für Ihre RAG-Anwendung zusammentragen.

Wichtige Grundlagen vorab

Um den größtmöglichen Nutzen aus diesem Artikel zu ziehen, ist es hilfreich, wenn Sie in den folgenden Bereichen bereits über Grundwissen oder praktische Erfahrung verfügen:

  • Ein grundlegendes Verständnis dafür, wie KI-Modelle funktionieren, insbesondere im Zusammenhang mit Retrieval- und Generierungsprozessen.
  • Einen allgemeinen Überblick über RAG und seine zentralen Bestandteile, also Retriever und Generator.
  • Kenntnisse über die Branche oder den Einsatzbereich, den Sie adressieren möchten, etwa Gesundheitswesen, Rechtsberatung oder Kundensupport.

Sollten Ihnen diese Themen noch nicht vertraut sein, empfiehlt es sich, zunächst einführende Ressourcen oder Tutorials zu lesen, bevor Sie tiefer in die Erstellung von Datensätzen für RAG-Anwendungen einsteigen.

RAG-Anwendungen verstehen und warum Daten entscheidend sind

RAG vereint einen Retriever, der passende Informationen aus einem Datensatz abruft, mit einem Generator, der diese Inhalte nutzt, um aussagekräftige Antworten zu formulieren. Dieses zweigeteilte Konzept macht RAG-Anwendungen äußerst vielseitig und eröffnet Einsatzmöglichkeiten von Support-Assistenten bis hin zu medizinischen Diagnosewerkzeugen.

Der Datensatz bildet das Fundament dieses Prozesses, da er als Wissensbasis sowohl für die Informationssuche als auch für die Antworterstellung dient. Hochwertige Daten sorgen dafür, dass der Retriever korrekte und relevante Inhalte findet, während der Generator darauf aufbauend zusammenhängende und kontextuell passende Antworten liefern kann. Im RAG-Umfeld gibt es ein bekanntes Sprichwort: „garbage in, garbage out.“ So simpel es klingt, so treffend beschreibt es die Herausforderung: Wenn ein Datensatz verrauscht oder unpassend ist, leidet zwangsläufig auch die Qualität der Ergebnisse.

Der Retriever: Relevante Informationen finden

Die Aufgabe des Retrievers besteht darin, aus einem Datensatz die passendsten Inhalte zu identifizieren und zurückzugeben. Dafür kommen häufig Verfahren wie Vektorsuche, BM25 oder semantische Suche auf Basis dichter Embeddings zum Einsatz. Wie gut der Retriever kontextuell geeignete Informationen liefern kann, hängt stark davon ab, wie sauber der Datensatz aufgebaut und gepflegt ist. Zum Beispiel:

  • Ist der Datensatz klar strukturiert und sinnvoll annotiert, kann der Retriever gezielte und nützliche Inhalte deutlich leichter auffinden.
  • Enthält der Datensatz Rauschen, irrelevante Einträge oder eine schwache Struktur, kann der Retriever unvollständige oder fehlerhafte Ergebnisse liefern, was die Nutzererfahrung verschlechtert.

Der Generator: Aussagekräftige Antworten formulieren

Nachdem der Retriever die relevanten Informationen gesammelt hat, übernimmt der Generator und formt daraus eine zusammenhängende und kontextbewusste Antwort. Für diesen Schritt werden häufig generative KI-Modelle wie Meta Llama, Falcon oder andere transformerbasierte Systeme verwendet. Das Zusammenspiel zwischen Retriever und Generator ist dabei von zentraler Bedeutung:

  • Der Generator ist darauf angewiesen, dass der Retriever korrektes und relevantes Material bereitstellt. Ist die Retrieval-Qualität schwach, kann die erzeugte Antwort ungenau, unpassend oder sogar frei erfunden sein.
  • Ein gut trainierter Generator kann das Nutzererlebnis durch bessere Kontextverarbeitung und natürlichere Sprache verbessern, seine Leistungsfähigkeit bleibt jedoch eng an die Qualität der abgerufenen Informationen gebunden.

Wie Retriever und Generator zusammenspielen

Die Verbindung zwischen Retriever und Generator lässt sich mit einem Staffellauf vergleichen. Der Retriever übergibt den Staffelstab in Form der gefundenen Informationen, und der Generator nutzt diese, um die endgültige Ausgabe zu erstellen. Wenn diese Übergabe nicht funktioniert, kann die Leistung der Anwendung deutlich nachlassen:

  • Precision und Recall: Der Retriever muss Präzision, also hochrelevante Treffer, und Recall, also eine ausreichende Menge an Material für vollständige Antworten, in Einklang bringen.
  • Kontextuelle Ausrichtung: Der Generator ist darauf angewiesen, dass die gelieferten Informationen wirklich zur Absicht und Anfrage des Nutzers passen. Wenn diese Abstimmung fehlt, verfehlt auch die finale Antwort schnell das Ziel.
  • Feedback-Schleifen: Fortgeschrittene RAG-Systeme arbeiten mit Rückkopplungsmechanismen, um sowohl Retriever als auch Generator im Lauf der Zeit zu verbessern. Wenn Nutzer beispielsweise regelmäßig bestimmte Antworten als wenig hilfreich einstufen, kann das System seine Retrieval-Strategien oder Generatoreinstellungen anpassen.

Woran sich gute Daten für RAG-Anwendungen erkennen lassen

Was unterscheidet also hochwertige von minderwertigen Daten? Die folgenden Eigenschaften sind entscheidend:

Relevanz

Ihr Datensatz sollte exakt zu dem Einsatzbereich Ihrer Anwendung passen. Ein juristisches RAG-Tool sollte beispielsweise vorrangig mit Rechtsdokumenten arbeiten und nicht mit themenfremden Artikeln.

Maßnahme: Prüfen Sie Ihre Quellen darauf, ob sie wirklich zu Ihren Zielen und Ihrem Fachgebiet passen.

Genauigkeit

Die Daten sollten korrekt und überprüfbar sein. Fehlerhafte Informationen können direkt zu irreführenden Ausgaben führen.

Maßnahme: Vergleichen Sie Fakten mit vertrauenswürdigen Referenzen.

Vielfalt

Beziehen Sie unterschiedliche Perspektiven und Beispiele ein, damit das Modell keine zu engen oder einseitigen Antworten erzeugt.

Maßnahme: Sammeln Sie Inhalte aus mehreren verlässlichen Quellen.

Ausgewogenheit

Vermeiden Sie es, einzelne Themen übermäßig stark zu gewichten, da dies zu unfairen oder verzerrten Ausgaben führen kann.

Maßnahme: Nutzen Sie statistische Analysetools, um die Themenverteilung im Datensatz zu überprüfen.

Struktur

Sauber strukturierte Daten erleichtern sowohl das Retrieval als auch die Generierung.

Maßnahme: Verwenden Sie ein konsistentes Format wie JSON oder CSV für Ihren Datensatz.

Best Practices beim Sammeln von Daten für einen RAG-Datensatz

Wenn Sie einen leistungsfähigen Datensatz aufbauen möchten, helfen Ihnen die folgenden Vorgehensweisen:

Klare Ziele definieren

Bestimmen Sie zunächst den Zweck Ihrer RAG-Anwendung und die Zielgruppe, für die sie gedacht ist.

Beispiel: Bei einem medizinischen Chatbot sollten peer-reviewte Fachartikel und klinische Leitlinien im Mittelpunkt stehen.

Zuverlässige Quellen auswählen

Setzen Sie auf vertrauenswürdige, fachbezogene Quellen wie wissenschaftliche Veröffentlichungen oder sorgfältig kuratierte Datenbanken.

Beispiel-Tools: PubMed für Gesundheitsanwendungen, LexisNexis für juristische Einsatzbereiche.

Daten filtern und bereinigen

Nutzen Sie Vorverarbeitungstools, um Duplikate, Rauschen und unpassende Inhalte zu entfernen.

Beispiel für Textbereinigung: Verwenden Sie NLTK zur Textnormalisierung:

from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

text = "Sample text for cleaning."
tokens = word_tokenize(text)
filtered = [word for word in tokens if word not in stopwords.words('english')]

Beispiel für Datenbereinigung: Nutzen Sie Python mit pandas:

import pandas as pd

# Load dataset

df = pd.read_csv('data.csv')

# Remove duplicates

df = df.drop_duplicates()

# Filter out irrelevant rows based on criteria

df = df[df['relevance_score'] > 0.8]

df.to_csv('cleaned_data.csv', index=False)

Daten annotieren

Beschriften Sie Ihre Daten so, dass Kontext, Relevanz und Priorität leichter erkennbar werden.

Beispiel-Tools: Prodigy, Labelbox.

APIs für spezialisierte Daten nutzen

APIs sind besonders nützlich, wenn Sie strukturierte, domänenspezifische Datensätze benötigen.

Beispiel: Die OpenWeatherMap API für wetterbezogene Informationen.

Den Datensatz aktuell halten

Aktualisieren Sie Ihren Datensatz regelmäßig, damit er den aktuellen Wissensstand und neue Entwicklungen widerspiegelt.

Maßnahme: Planen Sie wiederkehrende Überprüfungen und Aktualisierungen Ihres Datensatzes ein.

Wie Sie die besten Datenquellen für Ihr Projekt bewerten und auswählen

Dieser Abschnitt bündelt die bisher besprochenen Inhalte und überträgt sie auf ein praktisches Beispiel. Stellen Sie sich vor, Sie erstellen einen Datensatz für einen Kubernetes-basierten Retrieval-Augmented Generation (RAG)-Chatbot und müssen festlegen, welche Datenquellen am besten geeignet sind. Ein naheliegender Einstiegspunkt ist die Kubernetes-Dokumentation. Dokumentationen sind oft eine wertvolle Grundlage für Datensätze, doch es kann schwierig sein, daraus nur die wirklich relevanten Inhalte zu extrahieren und überflüssiges Material auszuschließen. Denken Sie immer daran: Die Qualität Ihres Datensatzes bestimmt die Qualität Ihrer Ergebnisse – garbage in, garbage out.

Dokumentationswebsites als Datenquellen verstehen

Eine häufig genutzte Methode, um Inhalte aus Dokumentationswebsites zu gewinnen, ist Web Scraping. Bitte beachten Sie dabei, dass manche Websites dies in ihren Nutzungsbedingungen untersagen können, weshalb Sie diese vor dem Scraping immer prüfen sollten. Da die meisten Dokumentationsseiten als HTML ausgeliefert werden, können Tools wie BeautifulSoup dabei helfen, sichtbaren Text von anderen Elementen wie JavaScript, CSS oder Kommentaren für Entwickler und Designer zu trennen.

Im folgenden Beispiel sehen Sie, wie sich mit BeautifulSoup Textinhalte aus einer Webseite extrahieren lassen:

Schritt 1: Erforderliche Bibliotheken installieren

Installieren Sie zunächst die benötigten Python-Pakete:

pip install beautifulsoup4 requests

Schritt 2: Text mit BeautifulSoup aus einer Webseite extrahieren

Nutzen Sie das folgende Python-Beispiel, um die Webseite abzurufen und zu analysieren:

from bs4 import BeautifulSoup
import requests

# Define the URL of the target webpage

url = "[https://example.com](https://example.com)"

# Fetch the webpage content

response = requests.get(url)

# Parse the HTML content using BeautifulSoup

soup = BeautifulSoup(response.text, 'html.parser')

# Extract and clean data (e.g., all text in paragraph tags)

data = [item.text for item in soup.find_all('p')]

# Print the extracted data

for line in data:
print(line)

Sauberere Datenquellen finden

Obwohl Web Scraping funktionieren kann, ist im Anschluss häufig ein erheblicher Bereinigungsaufwand nötig, um irrelevante Elemente zu entfernen. Statt die gerenderten Dokumentationsseiten zu scrapen, kann es sinnvoller sein, direkt auf die Rohdateien der Inhalte zuzugreifen.

Im Fall der Kubernetes-Dokumentation befinden sich die ursprünglichen Markdown-Dateien im GitHub-Repository der Kubernetes-Website. Markdown-Dateien sind in der Regel sauberer strukturiert und benötigen daher weniger Vorverarbeitung.

Schritt 3: GitHub-Repository klonen

Um Zugriff auf die Markdown-Dateien zu erhalten, klonen Sie das GitHub-Repository auf Ihr lokales System:

git clone https://github.com/kubernetes/website.git

Schritt 4: Markdown-Dateien finden und verarbeiten

Nach dem Klonen des Repositories können Sie per Bash gezielt nur die Markdown-Dateien identifizieren und behalten. Zum Beispiel:

# cloing the repo
git clone git@github.com:kubernetes/website.git

# change directory to the repo

cd ./website

# deleting everything but the markdown files

find . -type f ! -name "*.md" -delete

# delete all the empty directories for completeness

find . -type d -empty -delete

Warum Quelldateien besser sind als Web Scraping

Die Nutzung der ursprünglichen Markdown-Dateien bringt mehrere deutliche Vorteile mit sich:

  • Sauberere Inhalte: Markdown-Dateien enthalten keine Styles, Skripte oder irrelevanten Metadaten, wodurch die Vorverarbeitung deutlich einfacher wird.
  • Versionskontrolle: GitHub-Repositories enthalten in der Regel Versionsverläufe, sodass sich Änderungen an Inhalten leichter nachvollziehen lassen.
  • Effizienz: Der direkte Zugriff auf Dateien macht das Scrapen, Parsen und Bereinigen gerenderter HTML-Seiten überflüssig.

Wenn Sie auf die Struktur und Herkunft Ihrer Daten achten, können Sie den Bereinigungsaufwand reduzieren und einen qualitativ besseren Datensatz aufbauen. Für Kubernetes-bezogene Projekte bedeutet der Start mit den Markdown-Dateien des Repositories, dass Sie mit geordneteren und häufig auch präziseren Inhalten arbeiten.

Abschließende Gedanken

Die Qualität Ihres Datensatzes ist die Grundlage jeder erfolgreichen RAG-Anwendung. Wenn Sie Relevanz, Genauigkeit, Vielfalt, Ausgewogenheit und Struktur priorisieren, erhöhen Sie die Wahrscheinlichkeit, dass Ihr Modell zuverlässig arbeitet und die Erwartungen der Nutzer erfüllt. Bevor Sie Daten in Ihren Datensatz aufnehmen, sollten Sie deshalb sowohl die geplanten Quellen als auch die notwendigen Bereinigungsschritte sorgfältig bedenken.

Eine hilfreiche Analogie ist Trinkwasser. Wenn Ihre Ausgangsquelle Wasser von schlechter Qualität ist, etwa Meerwasser, müssen Sie möglicherweise viel Zeit in die Aufbereitung investieren, bevor es sicher konsumiert werden kann. Wenn Sie dagegen zuerst nach natürlich saubereren Quellen wie Quellwasser suchen, sparen Sie sich einen großen Teil der aufwendigen Reinigungsarbeit. Dasselbe Prinzip gilt auch beim Aufbau von Datensätzen für RAG-Anwendungen.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

LangMem SDK für KI-Agenten: Langzeitgedächtnis Guide

AI/ML, Tutorial
Vijona8 Juni um 13:37 Uhr LangMem SDK für KI-Agenten: Langzeitgedächtnis, Architektur, Integration, Leistung und Alternativen KI-Agenten, die auf großen Sprachmodellen basieren, waren lange mit einer wesentlichen Einschränkung konfrontiert: Ihr Gedächtnis ist…