Schließen der Lücke zwischen LLM-Richtern und menschlichen Experten mit MemAlign und MLflow.
von Stepan Nosov, Pavle Martinović, Tejas Sundaresan, Alkis Polyzotis und Nemanja Petrovic
Das kürzlich angekündigte Genie Code ist der autonome KI-Partner von Databricks, der speziell für Datenarbeit entwickelt wurde. Es ersetzte den Databricks Assistant, während es mehrere Agenten integrierte und neue Integrationspunkte und Funktionen bot. Genie Code ist tief in Unity Catalog integriert, was bedeutet, dass es Ihre Tabellen, Spalten, Abstammung, Metrikansichten und Geschäftsdefinitionen (Semantik) versteht. Dieses kontextbezogene Bewusstsein macht Genie Code für Datenpraktiker weitaus nützlicher als generische Chatbots.
Wenn Genie Code ein Notebook für traditionelle ML-Aufgaben generiert, wie z. B. „Erstellen eines Churn-Vorhersagemodells“, erwarten wir, dass es einen produktionsreifen Workflow liefert, der die Installation der entsprechenden Python-Bibliotheken, die Exploration und Vorverarbeitung der Daten, das Training, die Abstimmung, die Registrierung und Bereitstellung des Modells sowie die Bewertung seiner Leistung umfasst. Wir erwarten auch, dass jeder Schritt wirklich durch die Daten informiert ist: Genie Code soll beispielsweise verstehen, dass unausgeglichene Klassen bei einem binären Klassifizierungsproblem zu dramatisch unterschiedlichen Workflows und Erfolgsmetriken führen.
Um sicherzustellen, dass Genie Code durchweg native Databricks-Best Practices befolgt und beispielsweise das Überspringen von Kreuzvalidierung, das Übersehen von Datenlecks oder unsachgemäße Datenimputation vermeidet, mussten wir eine rigorose Methode finden, um eine Frage zu beantworten: Woher wissen wir, ob der generierte Code tatsächlich gut ist? Das generierte Notebook hängt stark vom Problem ab, das der Kunde zu lösen versucht, und dies kann zwischen verschiedenen Kunden stark variieren, sodass dies eine sehr nicht triviale Frage ist.
In diesem Beitrag werden wir untersuchen, wie wir eine Bewertungs-Pipeline für die traditionellen ML-Fähigkeiten von Genie Code aufgebaut haben und wie wir MemAlign (ein neues Open-Source-Framework zur Ausrichtung in MLflow) verwendet haben, um die massive Lücke zu schließen, die wir zwischen LLM-Richtern und menschlichen Experten festgestellt haben. Die verbesserten Richter halfen uns, Lücken in der ML-Anleitung von Genie Code zu identifizieren und zu beheben, die wir sonst übersehen hätten.
Ein robustes Bewertungsframework wird benötigt für:
Die Bewertung traditioneller ML-Notebooks ist eine der komplexesten Bewertungsaufgaben, da sie die Bewertung der Codequalität, der besten ML-Praktiken und datengesteuerter Anpassungen/Maßschneiderungen umfasst. Um eine so breite und unübersichtliche Aufgabe wie die Bewertung von ML-Notebooks zu bewältigen, verwenden wir LLM-as-a-judge – einen LLM-„Experten“, der von Menschen darin geschult wurde, wie genau ein gutes Notebook aussieht. Wir haben neun Richter erstellt, die aufgefordert werden, die ML-Notebooks anhand von neun Dimensionen zu bewerten, die in den meisten ML-Workflows vorkommen:
| Dimensionen | Was wir bewerten |
|---|---|
| Bibliotheksinstallation | Korrekte Abhängigkeiten |
| Explorative Datenanalyse | Umfassende EDA und |
| Datenimputation | Mean Time to Contain |
| Umgang mit fehlenden Werten ohne Leckage. | Feature Engineering |
| Feature-Auswahl/-Transformation. | Modelltraining |
| Modellauswahl, Kreuzvalidierung, Hyperparameter-Tuning | Wiederverwendung des trainierten Modells für Inferenz. |
| Metrikbewertung | Inferenzlogik und aufgabenspezifische Metriken (z. B. MAPE für Prognosen, MAE für Regression, Genauigkeit für Klassifizierung). |
| MLflow-Protokollierung | Einrichtung der Experimentverfolgung. |
| Zellenorganisation | Aufteilung des Codes in Zellen, Code-Sauberkeit, Lesbarkeit, Markdown-Header, entsprechende Protokollierung. |
Für jede Dimension haben wir Bewertungsrubriken (wiederverwendet zwischen menschlichen Bewertern und LLM-Richtern) geschrieben, die eine Punktzahl von 1 bis 3 und 0 für „nicht anwendbar“ zuweisen:
Um eine Vorstellung von der Granularität zu geben, hier ist die spezifische Rubrik, die wir für die Dimension „Datenimputation“ verwenden:
Zusammen mit den Richtern pflegen wir eine Reihe von Evaluierungstestfällen, die eine Reihe von ML-Aufgaben (Klassifizierung, Regression, Prognose) über verschiedene Datensatzgrößen, Domänen und Komplexitätsstufen hinweg abdecken. Jeder Testfall enthält einen Benutzer-Prompt, der Genie Code die ML-Aufgabe mitteilt, die er auf dem angegebenen Datensatz lösen soll („Ich habe Passagierdaten in den Tabellen titanic_train_table und titanic_test_table. Können Sie herausfinden, wer überlebt hat?“). Die Evaluationsschleife besteht darin, Genie Code zu verwenden, um ein Notebook (oder mehrere) für jeden Testfall zu generieren, und dann jedes Notebook anhand aller anwendbaren Dimensionen zu bewerten.
Durch die Verwendung von LLM-Richtern anstelle von Menschen zur Bewertung von Genie Code-Artefakten haben wir im Wesentlichen ein schwieriges Problem durch ein anderes ersetzt: Der Out-of-the-Box-Richter ist in der anstehenden Aufgabe unerfahren und nicht mit menschlichen Bewertungen abgestimmt. Unser Problem ist es, die Bewertungen der LLM-Richter mit denen menschlicher Gutachter abzugleichen.
Der Bewertungsdatensatz für die LLM-Richterbewertung enthält 50 von Genie Code generierte Notebooks („Testfälle“), bei denen menschliche Experten jede anwendbare Dimension bewertet und sowohl eine Punktzahl als auch eine kurze Begründung als Ground Truth geliefert haben. In den Grauzonen zwischen zwei Punktzahlen durften die Bewerter ihr eigenes Urteil äußern, aber die Schemata waren so geschrieben, dass dies selten der Fall war.
Das Maß für die Mensch-Maschine-Abstimmung ist der mittlere absolute Fehler (MAE) zwischen den Punktzahlen in jeder Dimension. Die Ergebnisse waren gemischt, einige Dimensionen zeigten eine starke Abstimmung (4 Dimensionen hatten einen MAE von <= 0,10), während andere erhebliche Meinungsverschiedenheiten zeigten:
Diese Lücke besteht, weil Menschen und LLMs dieselbe Rubrik nicht auf die gleiche Weise interpretieren. Während ein menschlicher Bewerter eine subtil fehlerhafte Imputationsstrategie oder eine Trainingsschleife erkennen kann, die „funktioniert“, aber logisch fehlerhaft ist, übersieht ein LLM-Richter oft diese technische Nuance. Wir stellten auch fest, dass der Richter ein klassisches Positivitäts-Bias aufwies – er war einfach zu „höflich“, und das hinderte uns daran, objektive Ergebnisse zu erzielen.
Es wurde völlig klar, dass LLM-Richter und Menschen bei gleicher Rubrik nicht zu denselben Ergebnissen kommen würden – eine Fehlausrichtung. Dies ist genau das Szenario, für das MemAlign entwickelt wurde, um es zu beheben.

