Ergebnisauswertung

Entdecken Sie weitere Angebote des RAG-Kochbuchs, um einen tieferen Einblick in die heutigen RAG-Lösungen zu gewinnen

Ein neu eingefärbter Leadspace, der auf dem Leadspace „Watson for Customer Care“ basiert.
Überblick

Es gibt viele Fragen, die man sich zu einer RAG-Lösung stellen kann:

  • Wie sollten wir die Designentscheidungen treffen, die die Abrufleistung maximieren?
  • Wie erkennen wir, welches Einbettungsmodell die beste Vektordarstellung unserer Dokumente erzeugt?
  • Ist ein agentischer Ansatz notwendig?
  • Würde ein Reranker unsere Ergebnisse verbessern, oder haben diese Parameterwahlen vielleicht nur einen marginalen Einfluss?

Eine klare Strategie während der gesamten Entwicklung einer RAG-basierten Lösung ist entscheidend für einen erfolgreichen Weg zur Produktion. Wir beobachten im Rahmen von Pilotprojekten die unterschiedlichsten empirischen Auswertungen, die mitunter nicht reproduzierbar sind. Um die Leistung einer in Entwicklung befindlichen RAG-basierten Lösung zu verbessern oder ein Produktionsproblem richtig zu diagnostizieren, müssen die Evaluierungsaufgaben reproduzierbar und schnell durchführbar sein. RAG-Pipelines sollten sowohl hinsichtlich ihrer Abruf- als auch ihrer Generierungskomponenten systematisch und konsistent evaluiert werden.

Das Verständnis der RAG-basierten Lösungsleistung spielt eine entscheidende Rolle in verschiedenen Schritten des Lösungslebenszyklus während der:

  • Experimentier- und Optimierungsphase
  • Überwachungsphase

Allerdings sollte der Aufwand für den Aufbau einer Bewertungs-Engine nicht unterschätzt werden, insbesondere wenn es darum geht, einen Goldstandard-Datensatz (Referenzdatensatz) mit Referenzantworten und Referenzkontexten zu erstellen.

In diesem Dokument werden wir verschiedene Bewertungsansätze und -metriken diskutieren und einige der wiederverwendbaren Assets hervorheben, die die Bewertung dieser Lösungen erleichtern.

Ansätze

KI bewertet KI

LLMaaJ (LLM as a Judge) hat sich im letzten Jahr als eine führende Metrik herauskristallisiert, um die Herausforderung des Aufbaus einer referenzbasierten Bewertungs-Engine zu meistern. Es hat sich gezeigt, dass diese Auswertungstechnik eine gute Korrelation mit der menschlichen Beurteilung aufweist. Hier sind mehrere Eigenschaften, die nicht durch bestehende Metriken und Benchmarks quantifiziert werden können, aber mit LLMaaJ ausgewertet werden können:

  • Sicherheit – Generieren Modelle schädliche oder unsichere Inhalte?
  • Fundiertheit – Basiert im Falle von Zusammenfassungen und Retrieval-Augmented Generation die generierte Ausgabe auf Fakten, die im Eingabekontext vorhanden sind?
  • Stimmungslage – Sind die generierten Antworten im Allgemeinen positiv, negativ oder einer anderen vorgegebenen Stimmungslage zuzuordnen?
  • Toxizität – Generieren die Models anstößige, aggressive oder diskriminierende Inhalte?
  • Sprachstil – Sprechen die Models in einem lockeren, formellen oder alltäglichen Tonfall? Dazu gehört auch die Bewertung von Sarkasmus, Humor und Ironie.

Wenn beispielsweise ein Bewertungsmodell zur Bewertung der Ausgabe anderer Modelle verwendet wird, sollte der Bewertungsprompt eine Beschreibung der zu bewertenden Attribute und der Bewertungsskala enthalten und interpoliert werden, um die zu bewertende Antwort einzubeziehen.

In diesem Beispiel wird das Modell gebeten, den Sprachstil der Antwort zu bewerten und eine Klassifikation zurückzugeben.

Du bist ein fairer und unvoreingenommener Wertungsrichter. Du wirst gebeten, die Antwort eines Chatbots nach seiner Stimmung zu klassifizieren. Werte die folgende Antwort aus und extrahiere die entsprechende Klasse. Die möglichen Klassen sind POSITIV, NEUTRAL, NEGATIV. Erläutere deine Argumentation und fasse abschließend die klassifizierte Stimmungslage zusammen.
{{response}}

 

