Diese Phase erreichen Sie, wenn Sie bereits den Suchindex generiert und bestimmt haben, welche Suchvorgänge Sie ausführen möchten. In dieser Phase wird der Auswertungsprozess Ihrer RAG-Lösung (Retrieval-Augmented Generation) aus der Perspektive der Auswertung erwarteter Benutzeraufforderungen behandelt, die die abgerufenen Grounding-Daten für das große Sprachmodell enthalten. Bevor Sie diese Phase erreichen, sollten Sie die Vorbereitungsphase abgeschlossen haben, in der Sie Ihre Testdokumente und -abfragen gesammelt, Ihre Testdokumente segmentiert, die Blöcke angereichert und eingebettet, einen Suchindex erstellt und eine Suchstrategie implementiert haben. Sie sollten jede dieser Phasen bewertet haben und mit den Ergebnissen zufrieden sein. Zu diesem Zeitpunkt sollten Sie sicher sein, dass Ihre Lösung für eine Benutzerabfrage relevante Grounding-Daten liefert.
Diese Grounding-Daten bilden den Kontext für den Prompt, den Sie an das große Sprachmodell senden, um die Abfrage des Benutzers zu adressieren. Prompt Engineering-Strategien werden in diesem Artikel nicht behandelt. Dieser Artikel befasst sich mit der Evaluierung des entwickelten Aufrufs zum großen Sprachmodell aus der Perspektive der Grounding-Daten. In diesem Artikel werden einige gängige Auswertungsmetriken für große Sprachmodelle sowie einige spezifische Ähnlichkeits- und Auswertungsmetriken behandelt, die in den Berechnungen zur Auswertung von große Sprachmodelle oder als eigenständige Metriken verwendet werden können.
Dieser Artikel bietet keine vollständige Liste mit Large Language-Model-Metriken oder Ähnlichkeits- und Auswertungsmetriken. Die Anzahl dieser Metriken wächst täglich. Die wichtigste Erkenntnis aus diesem Artikel ist, dass es verschiedene Metriken gibt, die jeweils ihren eigenen eindeutigen Anwendungsfall haben. Sie allein haben ein ganzheitliches Verständnis Ihres Workloads. Sie und Ihre Data Scientists müssen die zu messenden Parameter bestimmen und wissen, welche Metriken Ihnen dabei helfen, diese Aufgabe zu erledigen.
Dieser Artikel ist Teil einer Serie. Die Einführung finden Sie hier.
Auswertungsmetriken für große Sprachmodelle
Es gibt mehrere Metriken, mit denen Sie die Antwort des großen Sprachmodells auswerten können, einschließlich Geerdetheit, Vollständigkeit, Verwertung und Relevanz.
Wichtig
Antworten auf große Sprachmodelle sind nicht deterministisch, d. h. der gleiche Prompt an ein großes Sprachmodell kann und gibt häufig unterschiedliche Ergebnisse zurück. Dies ist wichtig zu verstehen, wenn Sie ein großes Sprachmodell als Teil Ihres Auswertungsprozesses verwenden. Erwägen Sie die Verwendung eines Zielbereichs statt eines einzelnen Ziels bei der Auswertung mithilfe eines großen Sprachmodells.
Quellenübereinstimmung
Geerdetheit, manchmal auch als Wahrhaftigkeit bezeichnet, misst, ob die Antwort vollständig auf dem Kontext basiert. Es wird überprüft, dass die Antwort keine informationen verwendet, die nicht im Kontext vorhanden sind. Eine Metrik mit einem niedrigen Grad der Geerdetheit weist darauf hin, dass das große Sprachmodell imaginativ oder unsinnig denkt, was als Halluzinationen bezeichnet wird.
Berechnen
- Geerdetheit auf Basis von Azure KI Inhaltssicherheit (AACS) ist ein benutzerdefiniertes Modell, das Natural Language Inference (NLI) verwendet, um zu bestimmen, ob Ansprüche, in diesem Fall Blöcke, mit einem Quelldokument verbunden oder nicht verbunden sind.
- Bei der Geerdetheit auf LLM-Basis wird ein großes Sprachmodell verwendet, um die Geerdetheit der Antwort zu bestimmen.
- Ragas Wahrhaftigkeitsbibliothek
- MLflow-Wahrhaftigkeitsberechnung
Auswerten
Wenn die Geerdetheit gering ist, bedeutet das, dass das große Sprachmodell die Blöcke nicht als relevant einstuft. Sie sollten überlegen, ob Sie Ihrem Korpus Daten hinzufügen, Ihre Chunking-Strategie oder Blockgröße anpassen oder Ihren Prompt optimieren müssen.
Vollständigkeit
Die Vollständigkeit misst, ob die Antwort alle Teile der Abfrage beantwortet. Dadurch verstehen Sie besser, ob die Blöcke im Kontext relevant und direkt mit der Abfrage verknüpft sind und eine vollständige Antwort bereitstellen.
Berechnen
- KI-gesteuert: Prompt zum Abrufen des Scores
- Ein großes Sprachmodell kann Ihnen dabei helfen, die Qualität seiner Antwort zu messen. Für diese Evaluierung benötigen Sie die Frage, den Kontext und die generierte Antwort. Im Folgenden wird dieser allgemeine Prozess dargestellt:
- Verwenden Sie das große Sprachmodell, um die Frage neu zu formulieren, zusammenzufassen oder zu vereinfachen. In diesem Schritt wird die Absicht identifiziert.
- Bitten Sie das Modell, zu überprüfen, ob die Absicht oder die Antwort auf die Absicht gefunden wurde, oder aus abgerufenen Dokumenten abgeleitet werden kann, bei denen die Antwort für jedes Dokument „Neinׅ“ oder „Ja“ lauten kann. Antworten, die mit „Ja“ beginnen, geben an, dass die abgerufenen Dokumente für die Absicht oder Antwort auf die Absicht relevant sind.
- Berechnen Sie das Verhältnis der Absichten, die eine Antwort beginnend mit „Ja“ aufweisen.
- Quadrieren Sie das Ergebnis, um die Fehler hervorzuheben.
Auswerten
Wenn die Vollständigkeit niedrig ist, beginnen Sie mit der Auswertung Ihres Einbettungsmodells. Vergleichen Sie das Vokabular in Ihrem Inhalt mit dem Vokabular in Ihrem ausgewählten Einbettungsmodell. Ermitteln Sie, ob Sie ein domänenspezifisches Einbettungsmodell benötigen, oder ob Sie ein vorhandenes Modell optimieren müssen. Bewerten Sie im nächsten Schritt Ihre Chunking-Strategie. Wenn Sie eine feste Länge verwenden, sollten Sie die Blockgröße erhöhen. Sie können auch auswerten, ob Ihre Testdaten über genügend Daten verfügen, um die Frage vollständig zu beantworten.
Nutzung
Die Verwertung misst den Umfang, in dem die Antwort aus Informationen aus den Blöcken im Kontext besteht. Ziel ist es, den Umfang zu bestimmen, in dem jeder Block Teil der Antwort ist. Wenn die Verwertung niedrig ist, weist dies darauf hin, dass Ihre Ergebnisse für die Abfrage möglicherweise nicht relevant sind. Neben der Vollständigkeit sollte auch die Verwertung bewertet werden.
Berechnen
Sie können ein großes Sprachmodell verwenden, um die Verwertung zu berechnen. Sie können die Antwort und den Kontext, der die Blöcke enthält, an das große Sprachmodell übergeben. Sie können das große Sprachmodell bitten, die Anzahl der Blöcke zu bestimmen, die die Antwort mit sich bringen.
Auswerten
Die folgende Tabelle bietet eine Orientierungshilfe, die sowohl die Vollständigkeit als auch die Verwertung berücksichtigt.
Hohe Verwertung | Niedrige Verwertung | |
---|---|---|
Hohe Vollständigkeit | Keine Aktion erforderlich | In diesem Fall können die zurückgegebenen Daten die Frage adressieren, aber irrelevante Blöcke wurden zurückgegeben. Erwägen Sie, den Top-k-Parameterwert zu reduzieren, um wahrscheinlichere/deterministische Ergebnisse zu erzielen. |
Geringe Vollständigkeit | In diesem Fall werden die von Ihnen zur Verfügung gestellten Blöcke zwar verwendet, gehen aber nicht vollständig auf die Frage ein. Beachten Sie Folgendes:
|
In diesem Fall beantworten Sie die Frage nicht vollständig, und die Blöcke, die Sie bereitstellen, werden nicht gut verwertet. Berücksichtigen Sie Folgendes, um diese Probleme zu behandeln:
|
Relevance
Misst den Umfang, in dem die Antwort des großen Sprachmodells relevant und mit der Abfrage verknüpft ist.
Berechnen
- KI-gesteuert: Relevanz in Azure KI Studio – Sie können Azure KI Studio zum Durchführen von Berechnungen verwenden, oder die mithilfe der Anleitungen in diesem Artikel die Relevanz für sich selbst berechnen.
- Ragas Antwortrelevanzbibliothek
- MLflow-Relevanzberechnung
Auswerten
Wenn die Relevanz niedrig ist, bewerten Sie Folgendes:
- Stellen Sie sicher, dass die für das große Sprachmodell bereitgestellten Abschnitte relevant sind.
- Ermitteln Sie, ob es geeignete relevante Blöcke gibt, die nicht zurückgegeben wurden. Wenn vorhanden, bewerten Sie das Einbettungsmodell.
- Wenn keine geeigneten Blöcke vorhanden sind, überprüfen Sie, ob relevante Daten vorhanden sind. Wenn dies der Fall ist, bewerten Sie Ihre Chunking-Strategie.
- Wenn relevante Blöcke zurückgegeben wurden, bewerten Sie den Prompt.
Andere Auswertungsmethoden wie Vollständigkeit sollten berechnet werden und ähnliche Evaluierungen wie die im Relevanzmaß beobachteten erzielen.
Ähnlichkeits- und Evaluierungsmetriken
Wie in der Einführung erwähnt, werden in Data Science Hunderte von Ähnlichkeits- und Evaluierungsmetriken verwendet. Einige Algorithmen sind spezifisch für eine Domäne, z. B. Sprache zu Text oder Sprache zu Sprachübersetzung. Jeder Algorithmus verfügt über eine eindeutige Strategie für die Berechnung seiner Metrik.
Der Data Scientist ermittelt, was Sie messen möchten, und welche Metrik oder Kombination von Metriken Sie verwenden können, um dies zu messen. Beispielsweise überprüft die Bleu-Metrik im Bereich der Sprachübersetzung, wie viele n-Grammen sowohl in der maschinellen Übersetzung als auch bei der menschlichen Übersetzung angezeigt werden, um Ähnlichkeiten auf der Grundlage derselben Wörter zu messen. Die Kosinus-Ähnlichkeit verwendet Einbettungen zwischen der Maschine und menschlichen Übersetzungen, um die semantische Ähnlichkeit zu messen. Besteht Ihr Ziel darin, eine hohe semantische Ähnlichkeit zu haben und ähnliche Wörter wie die menschliche Übersetzung zu verwenden, dann ist Ihr Ziel eine hohe Bleu-Punktzahl mit hoher Kosinus-Ähnlichkeit. Wenn Sie sich nur um semantische Ähnlichkeit kümmern, konzentrieren Sie sich auf Kosinus-Ähnlichkeit.
Die folgende Liste enthält eine kleine Stichprobe allgemeiner Ähnlichkeits- und Evaluierungsmetriken. Beachten Sie, dass die aufgelisteten Ähnlichkeitsmetriken als token-, sequenz- oder bearbeitungsbasiert beschrieben werden und veranschaulichen, wie sie sehr unterschiedliche Ansätze zur Berechnung der Ähnlichkeit verwenden. Außerdem enthält die Liste drei Algorithmen zum Auswerten der Qualität der Textübersetzung von einer Sprache in eine andere.
- Längste gemeinsame Teilzeichenfolge – Sequenzbasierter Algorithmus, der die längste gemeinsame Teilzeichenfolge zwischen zwei Zeichenfolgen findet. Der längste gemeinsame Teilzeichenfolgen-Prozentsatz akzeptiert die längste gemeinsame Teilzeichenfolge und dividiert sie entweder durch die Anzahl der Zeichen der kleineren oder größeren Eingabezeichenfolge.
- Längste gemeinsame Untersequenz (LCS) – Sequenzbasierter Algorithmus, der die längste Untersequenz zwischen zwei Zeichenfolgen findet. LCS erfordert nicht, dass die Untersequenzen in aufeinander folgender Reihenfolge angeordnet sind.
- Kosinus-Ähnlichkeit - Tokenbasierter Algorithmus, der den Kosinus des Winkels zwischen den beiden Vektoren berechnet.
- Jaro Winkler - Bearbeitungsbasierter Algorithmus, der die Mindestanzahl der Schritte zählt, um eine Zeichenfolge in eine andere zu transformieren.
- Hamming – Bearbeitungsbasierter Algorithmus, der die minimale Anzahl von Ersetzungen misst, die erforderlich sind, um eine Zeichenfolge in eine andere umzuwandeln.
- Jaccard – Tokenbasierter Algorithmus, der Ähnlichkeit berechnet, indem die Schnittmenge von zwei Zeichenfolgen durch die Vereinigung dieser Zeichenfolgen geteilt wird.
- Levenshtein – Bearbeitungsbasierter Algorithmus, der die Ähnlichkeit berechnet, indem er die minimale Anzahl von einzelnen Zeichenbearbeitungen bestimmt, die erforderlich sind, um eine Zeichenfolge in eine andere umzuwandeln.
- BLEU – Wertet die Qualität von Text aus, der das Ergebnis einer maschinellen Übersetzung von einer Sprache in eine andere ist. Bleu berechnet die Überlappung von n-Grammen zwischen einer maschinellen Übersetzung und einer menschlichen Übersetzung, um diese Evaluierung vorzunehmen.
- ROUGE – Vergleicht eine maschinelle Übersetzung einer Sprache mit einer menschlichen Übersetzung. Es gibt mehrere ROUGE-Varianten, die die Überlappung von n-Grammen, skip-Bigrammen oder längste häufige Untersequenzen verwenden.
- METEOR – Wertet die Qualität von Text aus, der das Ergebnis der maschinellen Übersetzung ist, indem genaue Übereinstimmungen, Übereinstimmungen nach Wortstamm, Synonymen, Paraphrasierung und Ausrichtung betrachtet werden.
Informationen zu allgemeinen Ähnlichkeits- und Evaluierungsmetriken finden Sie in den folgenden Ressourcen:
Dokumentation, Berichterstellung und Aggregation
Sie sollten sowohl die für ein Experiment ausgewählten Hyperparameter als auch die resultierenden Auswertungsmetriken dokumentieren, damit Sie die Auswirkungen der Hyperparameter auf Ihre Ergebnisse verstehen können. Sie sollten Hyperparameter und Ergebnisse auf granularen Ebenen wie Einbettung oder Suchauswertung und auf Makroebene dokumentieren, z. B. das Testen des gesamten Systems.
Während des Entwurfs und der Entwicklung können Sie die Hyperparameter und Ergebnisse möglicherweise manuell nachverfolgen. Die Durchführung mehrerer Evaluierungen gegen Ihr gesamtes Testdokument und Ihren Testabfragekorpus kann jedoch Hunderte von Evaluierungsläufen und Tausende von Ergebnissen umfassen. Sie sollten die Persistenz von Parametern und Ergebnissen für Ihre Evaluierungen automatisieren.
Sobald Ihre Hyperparameter und Ergebnisse gespeichert sind, sollten Sie die Erstellung von Diagrammen und Grafiken in Erwägung ziehen, um die Auswirkungen der gewählten Hyperparameter auf die Metriken besser visualisieren zu können. Mithilfe der Visualisierung können Sie ermitteln, welche Auswahl zu Einbrüchen oder Spitzen in der Leistung führt.
Sie müssen unbedingt verstehen, dass das Entwerfen und Auswerten Ihrer RAG-Lösung kein einmaliger Vorgang ist. Ihr Korpus von Dokumenten ändert sich im Laufe der Zeit. Die Fragen, die Ihre Kunden stellen, werden sich im Laufe der Zeit ändern, und Ihr Verständnis für die Arten von Fragen wird sich weiterentwickeln, wenn Sie aus der Produktion lernen. Sie sollten diesen Prozess immer wieder erneut aufrufen. Die konsistente Dokumentation früherer Evaluierungen ist für zukünftige Entwurfs- und Evaluierungsbemühungen von entscheidender Bedeutung.
RAG Experiment Accelerator
Diese Artikel führen Sie durch alle Phasen und Designentscheidungen, die beim Entwerfen und Evaluieren einer RAG-Lösung beteiligt sind. Die Artikel konzentrieren sich auf das, was Sie tun sollten, und nicht, wie Sie es tun sollten. Ein Entwicklungsteam, das mit den Top-Kunden von Microsoft arbeitet, hat ein Tool namens RAG Experiment Accelerator entwickelt. Der RAG Experiment Accelerator ist ein hochmodernes Experimentierframework, das entwickelt wurde, um die Entwicklung von Rag-Lösungen (Retrieval Augmented Generation) zu optimieren und zu verbessern. RAG Experiment Accelerator ermöglicht es Forschern und Entwicklern, die kritischen Komponenten, die die RAG-Leistung fördern, effizient zu untersuchen und zu optimieren, was letztendlich zu einer präziseren und kohärenteren Textgenerierung führt.
Mit seiner CLI-basierten Schnittstelle können Sie mühelos mit verschiedenen Einbettungsmodellen experimentieren, Chunking-Strategien verfeinern und verschiedene Suchansätze auswerten, um das volle Potenzial Ihres RAG-Systems zu erschließen. Sie können sich auf die Kernaspekte der RAG-Entwicklung konzentrieren und gleichzeitig die Komplexitäten der Hyperparameteroptimierung mithilfe einfacher Konfiguration abstrahieren.
Darüber hinaus bietet das Framework umfassende Unterstützung für die Konfiguration großer Sprachmodelle, sodass Sie die perfekte Balance zwischen Modellkomplexität und Generationsqualität erzielen können. Mit diesem Tool können Sie den Experimentierprozess optimieren, wertvolle Zeit sparen und die Leistung Ihrer RAG-Modelle erheblich verbessern.
Egal, ob Sie ein erfahrener Forscher sind, der die Grenzen des Verstehens natürlicher Sprache auslotet, oder ein Fachmann aus der Industrie, der seine Fähigkeiten zur Texterstellung verbessern möchte, dieses Experimentier-Framework ist die ultimative Lösung, um Ihre RAG-Entwicklung zu beschleunigen. Nutzen Sie die Zukunft des RAG-Experiments, und setzen Sie das wahre Potenzial Ihrer Modelle mit diesem modernsten Tool frei.
RAG mit Vision Application Framework
Ein Großteil der Anleitungen in diesem Artikel zur Arbeit mit Medien in Ihrer RAG-Lösung stammt aus einem anderen Entwicklungsteam, das mit den wichtigsten Kunden von Microsoft zusammenarbeitet. Dieses Team schrieb ein Framework namens RAG mit Vision Application Framework. Dieses Framework bietet eine Python-basierte RAG-Pipeline (Retrieval Augmented Generation), die sowohl Textinhalte als auch Bildinhalte aus MHTML-Dokumenten verarbeitet.
Das Framework lädt, segmentiert und erweitert sowohl Text als auch Bilder aus MHTML-Dateien und schließt die Blöcke in Azure Search ein. Das Framework implementiert die Zwischenspeicherung für die Bildanreicherung sowohl für die Verarbeitung als auch für die Kosteneffizienz. Das Framework umfasst auch die Bewertung als Teil der Pipeline.
Beitragende
- Ritesh Modi
- Rob Bagby
- Ryan Pfalz
- Raouf Aliouat
- Randy Thurman
- Prabal Deb
- Mahdi Setayesh
- Soubhi Hadri
- Paul Butler