MemAlign ist ein Framework innerhalb von MLflow, das mit einer sehr geringen Menge an menschlichem Feedback in natürlicher Sprache die Ausrichtung zwischen menschlichen Bewertern und LLM-Richtern durchführen kann. Dies wird durch zwei Arten von „Speichern“ erreicht, die durch das Lesen des menschlichen Feedbacks gebildet werden:
Zur Inferenzzeit erstellt MemAlign einen Arbeitskontext, indem es alle semantischen Richtlinien abruft und die relevantesten episodischen Beispiele für die aktuelle Eingabe abruft. Der Richter lädt all diese zusammen mit der ursprünglichen Bewertungsmatrix in seinen Kontext und verwendet das gesammelte Wissen, um eine genauere Bewertung für alle zukünftigen Notebooks zu geben.
Die Schlüsseleigenschaft, die MemAlign herausstechen ließ, war die hohe Leistung bei nur einer kleinen Anzahl von Beispielen. Dies liegt daran, dass MemAlign effektiv aus reichhaltigen Lernsignalen in natürlichem Sprachfeedback lernt und diese in das Dual-Memory-System integriert.
Hier ist ein Beispiel für einige der Ausschnitte aus dem semantischen Speicher, die für die Dimension „Datenimputation“ generiert wurden und die Lücken in der zuvor definierten Bewertungsmatrix füllen, indem sie im Allgemeinen Ankerpunkte, Beispiele und Gegenbeispiele liefern:
Darüber hinaus wird, wie bereits erwähnt, der im Prompt dargestellte semantische Speicher zur Bewertungszeit mit relevanten Beispielen aus dem episodischen Speicher des Richters ergänzt, wodurch der Richter noch mehr Kontext erhält, um die optimierten Anweisungen zu interpretieren.
Nach dem ML-Trainings-Test-Paradigma haben wir eine K-fache Kreuzvalidierung (K=4) auf 50 Testfällen (Notebooks) angewendet, um Datenlecks und die Notwendigkeit, einen separaten Testdatensatz zu kennzeichnen, zu vermeiden. Für jede Faltung haben wir Folgendes getan:
Um die Konfidenzintervalle ohne zusätzliche gekennzeichnete Daten zu berechnen, haben wir 100 Bootstrap-Stichproben mit Zurücklegen aus den ursprünglichen 50 generiert. Indem wir dies 10.000 Mal wiederholten und die MAE zwischen menschlichen und maschinellen Bewertungen verfolgten, berechneten wir die Konfidenzintervalle für die menschlich-maschinelle Ausrichtung mit einem 95% CI, das eine statistisch signifikante Änderung definiert.
Die Evaluierungspipeline ist als ein einzelner MLflow-Snippet implementiert, der den gesamten Prozess orchestriert:
Der MemAlign-Optimierer kann LLM-Richter anhand der Spuren der Testfälle in nur wenigen Codezeilen ausrichten. Wir haben diesen neuen „ausgerichteten“ Richter verwendet, um die neue MAE zu berechnen. Die Ausrichtung eines Richters auf eine einzelne Dimension dauert etwa 25 Sekunden pro Faltung, sodass die Ausrichtung selbst kein Engpass ist.