Als weitere Option finden Sie im Folgenden ein Few-Shot-Prompting-Beispiel für eine LLM-gesteuerte Bewertung für NER-Aufgaben (Named Entity Recognition).

-------------------------------------------------Prompt-------------- xxx-------------------------- Du bist ein professioneller Gutachter und deine Aufgabe ist es, die Genauigkeit der Entitätsextraktion als Score in einem bestimmten Text zu bewerten. Du erhältst einen Text, eine Entität und den Wert der Entität.
Bitte gib ein numerisches Ergebnis auf einer Skala von 0 bis 1 an, wobei 1 das beste Ergebnis und 0 das schlechteste Ergebnis ist. Verwende ausschließlich numerische Werte für die Bewertung.

Hier sind die Beispiele:

Text: Wo befindet sich das IBM-Büro in New York?
Entität: Unternehmen
Wert: IBMs
Score: 0

Text: Rufen Sie den Kundenservice unter 1-800-555-1234 an, um Hilfe zu erhalten.
Entität: Telefonnummer
Wert: +1 888 426 4409
Score: 1

 Text: watsonx besteht aus drei Komponenten: watsonx.ai, watsonx.data und watsonx.governance.
Entität: Produktname
Wert: Google
Score: 0,33

Text: Die Konferenz ist für den 15. August 2024 geplant.
Entität: Datum
Wert: 15. August 2024
Score: 1

Text: Meine Kollegen John und Alice werden an der Besprechung teilnehmen.
Entität: Name einer Person
Wert: Alice
Score: 1

-----------------------------------Ausgabe---------------------------------------------Score: 0,67
----------------------------------------------------------------------
Metriken

Die Komplexität von RAG-Systemen wird maßgeblich von der rätselhaften Natur der Large Language Models (LLMs) sowie von den komplexen und miteinander verbundenen Komponenten innerhalb der RAG-Pipeline beeinflusst. Angesichts der Weiterentwicklung der Technologie in bahnbrechendem Tempo wird die Bewertung eines so komplexen Systems zu einer zunehmend mühsamen Aufgabe. Um dieser Herausforderung zu begegnen, wurden zahlreiche Benchmarks und Bewertungstools speziell für RAG-Systeme entwickelt. Diese Ressourcen dienen dazu, einen standardisierten und systematischen Ansatz zur Bewertung der Leistung und Wirksamkeit dieser Systeme bereitzustellen.

Wie beispielsweise in der folgenden Tabelle (adaptiert aus „Evaluation of Retrieval-Augmented Generation: A Survey“) dargestellt, gibt eine Vielzahl von RAG-Evaluierungsmethoden und -tools, von denen jede(s) eigene Stärken und Anwendungsgebiete hat. Diese Tabelle erhebt keinen Anspruch auf Vollständigkeit und dient dazu, einen kurzen Überblick über die aktuelle Geschäftswelt der RAG-Bewertung zu geben.

Eine Teiltabelle mit Bewertungsmaßen und -schemata für RAG-Lösungen.

Im Zusammenhang mit der Abrufkomponente von RAG-Systemen ergeben sich mehrere Herausforderungen:

Im Hinblick auf die Abrufkomponente entstehen Herausforderungen hauptsächlich aufgrund der umfangreichen und dynamischen Natur prospektiver Wissens-Repositories, der zeitlichen Aspekte von Daten und der Heterogenität der Informationsquellen. Angesichts dieser Herausforderungen wird deutlich, dass herkömmliche Bewertungskennzahlen wie Recall und Precision unzureichend und schlecht für eine umfassende Bewertung geeignet sind. Stattdessen werden differenziertere und kontextabhängige Metriken benötigt, die die Komplexität und Feinheiten des Abrufprozesses effektiv erfassen können.

In Bezug auf die Generierungskomponente ist es wichtig, die komplizierte Beziehung zwischen der Präzision des Abrufprozesses und der Qualität der generierten Ausgabe zu berücksichtigen. Dies erfordert die Entwicklung und Implementierung umfassender Metriken, die eine ganzheitliche und nuancierte Bewertung der Leistung ermöglichen können.

