Artikelbild für den Artikel: Produktbewertungen in drei einfachen Schritten

Produktbewertungen in drei einfachen Schritten

In der heutigen Zeit, in der große Sprachmodelle (LLMs) immer mehr in der Produktentwicklung eingesetzt werden, ist die Evaluierung dieser Produkte von entscheidender Bedeutung. In diesem Artikel zeigen wir Ihnen eine praktische Anleitung zur Evaluierung von LLM-basierten Produkten, die in drei einfachen Schritten durchgeführt werden kann.

Einführung

Die Evaluierung von LLM-basierten Produkten kann manchmal einschüchternd wirken, muss es aber nicht sein. Wir werden uns ansehen, wie man Produktbewertungen in drei einfachen Schritten aufbaut: (i) Kennzeichnung eines kleinen Datensatzes, (ii) Ausrichtung unserer LLM-Evaluator und (iii) Durchführung des Experiments sowie des Evaluierungsharness mit jeder Konfigurationsänderung.

1. Daten kennzeichnen

Der erste Schritt besteht darin, einige Eingaben und Ausgaben aus unseren LLM-Anfragen zu sampeln und zu kennzeichnen, ob die Ausgaben unseren Evaluierungskriterien entsprechen (z.B. Treue, Relevanz usw.). Beginnen Sie einfach mit einer Tabelle, die Spalten für Eingabe, Ausgabe, zusätzliche Metadaten, die bei der Bewertung der Ausgabe helfen, und eine neue Spalte für das Label enthält.

Fokussieren Sie sich auf binäre Pass/Fail- oder Gewinn/Verlust-Labels. Wenn die Kriterien objektiv sind – wie z.B. ob eine Zusammenfassung treu zur Quelle ist oder eine Ablehnung enthält – verwenden Sie Pass/Fail-Labels. Bei subjektiven Kriterien, wie ob eine Zusammenfassung präziser ist als eine andere, verwenden Sie Gewinn/Verlust/Vergleichs-Kennzeichnungen. Letzteres hilft, da es den Annotatoren ermöglicht, Gleichstände anzugeben. Wenn sie gezwungen werden, einen Gewinner auszuwählen, wenn zwei Ausgaben nahezu identisch sind, führt dies zu Rauschen und verhindert, dass wir lernen, dass einige Unterschiede vernachlässigbar sind.

Was ist mit numerischen Labels oder Likert-Skalen? Während 1-5 Skalen Granularität bieten, habe ich festgestellt, dass es schwierig ist, menschliche Annotatoren und LLM-Evaluatoren zu kalibrieren. Der Unterschied zwischen „3“ und „4“ ist oft subtil. Selbst mit detaillierten Kennzeichnungsrichtlinien werden unterschiedliche menschliche Annotatoren unterschiedliche Labels zurückgeben. Und wenn es für menschliche Annotatoren eine Herausforderung ist, konsistent gegen eine Richtlinie zu kennzeichnen, wird es auch für LLM-Evaluatoren eine Herausforderung sein. Binäre Labels mildern dieses Problem, indem sie eine klare Entscheidungsgrenze erzwingen.

Streben Sie 50-100 Fehlermuster an. Dies hängt von der Gesamtzahl der Labels ab, und wichtiger ist die Anzahl der Labels, die uns tatsächlich interessieren. Bei Pass/Fail-Bewertungen sind meistens die „Fehler“ von Bedeutung, da dies die vertrauensschädigenden Defekte sind. Ein Datensatz mit Hunderten von Labels, aber nur fünf Fehlern ist nicht nützlich, um unsere Evaluatoren auszurichten und zu bewerten. Wir benötigen einen ausgewogenen Datensatz. Ich empfehle in der Regel, mindestens 50-100 Fehler aus 200+ Gesamtsamples zu haben.

2. LLM-Evaluator ausrichten

Mit unseren gekennzeichneten Proben besteht der nächste Schritt darin, eine Prompt-Vorlage zu erstellen, die die Eingabe und Ausgabe (und zusätzliche Metadaten) annimmt und das erwartete Label zurückgibt. Wir sollten dies als ein konventionelles maschinelles Lernproblem behandeln und die Daten in Entwicklungs- und Testsets aufteilen. Zum Beispiel verwenden Sie 75% der Proben für die Ausrichtung (d.h. Iteration über die Prompt-Vorlage) und halten die verbleibenden 25% als Testset zurück. Dies stellt sicher, dass wir messen, wie gut unser Evaluator auf neue Daten generalisiert, anstatt sich auf die ursprünglichen 75% der Proben zu überanpassen.