Drei von 9 Dimensionen zeigten statistisch signifikante Verbesserungen:
Diese 3 Dimensionen gehören zu den anfänglich 4 Dimensionen, die stark fehlausgerichtet waren. Eine schwache anfängliche Ausrichtung deutet darauf hin, dass LLMs und Menschen ein grundlegend unterschiedliches Verständnis der gemeinsamen Bewertungsmatrizen haben, und die von MemAlign injizierte Erinnerung scheint genügend Kontext zu liefern, um sie „auf die gleiche Seite“ zu bringen.
Die Dual-Memory-Struktur von MemAlign veranlasste uns zu der Frage, ob beide tatsächlich zur Richteraustrichtung beitragen. Insbesondere soll der episodische Speicher dem Richter helfen, indem er eine Reihe der ähnlichsten annotierten Notebooks als Referenzpunkt gibt (unter Verwendung der Nearest-Neighbor-Suche). Aber was ist, wenn die abgerufenen Notebooks (nächste Nachbarn) nicht wirklich ähnlich zum aktuellen sind - nur die am wenigsten unähnlichen? Das Laden dieser in den Kontext des Richters könnte die Dinge eher verwirren als helfen. Der Problemraum, den wir bewerten (ML-Notebooks), ist sehr breit, und wir haben ursprünglich angenommen, dass eine Reihe von 50 Notebooks einfach nicht ausreichen würde, um eine ausreichend dichte Menge an Erinnerungen für den Richter zum Abrufen zu erhalten.
Ohne episodischen Speicher verschlechtert sich das Bild erheblich:

Dies war das Gegenteil von dem, was wir erwartet hatten. Wir hatten ursprünglich angenommen, dass unser spärlicher annotierter Datensatz den Richter verwirren würde, aber fast jede Dimension verschlechterte sich ohne episodische Erinnerung. Die einzige Ausnahme war die Datenexploration, bei der das Weglassen der episodischen Beispiele tatsächlich geholfen haben könnte - ohne die spezifischen Notebooks, bei denen sich unsere Annotatoren uneinig waren, hatte der Richter nur die destillierten Richtlinien und weniger verrauschte Signale zur Verfügung.
Die Quintessenz: Selbst wenn Ihre Eingaben groß und unordentlich sind, verbessert der episodische Speicher die Leistung des Richters drastisch. Sowohl semantische als auch episodische Erinnerungen sind für die Funktionsweise von MemAlign unerlässlich.
Zu beurteilen, ob ein Codierungsagent seine Aufgabe erfüllt, ist schon schwierig genug, während die Bewertung eines autonomen KI-Partners beim Aufbau und der Ausführung traditioneller ML-Workflows eine andere Komplexitätsebene darstellt. Aufgrund der schnellen Iteration bei KI-Produkten gibt es einfach nicht genug Zeit, damit Experten die „kontinuierliche Integration“ des Agenten überwachen können. Die einzig praktikable skalierbare Lösung sind LLM-Richter - aber wir brauchen immer noch eine Jury von Menschen, um den LLM-Richter im Zaum zu halten.
Durch die Anwendung von MemAlign haben wir den Richterfehler in den Dimensionen, in denen es am wichtigsten war, um 74–89 % reduziert. Aber wie bei jeder ML/LLM-Arbeit ist das Ergebnis nur so gut wie die Informationen, die Sie hineinstecken. Stellen Sie also sicher, dass die Kennzeichnung kompetent ist.
Schlussfolgerungen:
MemAlign wird mit MLflow ausgeliefert und hat für uns mit nur ~50 beschrifteten Beispielen funktioniert. Wenn Ihre LLM-Juroren nicht mit Ihren Experten übereinstimmen, ist es eine Nachmittagsarbeit wert.
(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag
Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.