Die Bewertung des RAG-Systems als Ganzes erfordert wiederum eine gründliche Untersuchung der Auswirkungen der Abrufkomponente auf den Generierungsprozess sowie eine Beurteilung der Gesamteffektivität und -effizienz des Systems bei der Erreichung seiner beabsichtigten Ziele.

RAG Triad ist ein Evaluation Framework zur Bewertung der Zuverlässigkeit und kontextuellen Genauigkeit der Antworten des Large Language Model (LLM). Es besteht aus drei Bewertungen: Kontextrelevanz, Fundiertheit und Antwortrelevanz. Diese Bewertungen zielen darauf ab, LLM-Antworthalluzinationen zu identifizieren, indem die Kontextrelevanz, die Zuverlässigkeit der Antworten auf den Kontext und die Übereinstimmung der Antworten mit Benutzeranfragen überprüft werden.

Illustration des RAG Triad-Frameworks zur Bewertung der Leistung von RAG-Lösungen.

Die RAG-Bewertung kann sowohl mit automatischen referenzbasierten als auch referenzlosen Metriken durchgeführt werden. Es gibt eine Bestenliste auf HuggingFace, die zeigt, wie gut die Open-Source-LLMs im Vergleich zueinander abschneiden.

Abrufmetriken

Die folgenden Abrufmetriken basieren auf Referenzen, was bedeutet, dass jeder Chunk eindeutig identifiziert werden muss (contexts_id) und jede Frage eindeutige IDs der Ground-Truth-Kontexte besitzt.

Die für Empfehlungssysteme verwendeten rangabhängigen Bewertungsmetriken sind für RAG geeignet.

MRR (Mean Reciprocal Rank)

MRR wird in Unitxt verwendet und misst die Position des ersten relevanten Dokuments in den Suchergebnissen. Ein hoher MRR-Wert nahe 1 deutet darauf hin, dass relevante Ergebnisse weiter oben angezeigt werden, was auf eine hohe Suchqualität hinweist. Umgekehrt bedeutet ein niedrigerer MRR eine geringere Suchleistung, wobei relevante Antworten weiter unten in den Ergebnissen positioniert werden.

Vorteile: Betont die Bedeutung des ersten relevanten Ergebnisses, das in Suchszenarien oft entscheidend ist.
Nachteile: Eine Einschränkung besteht darin, dass die Abfrage nicht dafür bestraft wird, anderen Grundwahrheiten einen niedrigen Rang zuzuweisen, zudem ist es nicht für die Auswertung der gesamten Liste der abgerufenen Ergebnisse geeignet, da man sich nur auf das erste relevante Element konzentriert.

NDCG (Normalized Discounted Cumulative Gain)

Ranking von Qualitätsmetriken, die bewerten, wie gut eine Liste von Elementen im Vergleich zu einem idealen Ranking geordnet ist, bei dem alle relevanten Elemente an der Spitze stehen.

NDCG@k wird berechnet, indem DCG@k durch den idealen DCG@k (IDCG@k) geteilt wird, der die Punktzahl einer perfekt geordneten Liste von Elementen bis zur Position k darstellt. DCG misst die Gesamtrelevanz der Elemente in einer Liste.

liegt zwischen 0 und 1

Vorteile: Berücksichtigt die Position relevanter Elemente und bietet so einen umfassenderen Überblick über die Ranking-Qualität; kann an verschiedene Ranking-Ebenen angepasst werden (z. B. NDCG@k).
Nachteile: Komplexer zu berechnen und zu interpretieren als einfachere Metriken wie MRR; erfordert eine ideale Rangfolge für den Vergleich, die möglicherweise nicht immer verfügbar oder leicht zu definieren ist.

MAP (Mean Average Precision)

Mean Average Precision (MAP) ist eine Metrik, die die Rangfolge jedes korrekt abgerufenen Dokuments innerhalb einer Ergebnisliste bewertet

Sie ist vorteilhaft, wenn Ihr System die Reihenfolge der Ergebnisse berücksichtigen und mehrere Dokumente in einem einzigen Durchlauf abrufen muss.