Haben Sie einen Evaluator pro Dimension. Es ist einfacher, einen Evaluator auf ein einzelnes Kriterium auszurichten und hohe Genauigkeit zu erreichen. Ein Anti-Muster ist der Aufbau eines einzelnen „Gott-Evaluators“, der versucht, 5-10 Dimensionen – Treue, Relevanz, Prägnanz, Ton usw. – in einem Prompt zu bewerten. Ich habe noch nie gesehen, dass dies gut funktioniert. Darüber hinaus sind diese Alleskönner-Evaluatoren ein Albtraum zu kalibrieren, da wir nicht leicht isolieren können, welche Dimension falsch ausgerichtet ist.

Stattdessen sollten wir einzelne Evaluatoren erstellen und sie über einfache Heuristiken kombinieren (z.B. die Ausgabe besteht nur, wenn alle Dimensionen bestehen). Dieser Ansatz gibt uns granulare Metriken, die es uns ermöglichen, genau zu sehen, welche Dimension die Leistung beeinträchtigt. Dies ermöglicht es uns auch, verschiedene Metriken unterschiedlich zu behandeln, da einige Schutzmetriken sind, bei denen das Nichterfüllen ein blockierendes Problem darstellt, während andere Nordsternmetriken sind, die wir anstreben, kontinuierlich zu verbessern.

3. Evaluierungsharness mit jeder Änderung ausführen

Schließlich können wir unsere einzelnen Evaluatoren in ein Evaluierungsharness kombinieren. Das Harness sollte einen Datensatz von Eingabe-Ausgabe-Paaren akzeptieren, die relevanten Evaluatoren parallel ausführen (unter Berücksichtigung von Ratenlimits) und die Ergebnisse aggregieren. Ich finde es auch hilfreich, eine Utility-Funktion zu haben, die diese Metriken als einzeiliges DataFrame ausgibt. Dies erleichtert das Kopieren und Einfügen von Ergebnissen in Excel (was Produktmanager zum Nachverfolgen bevorzugen). Mit etwas bedingter Formatierung können wir leicht Verbesserungen oder Regressionen identifizieren.

Integrieren Sie das Evaluierungsharness mit der Experimentpipeline. Wenn unser Evaluierungsharness direkt die Ausgaben unserer Experimente konsumieren kann, wird das Durchführen von Experimenten und Evaluierungen im großen Maßstab einfach. Wir können eine Konfiguration ändern – Prompt-Vorlagen, Abrufparameter, Modellwahl und Parameter – Ausgaben generieren und sofort bewerten. Dieser enge Feedback-Zyklus ermöglicht es uns, schnell zu iterieren.

Wie viele Proben sollten wir bewerten? Dies hängt von dem statistischen Vertrauen ab, das wir benötigen. Angenommen, unser Produktanforderung ist, eine Fehlerquote von unter 5% zu haben. Wenn wir ein Experiment mit 200 Proben durchführen und 3% Fehler feststellen, liegt unser 95%-Konfidenzintervall bei ungefähr 3% ± 2,4%. Dies gibt uns einen Bereich von 0,6 – 5,4% Fehlerquote. Und da die obere Grenze 5% übersteigt, können wir nicht mit Zuversicht schließen, dass die aktuelle Konfiguration die Freigabeanforderung erfüllt.

Wir können diese Schätzung verfeinern, indem wir die Anzahl der Proben erhöhen. Wenn wir die Ausgabe auf 400 Proben verdoppeln, schrumpft das Intervall auf 3% ± 1,7%. Jetzt liegt unsere obere Grenze von 4,7% unter der Anforderung von 5%. Hinweis: Da der Standardfehler proportional zur Quadratwurzel der Stichprobengröße abnimmt, müssen wir die Stichprobengröße vervierfachen, um die Fehlergrenze um die Hälfte zu reduzieren. Daher gibt es abnehmende Erträge beim Hinzufügen weiterer Proben.

Fazit

Die Evaluierung von LLM-basierten Produkten ist nicht nur wichtig, um die Qualität des Produkts zu messen und zu verbessern, sondern auch um den Feedback-Zyklus zu straffen und uns zu helfen, schneller zu iterieren. Ein gut ausgerichteter Evaluator ermöglicht es uns, konsistente, (super) menschliche Urteile über Hunderte von Proben in Minuten, rund um die Uhr, ohne von menschlicher Überprüfung behindert zu werden, anzuwenden. Dies ermöglicht es uns, Experimente im großen Maßstab durchzuführen und somit schneller zu iterieren.

Quellenliste:

Dieser Artikel wurde mithilfe von KI verfasst und basiert auf automatisch gesammelten Informationen.
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar