Evaluierungsgesteuerte Entwicklung

Beim Erstellen von Prompts für reale Anwendungen ergibt sich ein wichtiger Kompromiss: die Balance zwischen Kürze und Effektivität. Wenn alle Faktoren gleich sind, ist ein prägnanter Prompt schneller, kostengünstiger und einfacher zu verwalten als ein längerer Prompt. Das ist besonders in Webumgebungen relevant, in denen Latenz und Tokenlimits eine Rolle spielen. Wenn Ihr Prompt jedoch zu kurz ist, fehlen dem Modell möglicherweise der Kontext, die Anweisungen oder die Beispiele, um hochwertige Ergebnisse zu liefern.

Mit bewertungsgesteuerter Entwicklung (Evaluation-Driven Development, EDD) können Sie diesen Kompromiss systematisch überwachen und optimieren. Sie bietet einen wiederholbaren, testbaren Prozess, um die Ausgaben in kleinen und sicheren Schritten zu verbessern, Regressionen zu erkennen und das Modellverhalten im Laufe der Zeit an die Erwartungen von Nutzern und Produkten anzupassen.

Stellen Sie sich das als testgesteuerte Entwicklung (TDD) vor, die an die Unsicherheit von KI angepasst wurde. Im Gegensatz zu deterministischen Unittests können KI-Bewertungen nicht fest codiert werden, da Ausgaben, sowohl gut formatierte als auch fehlerhafte, unerwartete Formen annehmen können.

Abbildung 1: Im EDD-Prozess definieren Sie das Problem, initialisieren eine Baseline, führen eine Analyse durch und optimieren. Fahren Sie mit der Bewertung und Optimierung fort, bis der Prozess abgeschlossen ist.

EDD unterstützt Sie auch bei der Ermittlung. So wie das Schreiben von Tests dazu beiträgt, das Verhalten einer Funktion zu verdeutlichen, zwingt Sie das Definieren von Bewertungskriterien und das Überprüfen von Modellausgaben dazu, Unklarheiten zu beseitigen und nach und nach mehr Details und Struktur für offene oder unbekannte Aufgaben hinzuzufügen.

Problem definieren

Sie können Ihr Problem wie einen API-Vertrag formulieren, einschließlich des Eingabetyps, des Ausgabeformats und aller zusätzlichen Einschränkungen. Beispiel:

  • Eingabetyp: Blogpost-Entwurf
  • Ausgabeformat: JSON-Array mit 3 Beitragstiteln
  • Einschränkungen: weniger als 128 Zeichen, freundlicher Ton

Erfassen Sie dann Beispiel-Eingaben. Um für eine Vielfalt an Daten zu sorgen, sollten Sie sowohl ideale Beispiele als auch reale, unordentliche Eingaben einbeziehen. Denken Sie an Variationen und Grenzfälle, z. B. Beiträge mit Emojis, verschachtelter Struktur und vielen Code-Snippets.

Baseline initialisieren

Schreiben Sie Ihren ersten Prompt. Sie können mit Zero-Shot beginnen und Folgendes einbeziehen:

  • Klare Anleitung
  • Ausgabeformat
  • Platzhalter für Eingabevariable

Sie erhöhen die Komplexität und arbeiten mit anderen Komponenten und erweiterten Prompting-Techniken, wenn Sie die Ergebnisse bewerten und optimieren. Zuerst müssen wir ein Bewertungssystem einrichten, um die Optimierungsbemühungen in die richtige Richtung zu lenken.

Bewertungssystem erstellen

Bei TDD beginnen Sie mit dem Schreiben von Tests, sobald Sie die Anforderungen kennen. Bei generativer KI gibt es keine definitiven Ausgaben, anhand derer getestet werden kann. Daher müssen Sie mehr Aufwand in die Entwicklung Ihres Bewertungszyklus investieren.

Wahrscheinlich benötigen Sie mehrere Analysetools, um die Leistung effektiv zu bewerten.

Bewertungsmesswerte definieren

Bewertungsmesswerte können deterministisch sein. Sie können beispielsweise prüfen, ob das Modell gültiges JSON zurückgibt oder die richtige Anzahl von Elementen ausgibt.

Ein Großteil Ihrer Zeit sollte jedoch der Identifizierung und Optimierung subjektiver oder qualitativer Messwerte wie Klarheit, Nützlichkeit, Ton oder Kreativität gewidmet sein. Sie beginnen vielleicht mit allgemeinen Zielen, stoßen aber schnell auf differenziertere Probleme.

Angenommen, Ihr Titelgenerator verwendet bestimmte Formulierungen oder Muster zu häufig, was zu sich wiederholenden, roboterhaften Ergebnissen führt. In diesem Fall würden Sie neue Messwerte definieren, um Variation zu fördern und übermäßig verwendete Strukturen oder Keywords zu vermeiden. Im Laufe der Zeit stabilisieren sich Ihre wichtigsten Messwerte und Sie können Verbesserungen nachvollziehen.