Vorteile: Berücksichtigt sowohl Präzision als auch Rückruf und bietet eine ausgewogene Bewertung der Leistung; ist geeignet für Aufgaben, die mehrere relevante Dokumente und deren korrekte Reihenfolge erfordern.
Nachteile: Kann im Vergleich zu einfacheren Metriken rechenintensiver sein; ist möglicherweise nicht so einfach zu interpretieren wie andere Metriken und erfordert mehr Kontext, um die Ergebnisse vollständig zu verstehen.

Generierungsmetriken

Treue

Misst, ob die Ausgabe auf dem gegebenen Kontext basiert oder ob das Modell halluzinierte Antworten erzeugt.

Vorteile: Gewährleistet, dass die generierten Antworten vertrauenswürdig sind und auf dem bereitgestellten Kontext basieren; unverzichtbar für Anwendungen, bei denen faktische Korrektheit von größter Bedeutung ist.
Nachteile: Die Beurteilung erfordert oft menschliches Urteilsvermögen, was sie arbeitsintensiv und subjektiv macht; partielle Ungenauigkeiten oder subtile Halluzinationen werden möglicherweise nicht vollständig erfasst.

Robustheit (Unempfindlichkeit)

Robustheit wird allgemein als die Funktionen der Lösung definiert, sich an unterschiedliche Eingabevariationen anzupassen, wie z. B. Datenstörungen wie Leerzeichen, Groß-/Kleinschreibung, Tabulatoren usw.

Die Überprüfung der Robustheit ist ein wichtiger Aspekt des Evaluierungsprozesses und kann beispielsweise mithilfe von Unitxt-Semantik erreicht werden

Vorteile: Stellt sicher, dass das Modell zuverlässig unter verschiedenen Eingabebedingungen funktioniert; Anwendbarkeit in der realen Welt: Wichtig für praktische Anwendungen, bei denen die Eingabedaten möglicherweise nicht perfekt formatiert sind.
Nachteile: Erfordert gründliche Tests über viele Varianten hinweg, was zeitaufwändig sein kann; Definition von Varianten: Es ist schwierig, alle möglichen Eingaben zu definieren und zu messen.

ROUGE (Recall-Oriented Understudy for Gisting Evaluation)

Misst die Qualität der Textgenerierung durch den Vergleich der Überlappung von n-Grammen, Wortfolgen und Wortpaaren zwischen dem maschinell erzeugten Text und einer Reihe von Referenztexten. Wird häufig zur Bewertung von Aufgaben wie Textzusammenfassung und Übersetzung eingesetzt.

Vorteile: Etabliert und anerkannt in der NLP-Community, bietet einen Vergleichsstandard; geeignet für Aufgaben, bei denen die Erfassung aller relevanten Informationen wichtig ist.
Konzentriert sich auf die Überlappung von n-Grammen, die möglicherweise nicht die semantische Qualität oder den Sprachfluss erfassen; kann durch die Länge des generierten Textes beeinflusst werden, wodurch kürzere oder prägnantere Ausgaben benachteiligt werden können.

BLEU (Bilingual Evaluation Understudy)

Misst die Qualität maschinell übersetzter Texte durch den Vergleich mit einer oder mehreren Referenzübersetzungen. Bewertet die Genauigkeit der n-Gramme im generierten Text im Vergleich zu den Referenztexten. Wird hauptsächlich zur Bewertung von Übersetzungen verwendet.

Vorteile: Effektiv für Aufgaben, bei denen Präzision und exakte Übereinstimmungen wichtig sind; Standard-Metrik: In der Machine-Translation-Community weit verbreitet, bietet einen Benchmark für den Vergleich.
Nachteile: Legitime Abweichungen in der Formulierung, die nicht exakt mit den Referenztexten übereinstimmen, können bestraft werden; Blindheit gegenüber partiellen Ungenauigkeiten: Teilweise Ungenauigkeiten oder subtile Bedeutungsunterschiede werden möglicherweise nicht vollständig erfasst.

Kostenmetriken

GPU-/CPU-Auslastung

Die CPU-Auslastung wird hauptsächlich für die Abrufphase verwendet, und die GPU-Auslastung wird hauptsächlich für die Generierungsphase eingesetzt.

Kosten für LLM-Anrufe

Beispiel: Kosten von OpenAI-API-Aufrufen

Infrastrukturkosten

Kosten für Speicher, Netzwerk, Computerressourcen usw.

