Stellen Sie sich vor: Sie haben eine Funktion geschrieben, die die Quadratwurzel einer Zahl berechnet. Geben Sie 16 ein, und Sie bekommen jedes einzelne Mal 4 zurück, garantiert. Diese Vorhersagbarkeit ist das Fundament des klassischen Softwaretestens: Unit-Tests prüfen mit chirurgischer Präzision, ob sich jedes Stück Code genau so verhält wie erwartet.
Und jetzt denken Sie an ein System, das auf die Bitte, eine geschäftliche E-Mail zu schreiben, Dutzende verschiedener Versionen liefern kann. Alle sind völlig in Ordnung, aber jede hat ihren eigenen Ton, ihren eigenen Aufbau und ihre eigene Wortwahl. Willkommen in der Welt der Large Language Models (LLMs), wo schon der Begriff „richtige Ausgabe“ auf wunderbare und zugleich frustrierende Weise kompliziert geworden ist.
LLMs sind von Forschungskuriositäten zu produktionskritischen Systemen geworden, die vom Kundenservice-Chatbot bis zum Werkzeug für Codegenerierung alles antreiben. Damit ist eine neue Disziplin entstanden: LLM-Evaluierungen, kurz „Evals“. Das sind keine klassischen Tests mit frischem Anstrich. Sie verändern grundlegend, wie wir im Zeitalter der probabilistischen KI über die Qualitätssicherung von Software denken.
Wenn deterministisches Testen auf nichtdeterministische Systeme trifft
Klassische Unit-Tests beruhen auf einer einfachen Prämisse: Bei einer bestimmten Eingabe muss die Ausgabe jedes Mal dieselbe sein. Bei herkömmlicher Software, deren Funktionen deterministisch und vorhersagbar sind, funktioniert das ausgezeichnet. Ein Unit-Test für eine Checkout-Funktion im E-Commerce besteht entweder (die Bestellung wird korrekt verarbeitet) oder er schlägt fehl (etwas geht kaputt). Dazwischen gibt es nichts.
LLMs zerschlagen dieses Paradigma vollständig. In der klassischen Softwareentwicklung sind Ergebnisse vorhersagbar, und Fehler lassen sich debuggen, weil sich die Logik bestimmten Codeblöcken zuordnen lässt. LLMs dagegen sind eine Blackbox mit unendlich vielen möglichen Eingaben und entsprechenden Ausgaben. Wenn Sie ChatGPT bitten, eine Forschungsarbeit zusammenzufassen, betont es womöglich jedes Mal andere Kernpunkte, geht unterschiedlich tief ins technische Detail oder gliedert die Informationen völlig anders. Und alle diese Ausgaben können gleichermaßen „richtig“ sein.
Dieses nichtdeterministische Verhalten ist kein Bug, sondern ein Feature. LLM-Systeme können für dieselbe Eingabe mehrere gültige Ausgaben liefern, besonders unter realen Bedingungen, und bringen damit eine Kreativität und Flexibilität mit, an die deterministische Systeme schlicht nicht herankommen. Zugleich entsteht daraus aber ein Albtraum beim Testen, für den klassische Ansätze grundsätzlich schlecht gerüstet sind.
Auftritt der LLM-Evaluierungen: die Weiterentwicklung des Testens
LLM-Evaluierungen sind die Antwort der Branche auf diese Herausforderung. Sie übernehmen Konzepte aus dem klassischen Testen und passen sie an die Eigenheiten von KI-Systemen an. Beim Unit-Testing prüft man die kleinsten testbaren Teile einer Anwendung. Bei LLMs bedeutet das, die Antwort eines LLM auf eine bestimmte Eingabe anhand klar definierter Kriterien zu bewerten.
Die eigentliche Neuerung liegt nicht in der Testmethodik selbst, sondern darin, wie wir „Korrektheit“ definieren und messen. Statt nach exakten Übereinstimmungen zu suchen, prüfen LLM-Evals, ob Ausgaben bestimmte Qualitätskriterien erfüllen: Ist die Antwort relevant? Enthält sie Halluzinationen? Ist sie passend formatiert? Trifft sie den richtigen Ton?
Benchmarks dienen dem Vergleich von Modellen, Evals dem Verständnis der Leistungseigenschaften eines Systems, und Tests prüfen, ob diese Eigenschaften innerhalb akzeptabler Grenzen liegen. Aus dieser Hierarchie entsteht ein umfassendes Framework: Branchenübliche Benchmarks (wie MMLU oder HellaSwag) helfen beim Vergleich verschiedener Modelle, eigene Evaluierungen zeigen, wie sich ein System in bestimmten Kontexten schlägt, und Tests entscheiden, ob diese Leistung den Anforderungen im Produktivbetrieb genügt.
Die Anatomie moderner LLM-Tests
Die heutige LLM-Evaluierung umfasst mehrere Ansätze, die im Entwicklungszyklus jeweils einen anderen Zweck erfüllen:
Code-basierte Evaluierungen kommen dem klassischen Unit-Testing am nächsten. Ein Code-basierter Eval ist im Grunde ein Unit-Test in Python oder JS/TS, der strukturierte Ausgaben, die Einhaltung von Formaten oder bestimmte inhaltliche Vorgaben prüft. Das funktioniert gut bei Aufgaben mit klarem Richtig oder Falsch, etwa wenn eine JSON-Antwort die geforderten Felder enthalten muss.
LLM-as-a-Judge-Evaluierungen setzen andere KI-Modelle ein, um Qualität differenzierter zu beurteilen. LLM-as-a-Judge ist eine skalierbare und nachvollziehbare Methode, menschliche Präferenzen anzunähern, die sonst sehr teuer zu erheben sind. Statt sich auf exakte String-Übereinstimmungen zu verlassen, können diese Evaluierungen semantische Ähnlichkeit, Kohärenz und Angemessenheit im Kontext beurteilen.
Human-in-the-Loop-Evaluierungen verbinden automatisierte Bewertungen mit menschlichem Urteil für subjektive oder sicherheitskritische Szenarien. Manuelles Testen und Human-in-the-Loop-Testen kombinieren automatisierte Basisbewertungen mit menschlicher Prüfung bei subjektiven oder neu auftretenden Problemen, besonders in sicherheitskritischen oder ethisch heiklen Bereichen.
Die ausgereiftesten Ansätze kombinieren mehrere Evaluierungsarten. Ein Kundenservice-Chatbot durchläuft vielleicht Code-basierte Tests für die korrekte Formatierung, LLM-as-a-Judge-Evaluierungen für die Antwortqualität und menschliche Prüfungen für den Umgang mit heiklen Themen.
Evals im großen Maßstab umsetzen
Beim Schritt von der Theorie in die Praxis stoßen LLM-Evaluierungen auf ganz eigene Probleme bei der Umsetzung. Referenzbasierte Metriken sind zuverlässiger als solche ohne erwartete Ausgaben, aber umfassende Testdatensätze zu erstellen kostet viel Aufwand. Teams müssen Kosten und Komplexität der Evaluierung gegen den Bedarf an verlässlicher Qualitätsbewertung abwägen.
Die Branche hat mit immer ausgereifteren Werkzeugen reagiert. Frameworks wie DeepEval, OpenAIs Evals und Promptfoo sind entstanden, um LLM-Tests zugänglicher zu machen. DeepEval ist ein einfach zu bedienendes Open-Source-Framework für die LLM-Evaluierung, mit dem sich Large-Language-Model-Systeme bewerten und testen lassen. Es ähnelt Pytest, ist aber auf Unit-Tests für LLM-Ausgaben spezialisiert.
Diese Werkzeuge ermöglichen, was viele für unverzichtbar halten: automatisierte Tests in CI/CD, die besonders im Team wichtig sind, damit Breaking Changes nicht unbemerkt durchrutschen. So wie die klassische Softwareentwicklung auf Continuous Integration setzt, um Regressionen abzufangen, brauchen LLM-Anwendungen automatisierte Evaluierungs-Pipelines, damit Änderungen die Leistung nicht verschlechtern.
Die Kunst, das Unmessbare zu messen
Die vielleicht grundlegendste Herausforderung bei der LLM-Evaluierung besteht darin, überhaupt festzulegen, was „gut“ bedeutet. Ein Unit-Test ist eine konkrete, klare, überprüfbare Aussage oder Frage in natürlicher Sprache über eine wünschenswerte Eigenschaft der Antwort eines LLM. Mit diesem natürlichsprachlichen Ansatz, den Werkzeuge wie LMUnit eingeführt haben, können Entwickler komplexe Qualitätskriterien in für Menschen lesbarer Form ausdrücken.
Fragen wie „Ist die Antwort knapp, ohne Wesentliches auszulassen?“ oder „Passt die Komplexität der Antwort zur Zielgruppe?“ erfassen feine Anforderungen, die sich in klassischen Test-Assertions kaum abbilden ließen.
Die Branche ringt auch mit der Zuverlässigkeit der Evaluierung selbst. LLMs tun sich oft schwer mit den Feinheiten stufenloser Skalen, was schon bei kleinen Änderungen am Prompt oder beim Wechsel des Modells zu uneinheitlichen Ergebnissen führt. Viele Praktiker bevorzugen deshalb kategoriale Evaluierungen gegenüber numerischen Werten, weil sie einheitlichere und besser interpretierbare Ergebnisse liefern.
Die Zukunft der Qualitätssicherung bei KI
Die Fähigkeiten von LLMs reichen inzwischen über die Textgenerierung hinaus bis zu agentischem Verhalten, also Systemen, die planen, Aktionen ausführen und ihre Strategien anpassen können. Die Evaluierungsansätze entwickeln sich entsprechend weiter. Statt Ausgaben isoliert zu bewerten, wird man Agenten in simulierten Umgebungen testen, in denen man den Erfolg nicht an der Korrektheit des Textes misst, sondern daran, ob das Ziel erreicht wurde.
Damit ändert sich die Philosophie des Softwaretestens grundlegend. Wir werden deterministische Unit-Tests (für Agentenzustand, API-Bindings, Tools) mit stochastischen Verhaltenstests (für Planerstellung, nutzerseitige Ausgaben) kombinieren. Künftige KI-Systeme brauchen hybride Ansätze, die die Zuverlässigkeitsgarantien des klassischen Testens bewahren und zugleich der kreativen Unberechenbarkeit der KI Raum geben.
Die Folgen reichen über die KI-Entwicklung hinaus. Je mehr herkömmliche Software KI-Komponenten enthält, desto mehr verschwimmen die Grenzen zwischen deterministischen und probabilistischen Systemen. Wer LLM-Evaluierungstechniken heute versteht, ist als Entwickler auf eine Zukunft vorbereitet, in der jeder Softwaretest ein gewisses Maß an nichtdeterministischem Verhalten berücksichtigen muss.
Der Weg von Unit-Tests zu LLM-Evals ist mehr als eine technische Anpassung. Er ist die Einsicht, dass unsere Methoden zur Absicherung der Zuverlässigkeit im gleichen Maß ausgereifter werden müssen, wie unsere Werkzeuge intelligenter und autonomer werden. In einer Welt, in der Software immer öfter selbst denkt, wird die Kunst des Testens für das Zeitalter der künstlichen Intelligenz neu geboren.
Aus dem Englischen übersetzt: zum Originalbeitrag