Bei diesem Prozess können Experten helfen, die wissen, was gut in der Anwendungsdomain bedeutet, und subtile Fehlermodi erkennen können. Wenn Sie beispielsweise einen Schreibassistenten entwickeln, sollten Sie sich mit einem Content-Producer oder ‑Redakteur zusammentun, damit Ihre Bewertung mit seiner Sichtweise übereinstimmt.

Juroren auswählen

Für die verschiedenen Bewertungskriterien sind unterschiedliche Prüfer erforderlich:

  • Codebasierte Prüfungen eignen sich gut für deterministische oder regelbasierte Ausgaben. Sie können beispielsweise Titel nach Wörtern durchsuchen, die Sie vermeiden möchten, die Anzahl der Zeichen prüfen oder die JSON-Struktur validieren. Sie sind schnell, wiederholbar und eignen sich perfekt für UI-Elemente mit fester Ausgabe wie Schaltflächen oder Formularfelder.
  • Feedback von Menschen ist unerlässlich, um subjektivere Qualitäten wie Ton, Klarheit oder Nützlichkeit zu bewerten. Gerade am Anfang ist es wichtig, die Modellausgabe selbst oder mit Fachexperten zu überprüfen, um schnell Iterationen durchführen zu können. Dieser Ansatz lässt sich jedoch nicht gut skalieren. Nach dem Start Ihrer Anwendung können Sie auch In-App-Signale wie Sternebewertungen erfassen. Diese sind jedoch in der Regel ungenau und es fehlt ihnen die nötige Nuance für eine präzise Optimierung.
  • LLM-as-judge bietet eine skalierbare Möglichkeit, subjektive Kriterien zu bewerten, indem ein anderes KI-Modell zum Bewerten oder Kritikerstellen von Ausgaben verwendet wird. Sie ist schneller als die manuelle Überprüfung, birgt aber auch Gefahren: Bei einer naiven Implementierung können die Vorurteile und Wissenslücken des Modells aufrechterhalten und sogar verstärkt werden.

Qualität vor Quantität. Beim klassischen maschinellen Lernen und bei prädiktiver KI ist es üblich, die Datenannotation auszulagern. Bei generativer KI fehlt es Crowdsourcing-Annotatoren oft an Domänenkontext. Eine hochwertige, kontextreiche Analyse ist wichtiger als die Menge.

Auswerten und optimieren

Je schneller Sie Ihre Prompts testen und optimieren können, desto eher erhalten Sie Ergebnisse, die den Erwartungen der Nutzer entsprechen. Sie müssen sich angewöhnen, Ihre Kampagnen kontinuierlich zu optimieren. Versuchen Sie es mit einer Verbesserung, bewerten Sie das Ergebnis und probieren Sie etwas anderes aus.

Beobachten und bewerten Sie das Verhalten Ihrer Nutzer und Ihres KI-Systems auch nach der Bereitstellung in der Produktionsumgebung. Anschließend analysieren und transformieren Sie diese Daten in Optimierungsschritte.

Bewertungspipeline automatisieren

Um die Reibung bei der Optimierung zu verringern, benötigen Sie eine operative Infrastruktur, die die Auswertung automatisiert, Änderungen nachverfolgt und die Entwicklung mit der Produktion verbindet. Dies wird häufig als LLMOps bezeichnet. Es gibt zwar Plattformen, die bei der Automatisierung helfen können, aber Sie sollten Ihren idealen Workflow entwerfen, bevor Sie sich für eine Drittanbieterlösung entscheiden.

Hier sind einige wichtige Komponenten, die Sie berücksichtigen sollten:

  • Versionsverwaltung: Speichern Sie Prompts, Bewertungsmesswerte und Testeingaben in der Versionsverwaltung. Behandeln Sie sie wie Code, um Reproduzierbarkeit und einen klaren Änderungsverlauf zu gewährleisten.
  • Automatisierte Batch-Bewertungen: Mit Workflows wie GitHub Actions können Sie Bewertungen für jede Prompt-Aktualisierung ausführen und Vergleichsberichte erstellen.
  • CI/CD für Prompts: Stellen Sie Bereitstellungen mit automatisierten Prüfungen wie deterministischen Tests, LLM-as-Judge-Bewertungen oder Guardrails in Rechnung und blockieren Sie Zusammenführungen, wenn die Qualität nachlässt.
  • Produktionsprotokollierung und ‑beobachtbarkeit: Erfassen Sie Eingaben, Ausgaben, Fehler, Latenz und Tokennutzung. Achten Sie auf Abweichungen, unerwartete Muster oder Spitzen bei Fehlern.
  • Feedback-Aufnahme: Nutzersignale (Daumen, Umformulierungen, Abbruch) werden erfasst und wiederkehrende Probleme in neue Testläufe umgewandelt.
  • Test-Tracking: Prompt-Versionen, Modellkonfigurationen und Auswertungsergebnisse im Blick behalten.

Mit kleinen, gezielten Änderungen iterieren

Die Optimierung von Prompts beginnt in der Regel mit der Verbesserung der Sprache des Prompts. Das kann bedeuten, dass Sie Anweisungen präziser formulieren, die Intention klarer ausdrücken oder Unklarheiten beseitigen.