Betriebskosten

Kosten für Wartung, Support, Überwachung, Protokollierung, Sicherheitsmaßnahmen usw.

Verständnis von Evaluationsergebnissen

 

Vier-Quadranten-Diagramm mit Sanierungsmaßnahmen für das Tuning von RAG-Modellen auf Basis von Generierungs- und Abrufwerten.

Wenn die Metriken auf eine suboptimale Leistung hinweisen, die Metriken jedoch günstige Ergebnisse liefern, empfiehlt sich Folgendes: 

  1. Überprüfen Sie die Chunking-Strategie (z. B. Größe und Überlappung der Chunks) und passen Sie sie an, um ein besseres Gleichgewicht zwischen Kontext und Relevanz herzustellen.
  2. Bereinigen und vorverarbeiten Sie die Daten, um Rauschen und irrelevante Informationen zu entfernen.
  3. Fügen Sie Metadaten, wie z. B. Datumsangaben, zu den Chunks hinzu, um die Daten nach bestimmten Anwendungsfällen zu filtern und zu priorisieren.
  4. Implementieren Sie Reranking: Dadurch kann Ihr Abrufsystem die Top-Knoten für den Kontext verfeinern. Sowohl * LangChain als auch LlamaIndex bieten einfach zu bedienende Abstraktionen für das Reranking.
  5. Lassen Sie das LLM die Abfrage umformulieren und versuchen Sie es erneut, da Fragen, die sich aus menschlicher Sicht ähneln, möglicherweise in Einbettungsräumen nicht ähnlich erscheinen.
  6. Führen Sie eine Feinabstimmung der Einbettungen mit LlamaIndex durch, um die Genauigkeit zu verbessern.

Wenn die Situation umgekehrt ist, also die Abrufmetriken eine starke Leistung zeigen, aber die Ergebnisse der Generierung suboptimal sind, sollten folgende Strategien zur Verbesserung der Modellleistung in Betracht gezogen werden:

  1. Optimierung des Sprachmodells: Passen Sie das Modell an Ihren Bereich an, indem Sie es anhand relevanter Datensätze feinabstimmen, um seine Genauigkeit und sein Kontextverständnis zu verbessern.
  2. Verbesserung des Prompt Engineering: Experimentieren Sie mit der Struktur und Formulierung der Prompts, um das Modell zu präziseren Ausgaben zu führen.
  3. Nutzung verschiedener Dekodierungsstrategien: Passen Sie Dekodierungstechniken wie Balkensuche, Top-K-Sampling oder Nukleus-Sampling (Top-P) an, um die Qualität der generierten Antworten zu verbessern.
  4. Kontrolle der Generierungslänge: Legen Sie Beschränkungen für die Antwortlänge fest, um sicherzustellen, dass die Ausgaben präzise und genau sind.
  5. Integration von Feedbackschleifen: Implementieren Sie ein System, das suboptimale Reaktionen erkennt und korrigiert und so eine kontinuierliche Verbesserung ermöglicht.
  6. Nutzung eines mehrere Schritte umfassenden Dialogs: Zerlegen Sie komplexe Aufgaben in mehrstufige Interaktionen, damit das Modell seine Antworten über mehrere Iterationen verfeinern kann.

In dem Szenario, in dem sowohl die Abruf- als auch die Generierungsmetriken eine unzureichende Leistung aufweisen, wäre es ratsam, die ersten Phasen der Pipeline zu überprüfen und neu zu überdenken, z. B. die Verbesserung der Metadaten, die Verfeinerung der Wissensbasis und die Optimierung des Abrufmechanismus.

Dieser Ansatz betont die Bedeutung einer umfassenden und nuancierten Bewertung des RAG-Systems, die das Zusammenspiel von Abruf- und Generierungskomponenten sowie die allgemeine Effektivität des Systems bei der Erreichung seiner angestrebten Ziele und Vorgaben berücksichtigt.

Mehr erfahren

Erhalten Sie die neuesten Technologiemuster, Lösungsarchitekturen und Architekturveröffentlichungen von IBM.

  1. Besuchen Sie das IBM Architecture Center
Beitragende

Vicky Kuo, Amna Jamal, Luke Major, Chris Kirby

Aktualisiert: 15. November 2024