Achten Sie darauf, dass das Modell nicht überangepasst wird. Ein häufiger Fehler ist es, zu restriktive Regeln hinzuzufügen, um Probleme mit dem Patch-Modell zu beheben. Wenn Ihr Titelgenerator beispielsweise immer wieder Titel generiert, die mit Der ultimative Leitfaden beginnen, ist es vielleicht verlockend, diesen Ausdruck explizit zu verbieten. Abstrahieren Sie das Problem stattdessen und passen Sie die Anweisung auf höherer Ebene an. Das kann bedeuten, dass Sie Originalität, Vielfalt oder einen bestimmten redaktionellen Stil betonen, damit das Modell die zugrunde liegende Präferenz und nicht eine einzelne Ausnahme lernt.

Eine weitere Möglichkeit besteht darin, mit weiteren Prompting-Techniken zu experimentieren und diese zu kombinieren. Wenn Sie eine Technik auswählen, sollten Sie sich fragen, ob sich die Aufgabe am besten durch Analogie (Few-Shot), schrittweise Argumentation (Chain-of-Thought) oder iterative Verfeinerung (Selbstreflexion) lösen lässt.

Wenn Ihr System in die Produktion geht, sollte sich der EDD-Flywheel nicht verlangsamen. Wenn überhaupt, sollte es sich beschleunigen. Wenn Ihr System Nutzereingaben verarbeitet und protokolliert, sollten diese Ihre wertvollste Quelle für Statistiken sein. Fügen Sie Ihrer Evaluierungssuite wiederkehrende Muster hinzu und ermitteln und implementieren Sie kontinuierlich die jeweils besten Optimierungsschritte.

Wichtige Erkenntnisse

Die bewertungsbasierte Prompt-Entwicklung bietet Ihnen eine strukturierte Möglichkeit, mit der Unsicherheit von KI umzugehen. Wenn Sie Ihr Problem klar definieren, ein maßgeschneidertes Bewertungssystem entwickeln und kleine, gezielte Verbesserungen vornehmen, schaffen Sie einen Feedbackloop, der die Modellausgabe stetig verbessert.

Ressourcen

Hier sind einige empfohlene Quellen, wenn Sie LLM-as-Judge implementieren möchten:

Wenn Sie Ihre Prompts weiter optimieren möchten, finden Sie hier weitere Informationen zur kontextbezogenen Entwicklung. Das sollte am besten von einem Machine Learning Engineer erledigt werden.

Wissen testen

Was ist das Hauptziel der bewertungsgesteuerten Entwicklung?

Alle manuellen Tests durch automatisierte Unit-Tests ersetzen.
Das ist falsch.
Den Kompromiss zwischen der Kürze und der Effektivität von Prompts systematisch mit einem wiederholbaren Prozess überwachen und optimieren.
Richtig!
Um die Latenz der Anwendung zu erhöhen und so die Genauigkeit zu verbessern.
Das ist falsch.
Das Modell muss öffentliche Standard-Benchmarks wie MMLU bestehen.
Das ist falsch.

Warum sollten größere Modelle zur Bewertung eines clientseitigen Systems verwendet werden?

Größere Modelle eignen sich am besten, um Ton und Kreativität zu bewerten.
Das ist falsch.
Sie fungieren als Human in the Loop und bewerten jedes Ergebnis manuell.
Das ist falsch.
Sie eignen sich hervorragend zum Validieren deterministischer Ausgaben, z. B. zum Validieren der JSON-Struktur oder der Anzahl der Zeichen.
Richtig!

Was ist ein potenzieller Fallstrick bei der Verwendung von LLM als Richter für die Bewertung?

Sie ist im Vergleich zur manuellen Überprüfung zu langsam.
Das ist falsch.
Es ist keine Einrichtung oder Eingabe von Prompts erforderlich.
Das ist falsch.
Dadurch können die Vorurteile und Wissenslücken des Modells verstärkt und weitergegeben werden.
Richtig!
Es kann keine Textausgaben verarbeiten.
Das ist falsch.

Welche Komponente ist Teil einer empfohlenen automatisierten Bewertungs-Pipeline?

Prompts manuell in eine Tabelle kopieren und einfügen.
Das ist falsch.
Versionsverwaltung von Prompts, Messwerten und Testeingaben als Code.
Richtig!
Löschen von Protokollen, um Speicherplatz zu sparen
Das ist falsch.
Nutzerfeedback wird ignoriert, um die Konsistenz zu wahren.
Das ist falsch.

Was ist die Haupteinschränkung bei der Verwendung von menschlichem Feedback bei der Auswahl von Prüfern für Ihr Bewertungssystem?

Subjektive Qualitäten wie Ton oder Klarheit können nicht von Menschen bewertet werden.
Das ist falsch.
Das ist im Grunde dasselbe wie die Verwendung von „Codebasierte Prüfungen“.
Das ist falsch.
Es liefert das höchste Datenvolumen, aber mit der niedrigsten Qualität.
Das ist falsch.
Im Vergleich zu automatisierten Methoden ist sie nicht gut skalierbar.
Richtig!