{
  "video_id": "Xfl50508LZM",
  "channel_slug": "aidotengineer",
  "channel_handle": "aidotengineer",
  "title": "Ship Real Agents: Hands-On Evals for Agentic Applications — Laurie Voss, Arize",
  "duration_seconds": 7458.0,
  "url": "https://www.youtube.com/watch?v=Xfl50508LZM",
  "upload_date": "",
  "transcript": "Hallo zusammen.  Äh, mein Name ist Lori Voss.  Ich\nleite den Bereich Entwicklererfahrung bei\nAriseAI.  Ähm, in einem früheren Leben war ich\nMitbegründer von npm Inc. Einige von Ihnen\nerinnern sich vielleicht noch daran, als ich\nunaufhörlich über JavaScript gesprochen habe.  Jetzt rede ich\nunaufhörlich über KI.  Äh, worüber ich am\nmeisten nachdenke, ist, wie man KI-Systeme testet,\nwie man KI-Systeme entwickelt, die tatsächlich\nfunktionieren.  Äh, wir haben heute also eine lange\nZeitspanne.  Äh, wir werden also\nein breites Spektrum an Themen behandeln.  Äh, wir fangen\nmit den Grundlagen an.  Äh, was\nsind Evaluierungen, äh, warum braucht man sie und warum\nAgenten die Evaluierung schwieriger gestalten als ein\neinfacher LLM-Anruf.  Und dann richten wir das\nTracing ein, äh, damit\nerfassen wir die Rohdaten, die wir für die\nDurchführung der Auswertungen benötigen.\nWir werden außerdem einen einfachen KI-\nAgenten mit dem Claw-Agent SDK ausführen und uns die von\nihm erzeugten Spuren ansehen.\nSobald wir uns die Daten angesehen haben, werden wir\netwas tun, was die meisten\nTutorials auslassen.  Äh, wir werden uns\ndie Daten jetzt mal genauer ansehen.  Wir werden\nunsere Traces lesen, kategorisieren, was gut und was\nschlecht lief, und herausfinden,\nwas wir messen müssen, bevor wir eine\neinzige eval-Anweisung schreiben.  Dann werden wir\ndrei Arten von Auswertungen schreiben.  Wir werden\neinen einfachen,\ndeterministischen, billigen und leicht auszuführenden Code schreiben.\nWir werden einige der in Arisa\nintegrierten Auswertungsfunktionen verwenden.  Und dann werden wir die\nLLM-Bewertungen verwenden.  äh, wobei ein LLM äh\nden semantischen Inhalt des\nOutputs beurteilt äh und auf\neine flexiblere äh\nnicht-deterministische Weise feststellt, ob etwas erfolgreich war oder nicht.  Wir werden\ndie integrierte eval-Funktion verwenden und\naußerdem eine eigene eval-Funktion von\nGrund auf schreiben.\nUnd wir werden auch überprüfen, ob unsere\nJuroren richtig urteilen; dieser Prozess\nwird Meta-Evaluation genannt.\nUnd dann schließen wir mit Datensätzen\nund Experimenten ab.  So iterieren Sie\nIhren Agenten.  So nutzt man\nEvaluierungen, nicht nur um festzustellen, ob\netwas schiefgelaufen ist, sondern um den Agenten zu verbessern\n.  Äh, und am\nEnde werden wir einen kurzen Blick darauf werfen, was als Nächstes kommt,\nnachdem Sie diese Dinge gelernt haben.  Also,\npraktische Rahmenwerke, die Sie nach\nVerlassen dieses Raumes nutzen können, die\nWirkungshierarchie, das Daten-Flywheel, und ein\nkurzer Überblick über Techniken wie\npaarweise Auswertung und Zuverlässigkeitsbewertung.\nÄhm,\ndas ist die Folie, die ich\nwährend Ihrer Wartezeit eingeblendet gelassen habe.  Hände hoch, wenn ihr\ntatsächlich versuchen wollt, mitzuprogrammieren\n.\nWow, beeindruckend.  Es ist auch beeindruckend,\nwie viele Leute sich in diesem Raum befinden.  So, das\nist die letzte Sitzung des\nTages und sie dient der Auswertung.  Und wissen Sie,\ndass es um Bewertung geht?  Das ist\nnicht gerade das spannendste Thema.  Ich bin sehr\nstolz, dass du hier bist.  Äh, in diesem Workshop geht es aber\num die Bewertung eines Agenten.\nEs wird also nicht darum gehen, einen\nAgenten aufzubauen.  Ich gehe mal davon aus, dass Sie\nbereits einen Agenten erstellt haben und\nProbleme damit haben, dass er völlig aus dem Ruder läuft\n.  Das Lern-Notebook,\ndas Sie dort erhalten, enthält also\nbereits einen vorkonfigurierten Agenten.  Wir werden uns nicht damit befassen,\nwie man\neinen Agenten aufbaut und was einen\nguten oder schlechten Agenten ausmacht.  Wir werden\ndiesen Agenten, den ich bereits\ngeschrieben habe, evaluieren.  Wir werden\nClaude sowohl für die Steuerung des Agenten als auch für die\nDurchführung der Auswertungen verwenden.  Äh, ich habe mich für Claude entschieden,\nweil\nin den letzten paar Monaten scheinbar alle auf Cloud umgestiegen sind.\nIch hoffe, Sie haben bereits einen Cloud-Zugang oder ein\nCloud-Konto, sodass Sie sich jetzt nicht\nfür einen API-Schlüssel registrieren müssen.\nFalls doch, ist jetzt der richtige Zeitpunkt.\nWenn Sie OpenAI oder Gemini\nmit unseren Produkten verwenden möchten, können Sie dies tun. Da es sich um Open\nSource und offene Standards handelt, funktioniert es auch damit.\nDer Einfachheit halber habe ich jedoch keine Beispiele für die Verwendung von OpenAI oder Gemini in diese Informationen aufgenommen. Sie benötigen außerdem ein kostenloses Phoenix Cloud-Konto. Fenix ​​ist ebenfalls Open Source und läuft auf Ihrem Laptop. Da Fenix ​​Cloud keine Installation erfordert, ist es der\neinfachste Weg, schnell loszulegen.\nÄhm, unsere Logdaten werden an die Fenix ​​Cloud\ngesendet.  Äh, also Sie benötigen einen Fenix-\nAPI-Schlüssel, um die Berechtigung zu erhalten, es dorthin zu senden\n.  Ich\nhoffe, Sie haben die Links zu\ndiesen Folien, denn ich werde\nsie gleich weiterschalten.  Ähm, und eigentlich\nbrauchen Sie nur das eine zum Notizbuch,\nweil das Notizbuch die Links zu\nallem anderen enthält.\nÄh, der an diesem Punkt völlig\nverwirrt ist und etwas Hilfe benötigt, denn dafür habe\nich etwas Zeit eingeplant.\nStellen Sie ruhig Fragen, und machen Sie sich keine\nSorgen.  Ich habe mir Zeit dafür eingeplant, so zu\nfragen, als wüsste ich nicht, was das\nist.  Ich bin versehentlich beim falschen\nProdukt gelandet.  Apropos, Arise\nhat zwei Produkte.  Das eine heißt Arise AX, das andere\nArise Phoenix.  Wir\narbeiten heute mit Arise Phoenix zusammen.  Wenn Sie\nauf unsere Homepage gehen, finden Sie dort einen großen Button mit der Aufschrift „\nAnmelden“. Damit melden\nSie sich für AX an, das Enterprise-\nProdukt, und das möchten Sie nicht.\nWenn Sie völlig im Unklaren darüber sind,\nwo Ihr API-API-Schlüssel hingehört und wie\nIhr Hostname lauten könnte, liegt das daran, dass\nSie sich für das falsche Produkt angemeldet haben.\nMelden Sie sich also unbedingt für\nPhoenix an.  Äh, nachdem wir das nun geklärt haben,\noder zumindest während Sie\nnoch hektisch Dinge installieren, äh, lassen Sie uns\ndie Grundlagen behandeln.  Was ist eine Evaluierung?  Wer\nvon Ihnen meldet sich bitte? Er/Sie\nweiß bereits, was eine Evaluation ist.   So jemand\nweiß es wirklich.  Okay, super.  Sie sind\nim richtigen Raum.  Äh,\neine der Sachen, die mich an dem Begriff „\nevals“ als Fachgebiet stören, ist, dass wir eine ganze\nReihe von Wörtern verwenden, die aus MLAN stammen.  Wir\nverwenden eine Menge Fachbegriffe aus M\nMLAN, die KI-Ingenieure weder\nkennen noch verstehen müssen, was die Sache\nunnötig undurchsichtig macht.  Man kann also\nSpuren, man kann sich Ebals als\nTests vorstellen, denn genau das sind sie.  Und\ndie Grundlage unserer Tests bilden\nProtokolldaten.  Und die Protokolldaten nennen wir Traces.\nÄhm, genau\nwie Protokolle aufzeichnen, was Ihr Server\nzur Laufzeit getan hat, zeichnen Traces auf, was Ihre\nKI getan hat.  Jeder Agentenaufruf, jeder\nToolaufruf, jeder LLM-Invoc-Aufruf, sämtliche\nEin- und Ausgaben Ihrer KI-\nAnwendung werden als Traces aufgezeichnet.\nUnd die Bausteine ​​von Leiterbahnen werden\nSpannen genannt.  Jeder Abschnitt stellt\neinen Schritt in der Ausführung dar.  Ein LLM-\nAufruf ist also ein Span, ein Tool-Aufruf ist ein Span, und\nein vollständiger Agentendurchlauf ist ein Span, der\nandere Spans enthält.  Es handelt sich um\ndiese verschachtelte Datenstruktur, die man sich\nleicht als JSON vorstellen kann,\nweil sie die meiste Zeit JSON ist.\nJeder Span zeichnet seine Eingabe, seine\nAusgabe, aber auch eine Menge Metadaten auf.  Äh, also\nDinge wie Timing und Token-Zählung,\nToken-Zählungen, äh, Sachen, die man verstehen muss, um zu\nverstehen, was da vor sich ging.  Äh, und das ist\nIhr heutiges Denkmodell.  Sie\nschreiben Tests für eine schöne neue\nWelt von Anwendungen, die sehr schwer\nzu testen sind.  Es ist also keine Raketenwissenschaft.\nÄh,\nwozu brauchen wir die?  Der Grund, warum wir eine\nKI-Bewertung benötigen, liegt im Problem der Stimmungslage\n.  Viele Leute entwickeln eine KI-\nFunktion und testen sie, indem sie ein paar\nAbfragen ausführen und sich fragen: Sieht das plausibel aus\n?  Ähm,\ndann liefert man es aus und es versagt bei Eingaben,\ndie man nicht getestet hat.  Es versagt in\nGrenzfällen.  Es scheitert daran, dass die Leute\nfeindselig sind und Dinge hineinbringen,\ndie man nicht erwartet hat.  Äh,\nund es scheitert am häufigsten daran, dass die\nFragen der Leute dümmer sind, als man\nerwartet hat.  Das ist der Hauptgrund, warum\nAgenten scheitern: Menschen verwenden\nVokabeln, die man nicht erwartet hat, und\ntreffen dann auf einen Agenten, der eine\nReihe von Substantiven und Verben erwartet, die diese\nMenschen nicht kennen.  Ähm,\nder übliche Fix-Unit-Test funktioniert\nhier also nicht.  Der Grund dafür ist,\ndass dieselbe Eingabeaufforderung\nbei jedem Durchlauf einen anderen Text erzeugt, aber\ndiese verschiedenen Ausgaben\nkönnen alle korrekt sein.  Es gibt einen riesigen\nBereich potenzieller korrekter Ausgaben.\nMan kann also nicht einfach nur\nStringvergleiche durchführen, wie es die meisten Unit-Tests tun, um\nsicherzustellen, dass die Tests\nerfolgreich ausgeführt werden.  Deshalb greifen viele Teams\nauf die menschliche Überprüfung zurück.  Sie beobachten es,\nsie betreiben es, sie versenden es.  Und das ist\nnicht skalierbar, weil es Regressionen nicht erkennt\nund, was am wichtigsten ist,\nnicht in CI-Umgebungen läuft.\nWas Sie ohne V-Evaluierungen also nicht tun können, ist,\nIhre Systemansage nicht zu ändern, um\nein Tonproblem zu beheben, denn der Ton könnte sich zwar\nverbessern, aber plötzlich könnte der Bot\nProduktfunktionen halluzinieren, und\nohne Evaluierungen werden Sie das nicht bemerken.\nÄhm,\nohne eval kann man das nicht erkennen, denn bis ein\nBenutzer es meldet, meldet es der Bot nicht. Aber man\nkann etwas namens Faithfulness\neval durchführen, das einem sagt, ob der\nBot sein\nQuellmaterial aktiv und korrekt verwendet.  Und wir werden\neuch heute zeigen, wie man so etwas baut\n.\nUnd jede Änderung der Eingabeaufforderung kann potenziell\nAuswirkungen auf alle Arten von Eingaben haben, die Benutzer\nsenden.  Ein weiterer Unterschied zwischen KI-\nAgenten und Evaluierungsagenten besteht darin, dass bei\neiner Änderung der Eingabeaufforderung nicht\nnur die eigentliche Änderung beeinflusst wird\n.  Es verändert\nalles, was der Agent tut, weil er\ndie Eingabeaufforderung als\nBlock interpretiert.  Und er wird unvorhersehbare\nDinge tun, sobald Sie auch nur geringfügige Änderungen\nam Wortlaut vornehmen.  Äh, du willst also nicht das\neine reparieren und dabei etwas anderes kaputtmachen.  Mit „Uh“ und „eval“ können\nSie testen, ob\nalles so funktioniert, wie es soll,\neinschließlich all der Dinge, die\nes früher getan hat.  Äh, man kann auch nicht\nohne Evaluierung zwischen Modellen wechseln.  Und das ist\nsehr wichtig, denn die großen\nModelllabore bringen alle paar Monate ein neues Modell heraus\n.  Und die Modelle\nunterscheiden sich insofern deutlich, als man\nmerkt, dass sie nicht nur besser, sondern auch\nanders sind.  Äh, also eine Aufforderung, die\nfür Sonett 4.5 funktioniert hat, funktioniert nicht für Sonett\n4.6.  Und wenn man keine Evaluierungen hat, dann\nist das ein sehr teurer und umständlicher\nProzess, bei dem man\nalles, was man zuvor getestet hat,\nerneut testen muss, um zu sehen, ob es funktioniert.  Wenn\nman hingegen über eine Reihe von Evaluierungen verfügt, kann man einfach\neinen Regressionstest durchführen und so feststellen, ob ein\nUpgrade sicher ist oder nicht.\nUnd das ist nicht theoretisch, sondern von echten\nTeams, die echte KI-Agenten entwickeln,\ndie von Menschen ständig eingesetzt werden.  Dcript\nbolt anthropic itself with cloud code\nthis is how they do it.  Äh,\nsie haben alle nach dem gleichen Muster versendet.  Sie\nbegannen damit, schnell zu liefern und die\nDinge mit Gefühl zu überprüfen, und stellten fest, dass das\nnicht skalierbar war, und gingen dann zu formalen\nEvaluierungen über.  Äh, das ist also der Handlungsbogen, dem wir\nheute folgen werden.\nWie bereits erwähnt, gibt es zwei Arten von\nBewertungen.  Es gibt Code-Evals, das sind\ndeterministische Funktionen, die man\nselbst schreibt.  Das sind einfach nur grundlegende\nPython- oder TypeScript-Kenntnisse.  Äh, sie laufen in\nMillisekunden und da es sich nur um\nCode handelt, äh, kosten sie praktisch nichts, um ausgeführt zu werden\n.  Ähm, mit Code-Eval kann man so einiges anstellen\n.  Wenn die Ausgabe Ihres Agenten\nJSON sein soll, können Sie testen,\nob es sich um JSON handelt.  Sie können testen, ob\nes weniger als 500 Token sind.  Sie\nkönnen fragen, ob darin\ndie Sache erwähnt wird, nach der Sie gefragt haben.\nDer große Vorteil von Code-Eval ist,\ndass sie superschnell, supergünstig\nund absolut reproduzierbar sind.  Wenn Sie also\netwas Einfaches\ntesten müssen, brauchen Sie nicht jedes Mal einen LLM\neval-Befehl auszuführen.  Man kann\nmit Dingen, die im\nGrunde wie altmodische Unit-Tests aussehen, recht weit kommen,\nobwohl es viele Feinheiten bei der Zusammenstellung gibt,\ndie\nwir heute behandeln werden.  Der\nNachteil von Code-EV-Ventilen ist, dass sie, ähnlich wie\nUnit-Tests, fehleranfällig sind.\nWenn Ihre Ergebnisse komplex oder\nextrem nichtdeterministisch werden, werden\nSie feststellen, dass Sie\nauf die andere Art von Bewertungen zurückgreifen müssen, nämlich\nLLM als Gutachter.  Um\nmit LLM als Richter einen zweiten\nLLM zu verwenden, wird ein zweiter LLM verwendet, um die Leistung des\nersten LLM zu beurteilen.  Normalerweise verwendet man einen LLM, der\nleistungsstärker ist als der, den man\nin Produktion nimmt.\nMan bewertet seine Ergebnisse anhand eines\nBewertungsrasters.  „Rubrik“ ist ein weiterer\ndieser Begriffe, die die ML-Ingenieure\nda eingeschmuggelt haben.  Eine Rubrik ist einfach eine Reihe von\nRegeln.  Es kann sich im Grunde nur um eine Vorgabe handeln,\ndie all die\nDinge definiert, die Sie testen müssen.\nUnd weil LLMs auf einem LLM basieren und die Bewertungen von LLMs\nvon einem LLM gesteuert werden, sind sie viel\nflexibler.  Also, äh, kann man sagen, ob diese\nAntwort sachlich korrekt war?  Man kann sagen, ob\nes dem Originalmaterial treu geblieben ist\n.  Sie können fragen, ob der Tonfall\nfür die Interaktion mit einem Kunden angemessen ist.   Es gibt keinen\nUnit-Test, den\nman schreiben könnte, der den\nTonfall überprüft.  Aber ein LLM ist in solchen Dingen sehr gut\n.  Die Stärke der LLM-\nAbsolventen liegt darin, dass sie die Bedeutung verstehen und\nnicht nur einfache Zeichenketten.  Doch ein LLM-Abschluss als\nRichter bringt auch Kompromisse mit sich.  Die größte\nSchwäche ist, dass sie teuer sind,\nsowohl zeitlich als auch finanziell.\nUnd sie sind\nselbst nichtdeterministisch, was bedeutet, dass auch Ihr LLM als\nRichter falsch sein kann.  Sie müssen\nIhren LLM-Absolventen dazu anregen, Richter zu werden, und diese\nAnregung ist genauso kompliziert wie die\nAnregung, die Sie in Ihrer\nBewerbung selbst formuliert haben.  Sie müssen sich also die\nZeit nehmen, sicherzustellen, dass\nIhr LLM als Richter darauf ausgerichtet ist, dass Ihr\nLLM als Richter tatsächlich das beurteilt, was\nSie beurteilen wollten, und dass er dies auf\neine Weise tut, die Sie für\nrichtig halten.  Ähm, es gibt auch noch eine dritte Art der\nBewertung, nämlich die menschliche Bewertung.  Die\nBeurteilung durch Menschen ist der Goldstandard.  Es ist\ngroßartig.  Menschen sind am besten darin, zu beurteilen,\nob Dinge gut oder schlecht sind, und zwar nach den Maßstäben\nanderer Menschen.  Äh, das Problem ist,\ndass Menschen nicht skalieren.  Diese\nKomponenten müssen in der CI-Umgebung laufen, und zwar\ntausende Male am Tag.  Es gibt keine\nMöglichkeit, selbst wenn Sie bei Meta oder\nGoogle arbeiten und die\nBevölkerung eines kleinen Landes einstellen könnten, um Ihre\nBewertungen für Sie durchzuführen, dass es\nkosteneffektiv wäre, Menschen Ihre\nBewertungen durchführen zu lassen.  Äh, also, wofür wir\nMenschen einsetzen, ist, etwas zu erstellen, das wir – dazu werden\nSie später mehr hören – einen\ngoldenen Datensatz bekanntermaßen guter Antworten, anhand dessen\nSie dann Ihre Bewertungen beurteilen können\n.  Eine interessante Tatsache über menschliche\nAnnotatoren ist, dass sie,\nselbst wenn man Menschen mit der\nBeurteilung der Ergebnisse einer KI-\nAnwendung beauftragt, in etwa 50 % der Fälle\nfalsch liegen werden. Denn wenn man\njemanden einstellt, der nichts anderes tut, als den\nCode zu testen, wird er irgendwann müde.\nÄh, und äh, einfach die Müdigkeit führt dazu, dass sie in\netwa 50 % der Fälle Dinge übersehen.  Aber Kod-\nBewertungen, menschliche Bewertungen und LM als Richter –\ndas sind keine konkurrierenden Ansätze.  Es handelt sich um einander\nergänzende Ansätze.  Eine echte\nEvaluierungssuite wird alle drei gleichzeitig nutzen\n.\nDie Frage lautet also: Wann verwendet man\nwelches Mittel?  Äh, verwende Codeauswertungen, wenn das Ergebnis\ndeterministisch ist.  Formatvalidierung,\nLängenbeschränkungen, verbotene Ausdrücke,\nPflichtfelder – all diese\nDinge lassen sich sehr deterministisch\nüberprüfen.  Äh äh,\nund dann verwende LM-Richter, wenn du\nsemantisches Verständnis benötigst.  Wie bereits erwähnt,\nfragt eine Korrektheitsprüfung, ob\ndie Frage korrekt beantwortet wurde.  Eine\nTreuebewertung fragt, ob sich die Antwort bei der Beantwortung der Frage an das\nAusgangsmaterial und ausschließlich an das Ausgangsmaterial gehalten hat\n.  Und man muss die\nMenschen auch in den Entscheidungsprozess einbeziehen, um mögliche\nFehlermodi zu erkennen, die man vorher noch nicht gesehen hat.\nSie müssen sicherstellen, dass Ihre Bewertungen\nso durchgeführt werden, dass die Menschen sie für\nreal und richtig halten.\nÄh, weil auch LLM-Richter sich irren können.\nÄhm,\nund all das trifft auf jede\nAnwendung zu, die ein LLM für\nirgendetwas verwendet, aber Agenten machen es noch schwieriger,\nweil Agenten kaskadierende Fehler verursachen.\nÄh, und bei einem Agenten testet man nicht nur\neine Sache, sondern eine ganze Reihe\nvon Dingen.  Sie haben einen Agenten, der beliebig viele\nWege einschlagen kann.  Und\nein früher Fehltritt auf einem dieser Wege\nkann den Agenten in völlig\nfalsche Richtungen führen.  Wenn Sie sich also vorstellen, dass\nSie eine Auswertung haben,\ndie – Entschuldigung – einen Agenten hat, der\nToolaufrufe durchführt,\nmüssen Sie testen, ob der Agent\ndas richtige Tool ausgewählt hat, ob er die richtigen\nParameter an dieses Tool gesendet hat, ob er\ndie Ausgabe dieses Tools korrekt verstanden hat,\nund das ist nur das Hinzufügen eines einzigen\nToolaufrufs, wohingegen ein Agent mehrere\nToolaufrufe in einer einzigen Sitzung ausführen kann, und\njeder dieser Toolaufrufe ist auf die\nAusgabe des vorherigen Toolaufrufs angewiesen.  Äh,\nes wird also sehr, sehr schnell sehr kompliziert,\nweshalb man in der Regel\neinen LLM braucht, um sich mit dem Problem auseinanderzusetzen.  Äh äh,\nund dann gibt es noch Multi-Aent-Systeme.\nWenn Sie die Dinge nicht kompliziert\ngenug gestaltet haben, erhalten Sie zusätzliche\nKomplexitätsebenen, denn dann müssen Sie testen, ob\nmein Routing-LLM den richtigen\nSubagenten ausgewählt hat, bevor irgendetwas passierte,\nund ob mein\nSubagent richtig verstanden hat, was er\ntun sollte.  Wurden die\nInformationen korrekt zurückgesendet?  Hat es zum vorgesehenen Zeitpunkt aufgehört\n?  Äh, also all\ndiese Dinge stauen sich an und führen zu einer Kettenreaktion.\nÄh, ein Beispiel wäre, dass Sie Ihren\nAgenten bitten, einen Bericht über Tesla zu verfassen.  Äh,\nder erste Agent, der die Recherche durchführt, sagt so etwas wie:\n„Oh, ich nehme an, Sie müssen\nNikola Tesla kennenlernen.“  Es schreibt Ihnen, es schickt\nIhnen eine ganze Menge Informationen über,\nSie wissen schon, den Erfinder aus dem 18. Jahrhundert.\nUnd dann erstellen Sie eine Investitionsrechnung,\ndie ausschließlich darauf basiert,\nob Nikola Tesla ein guter Kerl war,\nund diese wird an Ihren Chef weitergeleitet,\nund niemand merkt es, weil der Agent\ndies alles autonom erledigt hat. Genau das ist\nder Kaskadenfehler, den wir\nzu vermeiden versuchen.\nÄh, aber Agenten können auch das Gegenteil tun.\nÄh, sie können Dinge auf eine Art und Weise richtig machen,\ndie man nicht erwartet hätte.  Eine der\nGefahren beim Verfassen von Beurteilungen besteht also darin, zu\npräskriptive Beurteilungen zu schreiben.  Man\nmöchte keine Auswertung schreiben, die besagt: „\nIch erwarte, dass zuerst Werkzeug A aufgerufen wird, dann\nWerkzeug B, dann Entscheidung C, und\ndann die Antwort“, denn der Agent\nkönnte einen Weg finden, schlauer zu sein\n.  Ähm, das kommt in der\nProduktion häufig vor.  Der Agent wird eine\nLücke finden oder er wird einen schnelleren Weg finden, das zu\ntun, was Sie gerade tun, oder das zu tun, was\ner gerade tut.  Insbesondere wenn Sie\nIhr Modell gerade erst aktualisiert haben, wird es\nDinge besser können als\nzuvor.  Es wird die Aufgaben in weniger Schritten erledigen.\nIhre Beurteilungen werden also scheitern, wenn sie zu\ndetailliert sind.  Ähm,\nja, und das ist ein schwieriges Problem.  Es\ngibt noch eine andere Möglichkeit, Evaluierungen\nin zwei Gruppen zu kategorisieren, nämlich\nFähigkeitsevaluierungen versus\nRegressionsevaluierungen.  Eine Fähigkeitsbewertung gibt\nIhrem Agenten also eine Herausforderung, die er meistern muss.  Du hast\nihm etwas gegeben, von dem du weißt,\ndass es darin schlecht ist und bei dem es\nhöchstwahrscheinlich scheitern wird.  äh, und Sie\ngeben ihm eine Schleife, in der es\nschrittweise besser darin werden kann, diese\nFähigkeitsbewertung zu bestehen.  Sobald bei einer Fähigkeitsbewertung 100 % erreicht wurden\n,\nwird aus der Fähigkeitsbewertung eine Regressionsbewertung.  Sie\nbauen das in Ihre\nTestsuite ein und stellen sicher, dass sie\nimmer noch die Dinge tun kann, die sie früher tun konnte,\nund Sie geben ihr eine neue\nFähigkeitsbewertung, bei der sie eine neue\nHerausforderung meistert und eine neue Funktionalität hinzufügt.  Im Laufe der Zeit, während Sie\nIhre Evaluierungssuite verwenden, werden Sie also\nständig\nFähigkeitsbewertungen in Regressionsbewertungen umwandeln.\nSo sieht ein Auswertungsergebnis aus.\nÄh, es ist ganz einfach.  Man kann sich\nein JSON-Objekt mit diesen Inhalten vorstellen,\ndenn genau das ist es.  Man erhält eine\nPunktzahl bzw. ein Etikett, das für Menschen\nlesbar ist.  Und die LLM-Richter fügen noch eine dritte\nSache hinzu.  Sie fügen eine Erklärung hinzu.  Ähm, Code-\nAuswertungen liefern keine Erklärungen, weil\nsie ja nur Code sind.  Du hast keine\nErklärung eingebaut.  Aber LM-Evaluationen sind insofern\näußerst hilfreich, als sie nicht\nnur sagen, warum etwas nicht stimmte\n.  Sie erklären, warum sie es für\nfalsch halten.  Wie wir sehen werden, ist dies\näußerst hilfreich beim Aufbau\nIhrer Evaluierungssuite.  Ähm,\nweil es einem sagen kann, was falsch war.\nEs kann Ihnen sagen, was gefehlt hat.  Es kann\nIhnen sagen, was der Agent\nanders hätte machen sollen.  Es gibt Ihnen Hinweise,\nwie Sie Ihre Aufgabenstellung verbessern können, was\näußerst hilfreich ist.  So\nsieht beispielsweise eine Erklärung aus einer echten Bewertung aus.\nIn diesem Fall lautete die Aufforderung an\nden Nutzer, nach Budget-\nReiseempfehlungen für Tokio zu fragen.  Und der\nLLM-Richter hat gesagt, dass zwar\nReiseempfehlungen gegeben wurden, aber\nnicht angegeben wurde, wie viel die einzelnen Dinge gekostet haben.\nWenn ich also gefragt werde, ob ich nach einer\ngünstigen Reise suche, dann ist das ein Misserfolg.\nDas ist ein wirklich feiner Unterschied,\nnicht wahr?  Denn wenn Sie beispielsweise fragen würden: „Hat es\nmir\nReiseempfehlungen für Tokio gegeben?“  Das hat es absolut\n.  Äh, aber es hat nicht alles so gemacht, wie\nich es angewiesen habe.  Es entsprach nicht den\nFeinheiten der ursprünglichen Anfrage.\nUnd genau diese Erklärung macht die\nAuswertung umsetzbar.  Du weißt ja, was du\nin der Aufgabenstellung korrigieren musst, weil du eine\nErklärung hast, die besagt, was\nschiefgelaufen ist.  Und noch nützlicher ist, dass Sie bei der\nAuswertung von Tausenden von Traces oder\nSpans\nMuster finden werden. Sie werden feststellen, dass Ihr\nAgent immer wieder bei der gleichen Art von Problem auf die gleiche Art und Weise versagt.\nDas gibt Ihnen einen Hinweis darauf,\nwas ein einmaliger Fehler ist, bei dem\nder Agent einfach seltsam und\nnicht deterministisch ist, und was ein\nsystematischer Fehler ist, der\nwahrscheinlich auf ein Problem mit Ihrer Eingabeaufforderung zurückzuführen ist.   Äh,\nwenn man eine Auswertung mit tausend\nSpuren durchgeführt hat\nund tausend Erklärungen erhält,\ndann muss man als Mensch\ntausend Erklärungen lesen, was ein\nneues Problem darstellt:\ntausend Erklärungen zu lesen\nund sie alle zu kategorisieren, ist ziemlich\nmühsam.  Also wird ein dritter LLM-Absolvent\nhinzugezogen.  Äh, und dann lässt man den LLM\ndie Erklärungen lesen und sie in\nKategorien einteilen, bis schließlich nur noch LLM-Kategorien übrig sind\n.\nDas ist also die vollständige Schleife, die wir\nbauen werden.  Die Instrumentierung ist der Ausgangspunkt\n.  Dort beginnt\ndie Datenerfassung.  Man erhält Spuren, wertet\nsie aus, kommentiert die\nAuswertungen und analysiert die Ergebnisse.\nUnd dann ändern Sie Ihre Eingabeaufforderung, Sie\nändern Ihre Anwendung, Sie verbessern\nIhre Anwendung und Sie fangen von vorne an.  Dann lasst uns mal\nmit der eigentlichen Auswertung beginnen.\nÄh,\nwer, der bei Phoenix unter Vertrag genommen werden möchte,\nist noch nicht bei Phoenix unter Vertrag?\nOkay.  Was brauchen Sie?  Wo genau\nhakt es bei dir?  Oder etwa nicht?\nOkay.  Entschuldigung.  Großartig.  Exzellent.\nSoweit ich das beurteilen kann, ist Phoenix bei allen eingerichtet\n.  Oder sie sind nicht mutig genug, die\nHand zu heben und zu sagen, dass sie es nicht sind.  Äh,\nwas ist denn nun Phoenix, nachdem ich jetzt schon seit, sagen wir,\nMinuten darüber rede?  Äh, Phoenix ist die\nOpen-Source-KI-Observability-Plattform von ARIS.   Es\nerfasst Ihre\nSpurendaten.  Es erfasst die von uns\ngenerierten Protokolle.  Also, jeder LLM-Aufruf, jeder\nTool-Aufruf, jeder Agentenschritt mit den\nEingaben und Ausgaben an jedem Punkt.  Äh,\nund es erfasst und speichert auch Ihre\nSpeicher, Ihre Auswertungen und bietet Ihnen eine Benutzeroberfläche zur\nUntersuchung all dessen.  Äh, und äh, es\nbietet Ihnen auch die Möglichkeit, äh,\nExperimente mit diesen Daten durchzuführen.  Äh, damit\nSie testen können, wie sich die Dinge verbessern\nund Ihre Anwendung optimieren können.\nWie ich bereits erwähnt habe, können Sie es\nlokal auf Ihrem Laptop ausführen, wenn Sie möchten,\naber wir verwenden heute Fenix ​​Cloud,\nda dies die Installation von\nSoftware überflüssig macht.\nSchauen wir uns also unser eigentliches Notizbuch an.\nÄh, als\nErstes muss man pip installieren.\nWir installieren das Cloud-Agent-SDK.\nWie bereits erwähnt, installieren wir das Open\nInference Instrumentation Cloud Agent\nSDK.  Das ist die Magie.  Jedes SDK,\njedes Framework, das es gibt, verfügt über ein\nvon uns geschriebenes Integrationspaket, das\nautomatisch instrumentiert wird\nund mit dem Sammeln von Protokollen von diesem\nFramework beginnt.  Deshalb ist Arise Phoenix\nso nützlich, weil man sich nicht\nin die Tiefen des eigenen Frameworks oder\nin die Tiefen von OpenAI, Claude oder\nGemini vertiefen muss, um Protokolle zu erhalten\n.  Die Entwickler dieser Software\nhaben sich bereits für diesen Open-\nSource-Standard namens Open Inference entschieden\nund alle entsprechenden\nLogzeilen bereits integriert.  Sie müssen also nur noch festlegen, dass\ndie Protokolle\nan einen bestimmten Ort gesendet werden sollen.  Äh, und genau das werden\nwir gleich tun.  Ähm, kommen wir also zum allerersten\nAnruf.  Ähm,\nwir haben äh diese äh API-Schlüssel.  Meine API-\nSchlüssel wurden über Collab Secrets abgerufen.\nÄh, aber du kannst sie einfach einfügen,\nweil ja niemand deinen\nBildschirm sieht, richtig?  Du bist allein in diesem\nRaum.  Und diese beiden\nCodezeilen sind der Clou.  Du importierst Phoenix.\nÄh, und Sie rufen die Kasse an.  Man gibt dem\nProjekt einen Namen.  So erfährt man, unter welchem\nNamen es in äh\n, Fenix, angezeigt wird.  Äh, und Sie sagen ihm, dass Auto\nInstrument gleich wahr ist.  Und das ist der\nmagische Befehl, der ihm sagt, er solle in die\ninternen Abläufe eintauchen, wo man bereits weiß, wie man\nDinge tut.  Und schalte alle Protokollierungsfunktionen ein\n.  Äh, es beschwert sich in\ndieser Fehlermeldung, weil es\neinen Span-Prozessor verwendet, der zwar\nfür Demos gut ist, aber nicht für den Produktiveinsatz.\nIm Produktionsbetrieb erhalten Sie\nTausende von Spannweiten gleichzeitig.  Sie möchten also\neinen Stapelverarbeitungsprozessor verwenden.  Äh, aber darum geht es hier\nnicht.  Also, äh, in\ndiesem speziellen Fall spielt es keine Rolle.\nÄhm,\nja, wir haben auch Anthropic\nin die Importe aufgenommen, weil wir\nAnthropic als eigentliches\nLLM verwenden, das das LMS als Richter steuert.\nDeshalb müssen wir es separat vom\nAgent SDK einbinden.\nDas Cloud Agent SDK ist, falls Sie\nes noch nicht verwendet haben, ein sehr, sehr einfaches Framework\nzum Erstellen von Agenten.  Deshalb habe ich\nes ausgewählt, weil es schön und einfach ist\nund nicht viel\nZeremoniell erfordert.  Ähm, die Agenten können\ndie Tools nutzen, sie können\nim Internet suchen, sie können die Konversation\nüber mehrere Gesprächsrunden hinweg aufrechterhalten, was im Grunde alles ist, was\nmein Agent für\ndieses Beispiel können muss.  Um OpenAI hat ein\neigenes Agenten-SDK.  Und natürlich\ngibt es ganze Agenten-Frameworks wie\nCrew AI, Line Chain, Master, Lama Index,\nall diese Dinge, mit denen man viel\nkomplexere Agenten erstellen kann.  äh, und wir haben\nInstrumentierungspakete für alle davon\n.  Egal, welchen Agenten Sie erstellt haben\n, Sie können die gleichen zwei\nCodezeilen verwenden und ihn einfach aktivieren.   Ähm, also äh,\nSie können diesen\nAnruf jetzt durchführen.  Ähm, eine\nFrage.\nSicher.\nIch konnte nicht finden, wo ich die\nAPI generieren kann.\nKann ich das tun?  Das ist mir auch passiert\n.  Ähm,\ngeh zu Leerzeichen.\nJa, man muss vorher einen Speicherplatz initialisieren\n.\nEinfach den Raum starten, und genau das\nwill man.\nDanke schön.\nGroßartig.\nDie Frage ist eigentlich berechtigt.\nSicher.\nWas ist das Fenix ​​Collector Endoint?\nDer Phoenix-Collector-Endpunkt ist das, was\nich als Hostnamen bezeichnet habe.  Äh, also\nes ist ähm\napp.fsyou\nBenutzername.   In Ordnung\n.\nÄh, braucht sonst noch jemand Hilfe bei solchen\nSachen?\nCool.  Hier ist es warm.  Ähm\n, also schauen wir uns den eigentlichen Agenten an.\nHeute entwickeln wir einen\nFinanzanalyse-Agenten.  Äh, ein wirklich sehr einfacher\nAgent.  Es hat nur zwei Unteratents.\nÄh, es gibt einen Agenten, der Recherchen durchführt.\nwenn Sie ihm ein Börsenkürzel oder eine Reihe\nvon Börsenkürzeln geben.  Es wird im\nInternet nach Informationen über\ndiese Unternehmen suchen.  Und dann werden\ndiese Informationen an den zweiten Teil\ndes Agenten weitergeleitet, der einen prägnanten\nFinanzbericht über diese Recherche verfasst.\nEin echter Finanzanalyse-\nAgent, also etwas, das ständig im Produktiveinsatz entwickelt wird, wird natürlich auf\nwesentlich komplexere Datenbanken\nzurückgreifen können.  Es wird viel mehr beinhalten, es wird\nnicht nur um Websuchen gehen.\nUnd es wird auch in der Lage sein,\nwesentlich komplexere Berichte zu schreiben.  Äh,\naber genau das ist im Grunde das, was wir davon verlangen werden\n.\nUnd hier ist, wie die beiden Windungen\nverbunden werden.  Sie können sehen, dass die Cloud, genauer gesagt das\nCloud Agent SDK, den Konversationskontext aufrechterhält\n.  Äh, also, bei der ersten Stufe wird\nrecherchiert.  In der zweiten Runde geht es darum, einen\nBericht zu schreiben.  Und weil beide\nin dieser Zeile den Claw SDK-Client verwenden,\nwird der Kontext vom ersten zum zweiten geteilt, und\ndas ist im Grunde alles, was man über die\nFunktionsweise dieses Agenten wissen muss.  Ich werde jetzt nicht auf\ndie Details des Standardcodes eingehen,\nder lediglich die Ausgabe steuert\n.  Als\nNächstes legen Sie Ihre API-Schlüssel fest.  Wie\ngesagt, du hast das alles schon erledigt.\nÄh,\nSie haben den Registrierungsschritt abgeschlossen.  Äh, und äh,\nich möchte es nochmals betonen: Wenn sich hier\njemand befindet, der eine Fenix ​​AX benutzt, dann\nist er hier falsch.  Du solltest dich\nentschuldigen.  Wenn Sie Arise AX verwenden, sollten Sie\nArise Phoenix verwenden.  Aber ich denke, das hat\njetzt jeder drauf.\nEs leitet Sie von einem zum anderen weiter.   Ach\nwirklich?   Oh ja\n.  Äh, die Registerfunktion haben wir ja\nschon gezeigt.  Die Registerfunktion\nzum Einrichten offener Telemetrie.  Open\nTelemetry, auch Hotel-Telemetrie genannt, wird von\nallen großen Observability-\nAnbietern genutzt.  Alle, die\nLogging betreiben, Kubernetes-Logs erfassen oder ähnliches,\nerledigen dies über das Hotel.  Es gibt eine\nEbene über dem Hotel-Modell namens\nOpen Inference, die\ndem Hotel-Modell viele Erweiterungen hinzufügt, die LLM-\nspezifisch sind.  Also, Dinge wie Eingabeaufforderungstext,\nVervollständigungstext, Token-Zählung, welches\nModell aufgerufen wurde, welche Tools\naufgerufen wurden, all diese Dinge werden\nvon der Open Inference\nExtension to Hotel verwaltet, für die jeder\nentwickelt.  Äh,\nund jetzt bauen wir unseren Agenten auf.  Wie\ngesagt, das sind diese beiden Schritte.  In\ndiesem Abschnitt geht es lediglich darum, unsere\nAgenten einzurichten.  Äh, wir haben ein Haiku erstellt, wir verwenden\nClaude Haiku.  Der Grund, warum wir\nClaude Haiku verwenden, ist, dass es zuverlässig\ndumm ist.  Das ist kein besonders guter Agent.\nEs wird also einige Fehler machen, die\nmir dann als Grundlage für Tests dienen\n.  Äh, und ich habe ein\nerlaubtes Werkzeug angegeben, nämlich die Websuche.  Äh, und\nich habe auch den Berechtigungsmodus aktiviert,\nBearbeitungen zu akzeptieren.  Äh, weil es sonst ständig versucht hat,\nmich aufzufordern,\nDateien zu ändern, was sich als\nFehler herausstellte, auf den wir\nspäter noch eingehen werden.  Ähm, also es ist günstig und schnell\nund eignet sich hervorragend für Demos wie diese.  Äh,\nund das sind unsere beiden Aufgaben: recherchieren\nund einen Bericht schreiben.  Ähm,\nund das alles kapseln wir in einer asynchronen\nFunktion namens Finanzbericht.  Äh,\ndas ist alles, was wir brauchen, um einen Agenten zu erstellen.\nÄhm,\nwir machen hier auch diese Zeile, womit wir das Ganze\nin einen offenen\nTelemetrie-Span einbetten.  Der Grund dafür ist, dass\nstandardmäßig der\nerste und der zweite Schritt, der\nRechercheschritt und der Berichtsschreibschritt,\nin Phoenix als separate Traces angezeigt werden,\nda es sich um separate Agentenläufe handelt.\nWir teilen dem Agenten also mit, dass\nbeide als ein\neinziger Agent zu betrachten sind, der eine einzige Aufgabe erfüllt.\nWir formatieren unsere\nDaten also vor, um die Handhabung durch den\nAgenten zu vereinfachen.\nUnd damit können wir unseren\nAgenten starten.  Wenn Sie Ihren Agenten jetzt starten,\ndauert das ein bis zwei Minuten.\nSie können dem Programm auch ein eigenes Börsenkürzel\nund einen eigenen Fokusbereich zuweisen, wenn Sie möchten.\nIch habe es Tesla gegeben.  Äh,\nund das ist, was es mir angezeigt hat.  Es wurde\neine Art Standardmeldung ausgegeben, die beschrieb, was es\ntat.  Es handelte sich um eine Recherche.  Es war\nSchreiben.  Und dann wurde mir eine\nZusammenfassung über Tesla angezeigt.\nWir bitten also konkret darum,\ndie finanzielle Performance\nund die Wachstumsaussichten von Tesla zu analysieren.\nUnd man kann sehen, dass der LLM ganz\noben mehrere Argumentationsrunden durchführt.\nBevor es zum eigentlichen Schreibprozess kommt, werden mehrere Rechercheschritte durchgeführt.  Äh,\nwas im Hintergrund passiert, ist, dass\neine Reihe von Websuchen durchgeführt wird.  Es führt\neine Websuche durch.  Es geht darum herauszufinden,\nob diese\nSuchanfragen nützliche Informationen geliefert haben.  Es führt\nmehr Websuchen durch.  Es geht noch weiter ins\nDetail.  Äh, es macht das, was ein\nAgent macht.  Es ist auf\nnicht-deterministische Weise hilfreich.\nUnd das ist wichtig, denn wir hätten keinen\nTest schreiben können, der behauptet, eine\neinzige Websuche durchzuführen und alle\nAntworten zu finden.  Wir hätten keinen\nTest durchführen können, der behauptet, fünf Websuchen durchzuführen\nund eine Antwort zu finden, weil wir schlichtweg\nnicht wissen, was er tun wird.\nSobald die Recherche abgeschlossen ist,\nsenden wir die Schreibanregungen und das System fasst\nalles in einem Bericht zusammen.  Und all das\nist nicht deterministisch, und\ndas ist cool.\nÄhm, und deshalb brauchen wir eval, wie ich schon\nsagte, äh, weil wir den\nOutput nicht allein aus dem Input vorhersagen können und jede einzelne\ndieser Entscheidungen äh\nals Trace erfasst wird, den wir\ntesten können.  Ähm,\ndas ist also das Ergebnis.  Highlights des 4. Quartals 2025\n, Finanzausblick 2026, wichtigste\nWachstumstreiber, Risikobewertung,\nfantastisch.  Äh, für mich sieht das ziemlich seriös aus\n.  Ähm,\naber „ziemlich seriös“ reicht nicht aus, um\netwas in die Produktion zu überführen.  Das ist der\nganze Sinn der Bewertung: Die\nStimmung ist gut, aber wir wollen es\nbesser machen als diese Stimmung.  Äh, mal sehen, was\nPhoenix aufgezeichnet hat, als ich diesen\nAgenten laufen ließ.\nSo sieht die Fenix-Benutzeroberfläche aus.\nJede dieser Zeilen stellt eine\nSpanne dar.  Also, äh, auf der obersten Ebene\nsieht man die Eingabe und Ausgabe des\ngesamten Agentenbereichs.  Das war das Ding, um das\nwir diese Verpackung gemacht haben.  Sie\nsehen, dass dort stand, man solle Tesla recherchieren und sich\nauf die finanzielle Leistungsfähigkeit und die\nWachstumsaussichten konzentrieren.  Und Sie erhalten die\ngleiche Ausgabe, die wir in der\nKollaboration gezeigt haben.  Äh, aber im Inneren kann man\nall die einzelnen Bestandteile sehen.\nWie Sie in diesem Fall sehen können, wurden\nvier verschiedene Websuchen durchgeführt.  Es\nhinterfragte die finanzielle Leistungsfähigkeit und die\nWachstumsaussichten für die Zukunft bis 2026.  Es wurden\nQuartalsergebnisse, Umsatz,\nGewinnmargen und die\nNachfrage nach Cybertruck-Produktion und Roadster im Jahr 2026 abgefragt,\nwas meiner Meinung nach für Tesla im Jahr 2026 besonders beunruhigend ist.\nMan kann die zwei Schritte sehen: den ersten, in dem\ndie Recherche durchgeführt wurde, und den zweiten, in dem\ndie Ergebnisse präsentiert wurden.\nÄh, also alle Schritte, wirklich alles, was\nIhr Agent getan hat, wird\nin der Phoenix-Benutzeroberfläche erfasst.\nUnd das ist der Schlüssel zur Beobachtbarkeit.  Wir\nkönnen beobachten.  Wir können sehen, was zum Teufel da vor sich geht\n.  Genau das wollten wir erreichen können\n.  Die Spuren offenbaren jede Entscheidung, die\nder Agent getroffen hat.\nUnd Sie können in jeden beliebigen Bereich klicken und\ngenau sehen, was das Modell als Ausgabe erhalten hat\n.  Wie gesagt, ähm, und all das\nZeug.  Äh,\nkehren wir nun zu den Folien zurück.  Äh, was\nlebt in einer Spanne?  Wir haben eine ganze Menge Zeug\n.  Äh, wenn Sie in einen Span\nselbst klicken, können Sie die genauen Details\neines Spans abrufen.  Sie können also äh, Anmerkungen und\nAttribute sehen.  Wie gesagt, im Hintergrund steckt eine Menge\nJSON.  Dies ist eine\ntatsächliche Spannweite.  Das heißt, man kann sehen, dass\nda Kosten mit drinstecken.  Dort ist angegeben, welches\nModell verwendet wurde.  Da ist die\nAnzahl der Tokens, wie viele Vorgänge es durchlaufen hat.\nUnd dann sind die Ausgabemeldungen riesige\nBlöcke.  Äh, und noch eine ganze Menge anderer\nSachen.  Also, äh\n, was Phoenix hier für Sie tut, ist, dass es\ndiesen Text viel lesbarer macht,\nals er es standardmäßig wäre.  Ähm,\naber nur eine Spanne, nur ein Agentenlauf reicht\nnicht aus.  Wir möchten die Möglichkeit haben,\nmehrere Spannen zu erstellen.  Wir wollen eine ganze\nMenge Daten sammeln, um zu wissen, was vor sich geht\n.  Im Notebook befinden sich 12\nTestabfragen, die Sie ausführen können.  Es\nbenötigt einfach eine ganze Reihe von Tickersymbolen\nund eine ganze Reihe von Fokusbereichen und\nführt diese in einer Schleife aus, wobei der\nAgent 12 Mal ausgeführt wird.  Ähm,\nich habe diese Tests bereits im Voraus durchgeführt,\nweil das sehr lange dauert.\nAber du solltest sie jetzt starten, und\nwährend ich spreche, laufen sie im\nHintergrund für dich.  Es sollte ungefähr\nfünf Minuten dauern, aber die Zeiteinteilung ist bei solchen Sachen\nknifflig.  Äh, deshalb habe ich mich auch für Haiku entschieden,\nweil es schnell geht, weil man dabei nicht so viel\nnachdenken muss.\nUnd während wir das tun, können wir\nzu unseren Folien zurückkehren und etwas\nTheorie behandeln.  Also,\nwir haben Einzelwertanalysen mit\nunterschiedlichen Schwerpunkten: Finanzielle\nLeistung, Umsatzwachstum,\nWettbewerbsumfeld, KI-Strategie und eine\nVergleichsanalyse, bei der ich\nzwei Aktien gleichzeitig betrachtet habe.  Ich habe\nes nach Apple und Microsoft gefragt und es gebeten,\ndie beiden zu vergleichen.  Äh, das bietet uns\ndie Vielfalt, die wir brauchen.  Es ist\nwichtig, eine Vielzahl\nmöglicher Anwendungsfälle für diesen Agenten zu testen und zu prüfen,\nwie er sich in diesen Fällen verhält.  Äh,\nin realen Daten hätte man nicht einfach 12 davon\n.  Sie kämen auf mehrere hundert davon, wenn man bedenkt, was\nSie den Leuten alles mit diesem Agenten vorsetzen\n.  Und es ist sehr wichtig, auch\ndie Sonderfälle zu berücksichtigen.  Die\nvergleichende Analyse von Apple und Microsoft\nist beispielsweise viel schwieriger als eine einfache\nAbfrage eines einzelnen Börsenkürzels, da\nzwei Recherchen zu zwei verschiedenen\nUnternehmen durchgeführt werden müssen, ohne diese zu verwechseln,\nund anschließend gleichzeitig ein Bericht über beide verfasst werden muss\n.  Die\nAnfrage zu Rivian bezieht sich beispielsweise auf ein Unternehmen,\ndas noch nicht börsennotiert ist.  Es gibt also\ndeutlich weniger offensichtliche Datenquellen,\nwoher es solche Informationen beziehen kann.\nDie Coca-Cola-Analyse (KO) ist eine\nganz andere Art von Analyse als die\nAnalyse von Wachstumsaktien.  Wenn wir also nur\nauf Apple und Nvidia testen würden, könnten wir ein\nfalsches Vertrauen in die Leistungsfähigkeit unseres\nAgenten bei der Finanzanalyse gewinnen,\nda es sich um riesige Technologieunternehmen handelt, über die\nviele Informationen online verfügbar sind.\nWährend Leute, die dies für die eigentliche Aktienanalyse nutzen, Fragen\nzu viel weniger bekannten Unternehmen und\nviel komplexeren Fragestellungen stellen werden.\nWährend Sie das Programm ausführen, werden Sie sehen, wie sich\nIhre Spuren anhäufen.  Meine Leiterbahnen\nsehen im Moment viel komplizierter aus als deine\n.  Mach dir darüber keine Sorgen\n.  Wir werden alle\nKomplikationen nach und nach hinzufügen.  Deine\nReihen werden im Moment noch sehr kurz sein\n.  Äh äh,\njetzt könnt ihr alle 13 sehen, weil ich\n12 plus das Original laufen ließ.  Die\nursprüngliche Tesla-Abfrage ist vorhanden.  Und\nbevor wir irgendwelche Auswertungen schreiben, müssen wir uns\ndie Daten ansehen.  Genau das hatte ich zu\nBeginn als unser Vorhaben angekündigt.\nViele Leute winken\ndie Daten einfach ab, so wie du deine\nDaten betrachtest.  Was bedeutet das genau?  Äh,\nwenn man eine richtige Evaluierungssuite schreibt, sollte man äh\nregelmäßig Traces lesen.  Das ist nichts,\nwas wir nur im Labor machen.  Das ist nichts, was man\nnur theoretisch tut.  Sie\nmüssen die Traces lesen, wenn Sie\nIhre ersten Auswertungen zusammenstellen,\ndenn nur so können Sie herausfinden, was der\nAgent tatsächlich produziert und was Sie\neigentlich testen sollten, da sein Verhalten\nso nicht deterministisch ist.  Was war die\nEingabe?  Was war das Ergebnis?  Was\ngenau ist kaputt?\nAnthropic hat beispielsweise eine\nMenge Zeit und Geld in Tools investiert, die\nes ihnen sehr, sehr einfach machen,\nihre Agentenauswertung\nund die Ausgaben ihrer Agenten zu lesen.  Genau das\ntun wir hier für Sie.  Wir\nstellen Ihnen diese Werkzeuge zur Verfügung.  Ähm, also äh,\nman braucht zuerst Anforderungen, bevor\nman Fehler kategorisieren kann.\nÄh, du musst wissen, wie Erfolg aussieht\n.  Eine häufige Fehlerquelle bei Evaluierungen\nist das Stellen von Fragen, die zu\nallgemein sind oder einen Kontext erfordern, über den\nIhr Agent nicht verfügt.  Äh, man kann also nicht\nsagen, dass es nicht funktioniert.  Das geht nicht, wenn\nman nicht definiert hat, was „funktioniert“ bedeutet.\nWie sieht also ein guter Bericht für unseren Finanzanalysten aus\n?  Man kann nicht einfach\nsagen, der Bericht müsse gründlich sein.  Man kann\nnicht einfach sagen, der Bericht solle\nausführlich sein.  Was bedeutet das?  In\ndiesem Fall möchten wir also, dass unser Vertreter bzw. unser Agent\nkonkrete Handlungsempfehlungen gibt.  Wir\nmöchten, dass es uns sagt, ob wir\ndie Aktie kaufen sollten oder nicht.  Das ist eine\nganz bestimmte Sache, die wir können müssen\n.  Es sollte also in der Lage sein,\nzwischen zukunftsorientierter\nAnalyse und historischer Zusammenfassung zu unterscheiden.  Äh,\nweil das unsere Erfolgskriterien sind.\nUnd wie ich schon sagte, das ist keine\nRaketenwissenschaft.  Das klingt nach Selbstverständlichkeiten\n.  Äh, aber man muss diese\nDinge im Voraus definieren und die Anforderungen schriftlich festhalten,\ndenn sonst hat man\nvage Bewertungen, die im Grunde\neinem Münzwurf gleichen.  Du fragst dich dann, ob es\ngut lief oder nicht.  Der Agent weiß es nicht,\nweil ihm nicht genügend\nKontextinformationen vorliegen.  Es verfügt nicht über genügend Regeln, um zu\nentscheiden, ob etwas gut oder\nschlecht ist.  Äh, und das ist keine rein\ntechnische Übung.  Hier\nsollten Sie Ihre Stakeholder einbeziehen.\nHier sollten Sie\nFachexperten hinzuziehen.  Hier\nsollten Sie Ihre Produktmanager einbeziehen\n.  Hier sollten Sie\nIhre eigentlichen Nutzer einbeziehen, denn\nsie sind es, die wissen, wie ein gutes Ergebnis aussieht\n.  Der Ingenieur, der\nIhren Agenten anschreibt, ist nicht unbedingt\nder beste Beurteiler dafür, wie ein gutes\nErgebnis aussieht.  Sie könnten sagen: „Oh,\ndas sieht für mich legitim aus.“  Ein\ntatsächlicher Nutzer würde hingegen sagen: „Das ist\nvöllig nutzlos.“  Äh, also es ist sehr\ninterfunktional.  Ähm,\nund äh, wenn man nicht definieren kann, was „großartig“\nbedeutet, wird man auch nicht in der Lage sein,\näh, eine Auswertung zu schreiben, die überprüft, was „\ngroßartig“ ist.  Hier also ein kurzer Hinweis, wo man\nTestdaten erhält.  Ähm, wir haben in diesem\nWorkshop Produktionsspuren, weil wir\nden Agenten bereits ausgeführt haben.  Äh, was ist, wenn\nman etwas ganz Neues baut?\nWas ist, wenn Sie sich in der Entwicklungsphase befinden und\nkeine echten Benutzer haben, die\nIhnen echte Trace-Daten liefern können?  Äh, die Antwort lautet:\nsynthetische Daten.  Ziehen Sie noch einen weiteren LLM hinzu und\nlassen Sie ihn eine Reihe von\ngefälschten Abfragen generieren, die bewusst ein möglichst breites\nSpektrum an Anwendungsfällen abdecken, um\nechte\nTraces zu erzeugen, die testen, was Ihr Agent\ntun würde, wenn Sie ihm diese Daten geben würden.  Äh,\ndie Beispiele, die ich mag, sind zum Beispiel:\nWenn man so etwas wie einen\nFinanzanalyse-Agenten einer Gruppe von echten\nNutzern gibt, wird einer von ihnen fragen: „\nUntersuchen Sie die finanzielle\nPerformance von Tesla.“  Man wird sich fragen, was\nmit der Tesla-Aktie los ist, was im Grunde die\ngleiche Frage ist, nur völlig\nanders formuliert.  Einer wird sich fragen: „\nHey, ist Tesla im Moment ein Kauf?“  Äh, das\nist im Grunde dieselbe Frage, nur anders formuliert\nfür die Generation Z. Äh, aber sie verfolgen alle dieselbe\nAbsicht, sehen aber sehr unterschiedlich aus.\nDie Ergebnisse können also unterschiedlich ausfallen oder auch nicht\n, und das werden Sie erst wissen, wenn Sie\nIhre Auswertungen durchgeführt haben.\nÄh, wir müssen auch\nSonderfälle berücksichtigen.  Also, nicht existierende Ticker,\nMultiart-Fragen, Jailbreak-Versuche,\nkonfrontatives Zeug.  Ähm, sie machen vielleicht nur\n1 % Ihres Traffics aus, aber es sind genau diese\n1 % Ihres Traffics, die am Ende\nauf Twitter landen, wenn Ihr Agent\nvöllig durchdreht.  Äh, Ihre\nTestdaten sollten also wie Produktionsdaten aussehen\n.  Die beste Quelle für Evaluierungsdaten bzw.\nTestdaten ist die Produktionsumgebung.  Schick den\nAgenten in die Produktion und hol dir ein paar\nSachen.  Wenn das zu riskant ist, dann\nsind synthetische Daten die nächstbeste Option.\nNun wollen wir diese Spuren genauer untersuchen.  Wenn\nSie es im\nHintergrund ausgeführt haben, sollten Sie die\nErstellung dieser Traces wahrscheinlich inzwischen abgeschlossen haben.   Also\n, mal sehen, was Apple gemacht hat.\nIch wollte in der Lage sein, gezielt nach\nbestimmten Dingen zu suchen, die auf\nbestimmte Weise schiefgelaufen sind. Deshalb sind alle meine\nDaten vorab generiert, weil sie ja\nnicht deterministisch sind.  Ich konnte also nicht\nvorhersehen, dass es schiefgehen würde.   Also\n, Apples Version hat etwas wirklich Lustiges gemacht\n, nämlich eine ganze Menge\nForschung betrieben.  Und dann versuchte es,\ndie Ausgabe in eine Datei zu schreiben, weil es dachte,\nes handele sich um verschlüsselten Code, und es dachte sich wohl: „Oh,\nSie wollten einen Bericht, also werde ich\nIhnen eine Markdown-Datei auf der Festplatte erstellen.“  äh und dann hat es äh also komplett\nversucht, das Schreibtool aufzurufen, und ist dann\nkomplett gescheitert, weil es\nin einem Notebook ausgeführt wurde, das keine Schreibberechtigungen hat\n.  Und das war ein echtes\nVersagen des Agenten, das ich bei der\nErstellung dieser\nDemo nicht vorhergesehen hatte.  Ich hatte nicht erwartet, dass es\nversuchen würde, auf die Festplatte zu schreiben.  Ich habe es nicht dazu aufgefordert\n.  Äh, ich war einfach zu ungenau\nin meinen Anforderungen an den\nBericht.  Schreibe einen Bericht in die\nAusgabe, nicht auf die Festplatte.  Äh,\nwas ist denn nun genau bei\nApple passiert?  Was stand da?  Es enthielt\neinen kurzen Finanzbericht, aber es wurde nicht\ngesagt, ob ich es kaufen sollte oder\nnicht.  Da stand lediglich, dass das Unternehmen in Bezug auf kurzfristige\nRentabilität und Marktkapitalisierung dominiert, was zwar\nschön ist, aber nicht das, was ich wollte, richtig?  Ich\nwollte eine Information, die mir sagt, ob\nich diese Aktie kaufen sollte oder nicht.  Der\nNvidia-Bericht war ebenfalls sehr\ngründlich, enthielt aber keine konkreten Handlungsempfehlungen.  Es hat\nmir nicht gesagt, ob ich es kaufen soll oder nicht.\nÄhm, wir haben auch andere gezeigt, die interessant waren.\nÄh,\nschauen wir uns mal das von Nvidia an, das\nist nämlich cool.\nWo habe ich Nvidia eingefügt?  Da ist es ja.  Äh,\nes wurden also vier Websuchen durchgeführt, äh,\neinschließlich der Wettbewerbslandschaft,\nbestimmter Konkurrenten und so weiter.   Ähm\n, und es hat die Ausgabe tatsächlich\nkorrekt erzeugt.  Es schrieb die Ausgabe an den\nAgenten selbst.  Ähm,\naber genau deshalb muss man seine\nTraces lesen, denn wenn ich\nmeine Traces nicht gelesen hätte und mich\nnur auf die Ausgabe verlassen hätte, wäre die Ausgabe\ndes Apple-Geräts, bei dem versucht wurde, auf die\nFestplatte zu schreiben, völliger Müll.  Aber es liegt\nnicht daran, dass der Bericht nicht\nkorrekt verfasst wurde.  Es enthielt alle\nbenötigten Daten.  Es hat alle Websuchen\nkorrekt durchgeführt.  Es wurde ein guter Bericht verfasst.  Es hat die Daten\neinfach auf die Festplatte geschrieben und dann ist ein Fehler aufgetreten.\nSie brauchen also etwas, mit dem Sie\nIhre Spuren auslesen können, denn\nSie müssen wissen, dass diese unerwarteten\nErgebnisse eintreten.\nUnd wenn Sie sich alle diese\nSpuren durchklicken, werden Sie sehen, wie schnell\nwir ... ja, Sie können sehen, dass der richtige\nFehler mehrmals auftritt.  Man kann also schon\nmit bloßem Auge ein Muster erkennen\n.  Wir können sehen, dass es\nmehrmals versucht, auf die Festplatte zu schreiben.  Dies ist ein\nsystemisches Versagen unseres Agenten, das wir\nangehen müssen.\nAlso, äh,\ndas letzte Beispiel ist ein Beispiel für, äh, äh,\nselbstbewusst falsch.  Das ist das letzte Bild, das\nich anklicken werde.  Äh, der Rivian-\nBericht.  Äh, es beinhaltet allerlei\nZeug über Rivian.  Äh, also, es hieß, dass\nim Jahr 2026 62.000 bis 67.000 Fahrzeuge ausgeliefert werden. Äh, haben die sich das ausgedacht\noder nicht?  Ich kann es nicht wissen,\nda ich keine Informationen\nüber Rivian habe und die Informationen über Rivian\nnicht besonders öffentlich zugänglich sind.  Das ist also eine\nverdächtig genaue Zahl für ein\nUnternehmen, das seine Finanzergebnisse nicht veröffentlicht\n.  Wenn ich mir also die Spuren noch einmal ansehe, werde\nich mir das genauer ansehen und feststellen, dass es sich um\neine Situation handelt, in der ich\nsorgfältig prüfen sollte, ob es sich um\nHalluzinationen handelt,\nob es diese\nForschungsdaten tatsächlich von einer\nvertrauenswürdigen Quelle erhalten hat.\nUnd wenn man einen Fehler feststellt, muss man sich\nfragen, warum er aufgetreten ist.  Äh, die Reaktion\nwar also als Symptom falsch.  Hat es schlechte\nForschungsergebnisse erzielt?  Hat es versucht, auf die\nFestplatte zu schreiben, obwohl es das nicht hätte tun sollen?  Waren die\nDaten korrekt, aber die\nSchlussfolgerung falsch?  Hat es einen Aktienkurs erfunden\n?  Jeder der genannten Gründe deutet auf eine\nandere Lösung hin.  Also, was\nman mit\ndiesen Daten machen muss, ist, sie zu kategorisieren.  Die Betrachtung\neinzelner Spuren ist von sehr, sehr großer\nWichtigkeit.  Und dann erzeugt man\nmassenhaft ein Muster davon, wo die Dinge\nschiefgehen.  nicht nur ab und zu Fehler machen\n, sondern\nsystematisch Fehler begehen.\nÄh,\nund wie gesagt, dafür kann man einen LLM verwenden\n.  Äh, Sie können einen LLM verwenden, um\nalle Ihre Traces durchzugehen.\nIn Phoenix gibt es APIs dafür.  Äh, untersuchen Sie\nIhre gesamte Ausgabe, versehen Sie Ihre\nAblaufverfolgungen mit Anmerkungen und sagen Sie: „Das war aus diesem\nGrund schlecht. Das war aus jenem Grund schlecht.“\nUnd in einem realen Datensatz werden Sie\nbald Muster erkennen.  Äh, in meinem\nNotizbuch habe ich eine grobe\nSkizze der Dinge ausgedruckt, die\nschiefgelaufen sind.  Ich habe meine\nSpurenkategorien durchgesehen.  Ich sagte, Sie wissen schon, Dinge, die äh\ngut und schlecht waren.  Ich habe sie ausgedruckt\nund dann eine\nTabelle erstellen lassen.  Die Häufigkeit der Hauptursachen\nsieht also größtenteils gut aus.  Mögliche Halluzinationen, Denklücken,\nnicht überprüfbare Daten,\nfehlende Empfehlungen.\nEs ist leicht gesagt, wenn man sich diese Grafik ansieht\nund meint, dass mögliche Halluzinationen am\nwichtigsten sind,\nweil sie am\nhäufigsten auftreten, aber in Wirklichkeit muss man\nsubtiler vorgehen.  Wenn es\nkomplett aus dem Ruder läuft und anfängt,\ndem Benutzer den Text von Moby Deca vorzulesen, dann ist das ein totaler Fehlschlag, ein\nsehr schwerwiegender Fehlschlag, und das ist\nwichtiger als eine mögliche\nHalluzination.  Um die Priorität zu ermitteln, müssen Sie also sozusagen den\nSchweregrad mit der Häufigkeit multiplizieren,\nwenn Sie entscheiden, welches System Sie sich am\nhäufigsten ansehen\nund die teuren, häufigen Fehler\nzuerst beheben sollten.  Bei den teuren Sachen ist es also so, dass\nes komplett aus dem Ruder gelaufen ist, und\nbei kleineren Halluzinationen kommt man\nwahrscheinlich noch damit durch.\nÄh, ich wollte das Schweizer-\nKäse-Modell vorstellen.  Dieses Diagramm wurde ganz offensichtlich\naus einem Blogbeitrag von Anthropics geklaut.  Äh,\ndas ist ein Konzept aus der\nSicherheitstechnik.  Man muss sich jede\nVerteidigungsebene wie eine Scheibe\nSchweizer Käse vorstellen.  Es gibt keine Bewertungsskala,\ndie perfekt sein kann.  Äh, sie\nalle werden verschiedene Schwächen und\nverschiedene Haltepunkte haben.  Aber wenn man sie übereinanderlegt, dann passen\ndie Löcher nicht mehr zusammen.  Äh, also\nirgendwann werden Sie alle\nmöglichen Fehlerquellen Ihres Agenten beseitigen.   Das\nStapeln von Evaluierungsebenen funktioniert genauso\n.  Äh, also Ihr Code eval\nfängt zuerst eine Menge ganz grundlegender Dinge ab\n.  Ihr LLM als Richter deckt\nDenklücken auf, übersieht aber subtile\nHalluzinationen.  Die menschliche Überprüfung\nerfasst Dinge, die\ndie ersten beiden Ebenen passiert haben.  Äh, aber\nes lässt sich nicht auf jede Spur skalieren.  Keine\neinzelne Auswertungsmethode kann also\nalle möglichen Fehlerquellen erfassen.  Aber\nwenn Sie sie alle gleichzeitig verwenden, werden\nSie\nIhren Agenten ziemlich gut beurteilen können.   Kommen wir also\nzu den eigentlichen Bewertungen.\nLasst uns mal eine richtige Bewertung schreiben.  Und\nbeginnend mit der\neinfachsten Art von eval, nämlich der Code-\nAuswertung.\nUnser Agent soll\nAktienkurse analysieren.  Am naheliegendsten ist es also\nzu prüfen, ob\nim Ergebnis überhaupt das Börsenkürzel erwähnt wird.\nGing es um das Unternehmen, um das es meiner Meinung nach gehen sollte\n?  Äh, das\nist ein völlig deterministischer Test.  Ich\nbrauche dafür keinen LLM.  Ich kann einfach\nnach dieser Zeichenkette suchen.  Äh, das habe\nich also im Notizbuch gemacht.  Äh,\nund ich werde jetzt ganz kurz erklären, wie\ndas funktioniert.  Also,\nzunächst einmal haben wir unsere Spannen vom\nAIE Cloud Financial Agent erhalten.  Äh, in diesem Abschnitt\nhier rufen wir die übergeordneten Spans ab.\nJede einzelne Logzeile ist ein Span.  Die\nKnoten, die an der Wurzel stehen, in dem\nDiagramm, das ich Ihnen gezeigt habe, sind\ndiejenigen, die keinen Elternknoten haben.  So\nerkennt man also seine Root-Spans.  Die\nwichtigsten sind diejenigen, die keine\nEltern haben.  Es prüft also, ob es welche gibt,\ndie kein\nübergeordnetes Set haben.  Äh, und wir haben 13 Top-Level-\nSpans gefunden, was korrekt ist.  So\nsieht eine Codeauswertung aus.  Äh, wir verwenden den\nCreate Evaluator Decorator.  Äh, wir geben\nihm einen Namen.  So wird es\nnach Phoenix gesendet.  Dies ist der Name\nder Evaluierung.  Äh, und wir geben ihm eine Art\nCode, der Fenix ​​mitteilt, dass es sich um\neine einfache deterministische Auswertung handelt.  Es\nmuss nicht als LLM-Programm durchgeführt werden.  Äh,\nund dann ist es einfach eine ganz normale Python-\nFunktion.  Sie können sie auch in\nTypeScript schreiben, wenn Sie das bevorzugen.  Äh,\ndas ist ein sehr einfacher regulärer Ausdruck.  Ich habe\nnach Ausdrücken in Großbuchstaben gesucht\nund dann\neinige Ausdrücke ausgeschlossen, die keine Börsenkürzel sind\n.  Und dann habe ich einfach im\nAusgabetext nach dem Börsenkürzel gesucht.  Und das ist eine\nsehr einfache, unkomplizierte und äußerst\neffektive erste Verteidigungslinie.  Stand darin überhaupt etwas,\ndas\ndie Firma erwähnte, nach der ich gefragt hatte?  Also,\näh, die Ergebnisse können wir hier abrufen.  Äh,\nwir können die Bahn fahren.  So\nführt man diese Auswertung tatsächlich durch.  Sie werten\nDaten aus.  Sie führen die Auswertung des Datenrahmens durch.  Äh,\nman übergibt ihr den Evaluator, also die\nErwähnungssticker-Funktion, die wir gerade\nübergeben haben.  Äh, und Sie geben ihm die\nscheinbaren Spannweiten des Dataf-Frames, die\nwir gerade berechnet haben.  Äh, eine Sache, die Ihnen\nhier auffallen sollte, ist, dass wir\nmit unterdrücktem Tracing arbeiten.  Wir verwenden\nAnthropic für die Evaluierung.\nPhoenix erkennt standardmäßig, dass\nAnthropic ausgeführt wird.\nWenn Sie das Tracing nicht unterdrücken,\nerhalten Sie die Traces von\nAnthropic während der Evaluierung, was\nsehr verwirrend ist. Daher geben Sie einfach an, dass beim\nAusführen der Evaluierung\nkeine Traces erfasst werden sollen. Deshalb ist das\nhier.\nWir sehen, dass die Evaluierung 11 von\n13 Mal erfolgreich war. Weder der Tesla-Bericht noch der\nAmazon-Bericht\nerwähnen das erwartete Börsenkürzel des\nUnternehmens.  Äh,\nselbst dieser sehr, sehr einfache, äh\ndeterministische, äh Kodval hat ein\nProblem mit meinem Agenten gefunden.  Ähm,\nwarum hat es das getan?  Äh, wir müssen uns die\nSpannweiten ansehen, um das herauszufinden.  Wenn Sie sich die\nSpans ansehen, um das herauszufinden, werden Sie feststellen, dass\nTesla eines der Systeme ist, bei denen\nes fehlgeschlagen ist, weil es\nDaten auf die Festplatte geschrieben hat.  Äh, Amazon war\ninteressanter.  Äh, der gesamte\nBericht handelte von AWS, aber Amazon wurde überhaupt nicht erwähnt\n.  Äh, es ging einfach davon aus, dass ich\nAWS meinte, also einen Teil von Amazon, und\nnicht Amazon als Ganzes.  Äh, also,\ndas ist eine Erkenntnis, die wir nicht gewonnen hätten,\nwenn wir nur\nInput und Output getestet hätten, richtig? Genau dafür\nsind die Erklärungen ja da.  Ähm, aber das\nbeweist, dass Code-Variablen nicht nur\nSpielzeugbeispiele sind.  Die Längenbegrenzungen beim JSON-Parsing\nbeschränken verbotene Phrasen wie „als KI-\nSprachmodell kann ich nicht …“, „Sie können\ndiese deterministisch testen“.\nÄh, und eine Codeauswertung muss nicht\nunbedingt eine einfache String-Operation sein.  Es\nkann eine Datenbank abfragen, um zu überprüfen, ob Ihre\nProduktpreise korrekt waren.  Es kann\neine API aufrufen, um einen Aktienkurs abzufragen.   Bei Aufgaben\nmit Benotung wird immer\ndasselbe Ergebnis erzielt.  Sie können eine deterministische\ncodebasierte Ausgabe verwenden,\num die Antwort zu erhalten und Dinge zu testen.\nEine der guten\nDinge, auf die man beim\nSchreiben eines Code-Evaluierungstests achten sollte, ist also, dass\nman testet, was der Agent\nerzeugt hat und nicht den Pfad, den er genommen hat.  Das hatte ich ja schon\nerwähnt.  Äh, also lass es nicht nach\nallen Schritten suchen, die deiner\nMeinung nach nötig gewesen wären, um\nzu dieser Antwort zu gelangen.  Prüfen Sie einfach,\nob Sie das\nerwartete Ergebnis erhalten haben.  Äh, man kann auch\nbeim Parsen von Zeichenketten flexibel vorgehen.\nWenn Sie also beispielsweise nach\neiner Zeitschätzung gefragt haben,\nkönnte der Agent Ihnen 2 Stunden nennen, oder\n120 Minuten, oder eine\nsehr große Anzahl von Sekunden – was letztendlich immer\nauf zwei Stunden hinausläuft.  Sie können\nIhren Code so auswerten, dass er prüft, ob alle\ndrei Bedingungen erfüllt sind und ob eine gültige Ausgabe vorliegt.\nUnd der Weg, den der Agent einschlug, ist weniger wichtig\nals sein Ziel.  Äh, Sie wollten, dass die\nAntwort richtig war.  Äh, aber du hast es\nfalsch verstanden, du bist auf dem falschen Weg dorthin gekommen.\netwas, wonach Ihre Beurteilung nicht sucht\n.\nKommen wir nun zu Schritt fünf, der\nintegrierten Auswertung.\nIn diesem Fall werden wir versuchen,\neine der in Fenix ​​integrierten Auswertungsfunktionen zu verwenden, nämlich\ndie Korrektheitsprüfung.  Hierbei wird\nLLM als Evaluierungsmethode verwendet, um Dinge zu tun, die mit einer\ndeterministischen Überprüfung nicht möglich wären.  In\ndiesem Fall wurden wir gefragt,\nob die Ausgabe des\nAgenten korrekt war oder nicht.  Entsprachen die Angaben den Tatsachen\n?  Äh, also, Sie wissen schon, der\nKorrektheitsprüfer scheint derjenige zu sein, an den wir uns wenden sollten\n.  Jeder LLM-Abschluss wird von einem Richter bewertet und\nbesteht aus drei Teilen.  Es verfügt über ein\nRichtermodell, das dem LLM-Modell entspricht und\ndie Benotung vornimmt.  Es verfügt über eine vorgegebene Vorlage, die\nauch Rubrik genannt wird.  äh, und es enthält die\nKriterien, also die Kriterien, die der Richter\nanwendet, und es enthält die Daten, also die\nBeispiele, die bewertet werden.  Phoenix\nhält diese drei Dinge getrennt, sodass man\nsie beliebig kombinieren kann, was sehr\npraktisch ist.  Sie können die gleichen Auswertungen\nmit verschiedenen Modellen durchführen.  Sie können\ndasselbe Modell mit verschiedenen Auswertungen ausprobieren und\nvergleichen, wie Ihre Auswertungen funktionieren.   Wie\ngesagt, die Korrektheitsprüfung stellt sicher, dass\neine Antwort sachlich\nkorrekt, vollständig und logisch\nkonsistent ist.  Es handelt sich um eine von uns erstellte, integrierte Evaluierung einer von\nuns verfassten Eingabeaufforderung\n. Sie können die von\nuns erstellte Eingabeaufforderung überprüfen, um sicherzustellen, dass\nes sich nicht um eine Blackbox handelt.  Äh,\nund wir haben auch Dinge wie die\nAuswahl des Auswertungstools.  Hat der Agent also das\nrichtige Werkzeug gewählt?  Toolaufruf.  Hat es\ndie richtigen Argumente erhalten?  Äh, wir haben äh,\neingebaute Auswertungen zur\nErkennung von Ablehnungen der Dokumentenrelevanz.  äh, viele Dinge,\ndie man bei einer echten Evaluierung überprüfen möchte,\näh, die man nicht\nselbst schreiben muss, weil jede Evaluierung\ndiese Tests durchführen muss.  Also haben wir sie eingebaut. Ähm, was\nwir wissen wollen, ist, ob es\nkorrekt war?  Also, äh, lasst uns den Richter einsetzen.\nWir werden, wie bereits erwähnt,\nden integrierten Korrektheitsprüfer verwenden\n.  Zuerst brauchen wir einen LLM, um dazu beitragen zu können\n.  Wir werden das\nLLM nun an den Korrektheitsprüfer übergeben, den\nwir soeben hinzugefügt haben. Falls gewünscht,\nkönnen Sie die vollständige Aufgabenstellung\nhier ausdrucken.  Wir werden das Tracing\nerneut unterdrücken und dann den\nDatenrahmen auswerten, genau wie zuvor\n.  Wir werden ihm die gleichen übergeordneten\nSpans geben und\neinen anderen Evaluator verwenden, in diesem\nFall den Correctness-Evaluator.  Und wir werden\ndie ersten fünf Ergebnisse davon anzeigen\n.  Oh je, das ist ja eine wahre\nInformationsflut.\nSobald man die Informationen hat, muss man\ndie Ergebnisse nach Phoenix senden, und genau das\npassiert hier.  Sie wandeln also\ndie Ergebnisse der Auswertung in einen\nDatenrahmen um und übergeben diesen Datenrahmen dann\nmithilfe des Datenrahmens für die Log-Span-Annotationen wieder an Phoenix\n.\nDer Richter, den wir dafür verwenden, ist\nSonnet.  Wie ich schon sagte, sollten Sie\nfür die Beurteilung einen leistungsfähigeren LLM einsetzen\nals\nden eigentlichen Agenten,\ndenn dieser Agent wird\nintelligenter sein und\nDinge erkennen, die der ursprüngliche LLM\nnicht erkannt hat.  Wenn Sie bereits einen\nAgenten im Produktivbetrieb mit Opus einsetzen, gibt es\nnichts Besseres als Opus, das Sie als\nEvaluator verwenden können.  Aber wenn\nSie einen Agenten im Produktivbetrieb\nmit Opus einsetzen, ist Ihnen das wahrscheinlich egal.   Ähm, eine\nweitere Sache, die wir tun müssen, ist, dass wir\nunsere Eingabe- und Ausgabewerte umbenennen, damit der\nAgent sie versteht.\nDas zeige ich Ihnen gleich.  Ähm, also\nja, meine Sprechernotizen und was ich da\neigentlich mache.  Ich bin\nim Notizbuch viel schneller\nals bei meinen Mitschriften für die Lautsprecher.  Ich\nentschuldige mich also.  Ähm,\nalso lasst uns das Ergebnis mal\nin Phoenix ausführen und es uns ansehen.\nSie können sehen, dass\nich\njetzt neben jeder einzelnen Auswertung einen Korrektheitsvermerk hinzugefügt habe.  Und da gibt es ein\nProblem: Wenn ich mir die\nKorrektheit insgesamt ansehe, stelle ich fest, dass\njeder einzelne Wert bei null lag.  Äh,\nalle Ihre Bewertungen sind falsch.  Warum sind\nIhre Bewertungen fehlerhaft?  Wir müssen\nherausfinden, warum das so ist.  Wir müssen darauf\nklicken und uns die\nErklärungen ansehen.  Schauen wir uns also unsere\nAnmerkungen an.  Lasst uns auf Korrektheit achten\nund die\nAnnotation einfach mal lesen.  Äh, das heißt, die\nAusgabe liefert sehr spezifische\nFinanzkennzahlen für das erste Quartal des Geschäftsjahres\n2026. Äh, aber das Problem ist, dass es immer wieder annimmt, es sei das Jahr\n2025,\nweil es ein Modell ist, das für das Jahr 2025 trainiert wurde,\nund es das aktuelle Datum nicht kennt und\nkeine aktuellen Informationen hat.\nUnsere Korrektheitsbewertung ist in diesem Fall\nvöllig wertlos, weil sie versucht,\nsie auf ihrem Wissen\nüber Q aus dem dritten Quartal 2025 oder wann auch immer es sich bei\nAnthropic Train Sonnet befand, zu basieren, und sie\nweiß nichts über die Prognosen für 2026\n.  Unsere Korrektheitsprüfung ist in diesem\nFall also völlig nutzlos.\nÄh,\ndas ist ja an sich schon ein Lernprozess, nicht wahr?  Wenn man\nihm eher allgemeine\nWissensfragen gestellt hätte, die von\neinem ganzen Troll des Internets beantwortet werden könnten, hätte es\nviel besser abgeschnitten, aber in diesem\nFall fragen wir es nach sehr aktuellen und\nzukunftsweisenden Dingen.  Äh,\nund unser eingebautes Modell, äh, unsere eingebaute\nAuswertung kann das nicht.  Äh, das bedeutet also, dass\nwir eine andere Bewertung benötigen.  Was wir brauchen,\nist eine Treuebewertung.  Die\nTreuebewertung überprüft,\nob die Ausgabe des Agenten\nauf den von uns bereitgestellten Informationen basiert\n.  So praktischerweise – äh, verdächtig\npraktischerweise – habe ich unseren Agenten\nvorhin in zwei Schritte aufgeteilt.  Einer davon führt\ndie Recherche durch, der andere\ndie Ergebnisdarstellung.  Das bedeutet, wir können den\nSchritt gehen, bei dem die Forschung durchgeführt wurde, dieses\nErgebnis nehmen und es unserem äh\nTreueevaluator geben und sagen: \"Hat\nes auf der Grundlage dieser Forschung richtig funktioniert? äh, beurteilen Sie, ob\nes richtig funktioniert hat, und schreiben Sie einen Bericht.\"  Wurde\nein Bericht verfasst, der\nausschließlich auf dieser Studie basiert?  Hat es sich\nan die Vorlage gehalten?  Äh, mal sehen,\nwie das aussieht.  Wir\nerhalten genau die gleiche Menge an Kindspans, exakt\ndie gleiche Menge.  äh und\nwir müssen äh die Eingabebearbeitung durchführen,\ndie ich erwähnt habe.  Wir müssen die\nEingaben so aufbereiten, dass sie den Erwartungen\ndes Treueevaluators\nentsprechen.  Äh, und wir müssen eine\nKontextspalte erstellen.  Äh, das ist das Ergebnis\ndes ersten Zuges des Agenten und\nnur des ersten Zuges des Agenten.  Das\nist also die Funktion dieses Codes.\nDas ergibt also Input, Output und\nKontext – die drei Spalten, auf denen\nunsere Treuebewertung basieren soll\n.  Äh, dann lass es uns mal ausprobieren\nund sehen, was\npassiert.  Wir haben den Kontext hinzugefügt.  Wir können\nden Kontext ausführen.\nÄh, wir unterdrücken die Nachverfolgung erneut.\nWir übernehmen unsere Elternspannen.  Wir unterziehen\nsie einer Treueprüfung.  Und\ndiesmal geben wir ihm einen Datenrahmen,\nder die Spannen mit der\nhinzugefügten Kontextspalte enthält.  Und wir erhalten unsere\nBewertung von 13 von 13. Und wir\nerhalten, dass 13 von allen 13\ntreu waren.  Also, Correctus hat uns null\nvon 13 Pässen beschert, aber Faithfulness hat\nuns äh 100% beschert.\nÄh, also haben wir es geschafft,\nunsere Treue mit einem Schlag zu beweisen.  Es gibt\nzwei eingebaute Auswertungssignale.  Das ist eine\nwirklich wichtige Lektion.  Ähm, die\nWahl des richtigen Bewertungsmodells kann wichtiger sein\nals die Feinabstimmung Ihrer Bewertung.  Eine oder mehrere\nIhrer Beurteilungen werden\nvöllig nutzlos sein.  Einige der integrierten\nEvaluierungsfunktionen werden genau das sein, was Sie\nbrauchen.  Äh, und das ist die Lehre daraus.\nÄhm, so sieht es in Phoenix für\nsolche Sachen aus.  Äh, Sie können sehen, dass unsere äh,\nTreuebewertung zu 100 % korrekt war.\nSie können nach Punktzahl sortieren, um\nIhre besten oder schlechtesten Ergebnisse zu ermitteln\n.  Äh, in diesem Fall wird das nichts bringen,\nweil wir einfach nur ein\nErgebnis von eins gegen null haben.  Ähm,\naber man kann filtern.  Sie können also\nfiltern, um nur Fehler anzuzeigen.  In\ndiesem Fall werde ich also nach den umsetzbaren Maßnahmen suchen\n.  Äh, nein, eigentlich werde\nich meine Korrektheits-Variante verwenden.\nKorrektheit ist\ninkorrekt.\nIch bin sicher, ihr freut euch alle darüber, dass ich es mir\nansehe.  Dies erlaubt es uns also, die Ergebnisse so zu\nfiltern, dass nur noch diejenigen übrig bleiben, bei denen die\nKorrektheit null beträgt.  Und Sie\nkönnen auf jeden dieser fehlerhaften\nTraces klicken, um die vollständige Ausführung zu sehen und genau zu erkennen,\nwas schiefgelaufen ist.  Wenn es also\nnur 13 davon gibt, ist das nicht besonders\nnützlich.  Wenn man tausend davon hätte,\nwäre das wirklich nützlich, denn dann könnte\nman nur die\nfehlerhaften Fälle finden und sich auf diese konzentrieren.   Die\nintegrierten Auswertungen sind aber nur der\nAusgangspunkt.  Sie liefern Ihnen\nsofort ein Muster, ein sofortiges Signal\nohne jegliche technische Verzögerung.  Äh, wenn\nman sich mit dem eigentlichen Kern der\nEvaluierung befasst, dann ist es die Durchführung von benutzerdefinierten Code-\nEvaluierungen, Entschuldigung, benutzerdefinierten LLM-als-Richter-\nEvaluierungen.  Ähm, ich hatte ja bereits erwähnt, dass\nwir von unserem Agenten unter anderem erwarten, dass er\numsetzbare Ergebnisse liefert.  Wir\nmöchten wissen, ob es uns sagt, ob wir\ndieses Produkt kaufen sollen oder nicht.\nIn Phoenix gibt es keine integrierte Bewertungsfunktion, daher ist unklar, ob es sich hier um\neinen verwertbaren Finanzbericht handelt.  Das müssen wir\nselbst schreiben.  Damit kommen wir zu Schritt sechs,\nnämlich dem Erstellen eines individuellen Bewertungsrasters.\nEs lohnt sich, darüber zu sprechen, wie man\neinen guten Bewertungsbogen erstellt, bevor wir ihn\ntatsächlich erstellen.  Jede gute\nBewertungsaufgabe, die ich gesehen habe, besteht aus fünf\nverschiedenen Teilen, fünf wichtigen Teilen.\nUnd ich werde sie jetzt\nalle durchgehen.  Die erste Aufgabe besteht darin,\ndie Rolle des Richters zu definieren.  Man muss\ndem Richter den Domänenkontext erläutern.  Teilen Sie ihm mit,\nwelche Art von Ausgabe es\nauswertet und was diese Ausgabe\nbewirken soll.  Äh, das ist ein\nBeispiel dafür.  Die Aussage, dass Sie ein\nExperte für Finanzanalysen sind, ist\netwas, was jeder tut.  Tests\nzeigen, dass es keinen so großen\nUnterschied macht, aber es macht doch einen\nUnterschied.  Dann kannst du es genauso gut da reinwerfen\n.  Ähm, was den Unterschied wirklich ausmacht,\nsind die Anweisungen und der\nRest der Aufgabenstellung.  Der\nzweite Teil umfasst Ihre Kriterien, und hier\nsollten Sie so präzise wie\nmöglich vorgehen.  Genau hier\ninvestieren viele Leute zu wenig.  Wie\ngesagt, antworten Sie nicht mit „gut“, denn\ndas ist ein Wunschtraum.  Eine gute Antwort\nenthält keinen Kontext darüber,\nwas gut und was\nschlecht definiert.  Eine gute Antwort ist hilfreich und\npräzise.  Klingt, als ob es dir\ndort besser ginge, aber hilfreich ist auch\nvöllig vage und somit auch zutreffend.\nNiemand weiß, was das bedeutet.  Äh, also\nlisten Sie stattdessen genau auf, was einen\nBericht umsetzbar macht.  Äh, und listen Sie genau auf,\nwas die Sache nicht umsetzbar macht.  Äh, was\nmacht diese Kriterien so spezifisch, dass sie\ntatsächlich funktionieren?  Äh, sie sind spezifisch und\nbeobachtbar.  Enthält konkrete\nEmpfehlungen.  Das ist etwas, was\nder Richter überprüfen kann.  Beinhaltet\nzukunftsorientierte Analysen, nicht nur\nhistorische Daten.  Das ist ein klarer\nUnterschied.  Und auf der nicht\numsetzbaren Seite werden lediglich öffentlich\nverfügbare Daten ohne Interpretation zusammengefasst,\ndie einen bestimmten Fehlermodus beschreiben, den\nwir bereits bei der\nAnalyse unserer Traces festgestellt haben.  Wir haben gesehen, dass es\neinfach eine allgemeine „Apfel ist gut“\n-Antwort war, was nicht das war, was\nwir wollten.  Und jedes Kriterium entspricht\netwas, das wir\nzuvor in unseren Spuren tatsächlich beobachtet haben.  Genau darauf möchte ich hinaus\n.  Man sollte\nRegeln nicht einfach auf der Grundlage dessen aufstellen,\nwas man selbst für eine gute Idee hält.  Sie\nsollten Regeln auf der Grundlage der\ntatsächlich beobachteten Spuren und\nFehler erstellen.   Der\ndritte Teil einer guten Bewertungsmatrix lautet:\nDie Daten sollten klar präsentiert werden.  Wir\nverwenden Anfangsdaten und Enddaten in unseren in\nPhoenix integrierten Auswertungen.  Wenn Sie\nCloud-Lösungen nutzen, ist Claude ein großer Fan von XML.\nMan kann also XML-Tags verwenden, um Anfang und Ende zu kennzeichnen,\nund es eignet sich sehr gut, um den\nAnfang und das Ende von Dingen zu erkennen.  Aber was\nSie damit machen, ist, dass Sie\njedes einzelne Datenelement eindeutig kennzeichnen,\nsodass man den Unterschied\nzwischen diesen Datenelementen erkennen kann.\nUm also\ndie Wahrscheinlichkeit zu verringern, dass der\nRichter die Anfrage\nmit dem Bericht verwechselt oder umgekehrt, sollten die Grenzen zwischen Benutzeranfrage und Finanzbericht klar definiert sein.   Im\nvierten Teil geht es um das Hinzufügen von beschrifteten Beispielen.\nDiesen Teil überspringen die meisten Leute, dabei ist er mit Abstand\ndas Nützlichste,\nwas man hinzufügen kann.\nWenn Sie aus diesem\nAbschnitt über benutzerdefinierte Rubriken eine Sache mitnehmen, dann die, dass\nSie Beispiele hinzufügen sollten,\ndenn LLMs sind wirklich gut darin, sich\nein Beispiel anzusehen, das\nMuster aus diesem Beispiel herauszulesen und\ndiesem Beispiel dann zu folgen. Darin\nsind sie viel besser, als\neine Liste von Anweisungen zu bekommen,\ndie einfach nur sagen, was Sie tun sollen\n.  Sie sind wirklich sehr gut darin, sich\nBeispiele anzusehen und diese nachzuahmen.\nUnd so sieht ein praktisches Beispiel aus\n.  äh,\nes hat alles.  Es enthält also äh spezifische\nDaten.  Es geht darum, ein konkretes\nRisiko zu identifizieren und es mit einer Zahl zu untermauern.  Es enthält\nkonkrete Empfehlungen.  Akkumulieren\nunterhalb eines bestimmten Preises.  So\nsieht konkrete Handlungsfähigkeit aus.  So\nsieht etwas aus, das nicht handlungsfähig ist.  Äh, das ist nicht\nfalsch.  Nvidia ist in der Tat ein wichtiger Akteur\nin der Halbleiterindustrie.  Äh, es\nsagt uns einfach nicht, ob wir\ndie Aktie kaufen sollten oder nicht.  Äh, das ist also nur\neine Beschreibung.  Es handelt sich nicht um eine Demonstration.\nUnd als fünftes sollten\nSie die Ausgabe einschränken.\nWir möchten wissen, ob dieser\nFinanzbericht Handlungsanweisungen enthält oder nicht.\nEin einzelnes Wort zur Ausgabe ist etwas, das Ihre\nBewertungskriterien fast immer enthalten sollten.\nSagen Sie mir einfach, ob es sich um eine Handlungsmöglichkeit handelt oder nicht\n.  Geben Sie mir keine lange\nErklärung.  Geben Sie mir keinen JSON-\nBlock.  Gib mir bloß kein\nMarkdown-Diagramm.  Die binäre Einteilung ist eigentlich ganz\nklar, und wenn man wirklich\nmehr Nuancen braucht, kann man auch drei\nKategorien einteilen.  Man kann sagen, es war\nfalsch, es war teilweise richtig oder\nes war vollkommen richtig.  Äh, etwas,\ndas viele Leute gerne machen würden, weil\nes eine gute Idee zu sein scheint, ist eine Bewertung.\nDie fragen mich so was wie: „Gib mir einen Prozentsatz“ oder „\nGib mir eine Punktzahl von 1 bis 10“. Äh, das\nfunktioniert nicht besonders gut.  Worin besteht der\nUnterschied zwischen einer Sechs und einer Sieben?\nKönnen Sie genau definieren, wann Sie\netwas auf einer Skala von 1 bis 10 bewerten?  Worin besteht\nder Unterschied zwischen einer Sechs und einer\nSieben?  Sofern das nicht in die\nRubrik aufgenommen wird, äh, kann der Agent das auch nicht tun\n.  Das führt also nur zu\nStörungen in Ihren Bewertungen.  Also ja oder nein,\nund wenn es unbedingt sein muss, vielleicht, aber\nnicht detaillierter als das.   Ein\nweiterer praktischer Tipp ist, beim\nSchreiben einer E-Mail laut darüber\nnachzudenken, was man eigentlich tut.   Die\nGedankenkette der Richter\nverbessert nachweislich deren\nArbeitsweise.  Äh, man weist es also an, zuerst seine Denkweise zu erklären,\nbevor es diese\nBezeichnung ausgibt.  Und das wird,\nwissen Sie, messbar und nachweisbar\ndie Qualität des Ergebnisses verbessern,\ndas Sie erhalten, weil es\neine Menge Token generiert, bevor es\nentscheidet, ob das Ergebnis gut ist oder nicht\n.  Wenn Sie also gerade mitprogrammieren,\nist jetzt der richtige Zeitpunkt, um zu sehen, ob Sie\neine bessere eval-Funktion schreiben können als ich.\nSo sieht ein maßgeschneiderter LLM als Richter aus\n.  Es ist einfach ein sehr großer\nImpuls.  Hier sind all die Dinge enthalten, die\nich eben erwähnt habe.  Sie sind also ein\nExperte für Finanzanalysen.  Eine Liste von\nDingen, die es umsetzbar machen, Dinge,\ndie es nicht umsetzbar machen, ein Beispiel,\nein Anfangsdaten- und ein Enddatenblock, in dem\nich die Eingabe und die Ausgabe einfüge.\nUnd ist dieser Finanzbericht auf Grundlage der oben genannten Kriterien\nverhandlungsrelevant oder nicht\n?  Äh,\nwahrscheinlich wirst du aus dem Stegreif keine\nbessere\nAufforderung formulieren können als diese, denn ich habe es sehr oft versucht\n.  Aber es macht Spaß, es auszuprobieren.  Sie können also\ngerne Ihre\nBeispiele dafür einfügen, wie ein umsetzbarer Bericht\naussehen sollte.  Und dann werden wir es\naufschreiben.   Um\ndies dann tatsächlich zu nutzen, sobald wir\nunsere Aufgabenstellung geschrieben haben, verwenden wir ein\nHilfsprogramm namens\nKlassifizierungsauswerter.  Dies schafft einen LLM als\nRichter für Phoenix.  Äh, und wir müssen\nihm nur vier Dinge geben.  Wir müssen\ndem Ganzen einen Namen geben, zum Beispiel Umsetzbarkeit, denn unter diesem\nLabel wird es in\nPhoenix auftauchen.  Äh, wir müssen ihr diese\nEingabeaufforderungsvorlage geben, die\nich Ihnen gerade oben gezeigt habe.  Wir verleihen ihm einen\nLLM-Abschluss, weil es ja irgendwie die Beurteilung übernehmen muss\n.  Und dann geben wir dem Programm Auswahlmöglichkeiten,\ndie mit Punktzahlen versehen sind.\nEs ist also entweder umsetzbar, was wir als\n1,0 bezeichnen, oder nicht umsetzbar,\nwas wir als Null bezeichnen.\nWir unterdrücken erneut die Nachverfolgung.  Ja.\nEntschuldigung.  Und wie sieht es mit den Kanälen aus?  Ich\nglaube nicht, dass wir sagen: „Ja, schreibe zuerst\ndeine Begründung auf und dann …“ und dann einfach: „\nDas stimmt.“  Das habe ich ausgelassen.  Ich habe dir gesagt,\ndu solltest es tun, und dann habe ich es nicht getan.  Gut\nerkannt.  Da passt tatsächlich jemand auf\n.  Das ist fantastisch.  Nein,\nweil es hier drin wirklich warm ist und\nes ungefähr 4:30 Uhr ist.\nSchauen wir uns also die Ergebnisse an und sehen wir,\nwelche Punkte als handlungsrelevant eingestuft wurden und\nwelche nicht.  Äh, das ist eine Fähigkeitsbewertung\n.  Ich sprach über\nRegressionsanalyse versus Fähigkeitsanalyse.  Dies ist eine\nperfekte Fähigkeitsbewertung, weil es nicht\nbesonders gut abschneidet.  Äh, in äh sechs\nder Fälle, glaube ich, kamen Dinge zum Vorschein, die rechtliche Schritte ermöglichten,\nund in den übrigen Fällen kamen Dinge zum Vorschein, die\nkeine rechtlichen Schritte ermöglichten.  Äh,\ndas bedeutet, es muss einen Berg erklimmen.  Das\nbedeutet, dass wir dem Agenten sagen können, er solle sich\nbessern.  Ähm,\nund es wird tatsächlich noch etwas\nSpielraum für Verbesserungen geben.  Ähm,\nalso protokollieren wir die Annotationen zurück in\nPhoenix.  Äh, und jetzt können wir uns\nPhoenix ansehen, und Sie können die\nHandlungsrelevanzwerte innerhalb von Phoenix sehen.\nWir können die gleiche Filterung durchführen wie\nzuvor.  Äh,\nUmsetzbarkeit.\nIch habe währenddessen nicht darüber nachgedacht, ob\nich\nmit einer Hand tippen würde oder nicht.  Ich hätte\nkürzere Etiketten gewählt.\nRechts?  Das heißt, es gibt Fälle, in denen Handlungsbedarf besteht, oder wir können\nsagen, dass es nicht möglich ist,\nund wir können uns die Fälle ansehen, in denen es nicht funktioniert hat.\nUnd wie bei den\nanderen können wir uns durchklicken, um zu unseren\nAnmerkungen zu gelangen, nach Handlungsempfehlungen suchen und\neine Erklärung erhalten.  Wir können also sagen, dass der\nFinanzbericht keine\nkonkrete Kauf-, Verkaufs- oder Halteempfehlung enthält.\nUh, Haiku macht hier etwas durcheinander.  Genau deshalb haben\nwir uns für Haiku entschieden, weil\nes sonst schiefgegangen wäre.  Äh und äh,\nman kann nach allem filtern und sortieren.\nSie können also nach Latenz,\nnach Anzahl der Token oder\nnach Kosten filtern.  Sie müssen nicht ausschließlich\nnach Ihren\nLabels filtern.  Eine Möglichkeit, das zu\nnutzen, besteht beispielsweise darin,\neinen Agenten zu haben, der zwar die richtige\nAntwort liefert, aber dafür sehr teuer ist, richtig?  Es führt\nhunderte Websuchen durch und\nfindet schließlich die Antwort.  Das\nist in der Produktion nicht gut, und Sie können\nnach diesen teuren Aufrufen und\nOperationen suchen und\nIhre Eingabeaufforderung so anpassen, dass sie die Dinge auf\nkostengünstigere Weise erledigt.\nPhoenix bietet Ihnen also nicht nur die von\nIhnen eingegebenen Suchbegriffe an, sondern\nliefert Ihnen auch eine Menge zusätzlicher Informationen.\nÄh,\nwie gesagt, äh, bei diesem hier hieß es, es sei\nnicht so, es fehlte ein konkreter\nGlockenkauf-Halt.  Wenn wir\nweitere Filter einbeziehen, können wir andere\nErklärungen zur Umsetzbarkeit erhalten.\nDer Bericht präsentiert solide\nFinanzdaten und zukunftsorientierte Analysen und\nliefert Kontext, aber das Fehlen\neiner expliziten Empfehlung oder einer\numsetzbaren Anlagerichtlinie führt dazu, dass er\nin der Tat nicht umsetzbar ist\n.  Großartig.  Genau das wollten wir mit\ndiesem Produkt erreichen.\nAlso, äh, du solltest deine Auswertungen\nwie Code behandeln.  Ihre Bewertungen, die Formulierung\ndieser Aufforderung, die wir gerade zusammengestellt haben,\nwie genau man messen kann, ob\nIhr Agent gute Arbeit geleistet hat oder nicht, wird sich\nWort für Wort\ninnerhalb dieser Aufforderung drastisch ändern, weil LLMs\nso nicht-deterministisch sind.  Sie sollten\nIhre Eingabeaufforderungen also versionieren.  Sie sollten\nsie aufbewahren.  Sie sollten sicherstellen, dass\nSie vor etwa fünf Versionen wussten, was\ndiese Eingabeaufforderung bewirkte, wenn die Dinge\nradikal aus dem Ruder liefen?\nUnd Sie sollten sie an Beispielen testen, bei denen\nSie die richtige Antwort kennen.  Wenn\nder Richter also\nbei 40 % der Beispiele mit Ihren menschlichen Bezeichnungen nicht einverstanden ist, bedeutet das, dass\nIhre Aufgabenstellung nicht\nsehr gut ist.  Man kann Rubriken iterativ bearbeiten,\nohne den Code zu verändern.  Und die Behauptung,\ndass Sie nicht validiert haben, ist nur eine\nelegante Umschreibung dafür, dass Sie in großem Umfang falsch liegen.  Ähm,\neine weitere Sache, die ich anmerken möchte, wenn ich an der Erstellung von\nbenutzerdefinierten Evaluierungen arbeite, ist, dass in benutzerdefinierten LLM-Systemen der\nRichter der Gott-Evaluator ist.  Es ist\nsehr verlockend, eine\neinzige LLM-Bewertung zu schreiben, die versucht,\nalles abzudecken.  Es wird also\nauf Genauigkeit, Tonfall, Vollständigkeit,\nRichtlinienkonformität, Einhaltung und Formatierung geprüft.  Äh, und tu das bloß\nnicht, denn die Kalibrierung ist ein Albtraum\n.  Äh, wenn es schiefgeht, weiß man nicht,\nwarum es schiefgegangen ist.  Man müsste es dazu bringen,\nein zusätzliches Wort auszugeben, das besagt, dass\ndies eines der fünf Dinge ist, die ich\ngetestet habe.  Äh, teilen Sie stattdessen Ihren\nEvaluator in eine Sache pro Dimension auf.\nAlso, auf Genauigkeit prüfen, auf\nVollständigkeit prüfen, auf Tonfall prüfen.  Äh, aber das sollte\nalles mit einer separaten LLM-\nBewertung geprüft werden.  Ähm,\nund äh, ich möchte über Leitplanken im\nVergleich zu Northstar-Metriken sprechen.  Äh, manche Bewertungen\nsind Leitplanken, so wie\nSchiffsblockaden, zum Beispiel, wenn der Agent\neinen Aktienkurs halluziniert, dann ist das\nwahrscheinlich ein sicheres Aus für diese Aufgabe,\nrichtig?  Wir wollen nicht, dass da „Kaufen“ steht, wenn eigentlich „\nVerkaufen“ stehen sollte.  Aber wenn wir\nsagen, dass man immer\nergänzende Investitionen empfehlen sollte, ist das zwar nett\n, aber kein Ausschlusskriterium.\nMan muss also wissen, welche Bewertung\nwelche ist, welche davon Schiffsfächer sein sollten\nund welche nur\ninformativ sind.\nÄh, die Meta-Evaluation ist das Thema, um das\nwir uns bisher immer wieder bewegt haben.  Äh, woher\nwissen Sie, dass diese von\nIhnen erstellte benutzerdefinierte Bewertungsmatrix tatsächlich funktioniert?  Woher\nwissen Sie, dass dieser\nCode, den Sie geschrieben haben und der\nnun angibt, ob etwas\nhandlungsrelevant ist oder nicht,\nvertrauenswürdig ist?  Man kann es sich so vorstellen: Der\nRichter ist ein Klassifikator.  Es handelt sich um einen ML-\nKlassifikator, der das mentale Modell darstellt.\nEs nimmt also eine Eingabe entgegen und trifft eine\nVorhersage.  Und genau wie bei jedem\nKlassifikator kann man seine\nLeistung messen, indem man seine\nVorhersagen mit den tatsächlichen Werten vergleicht.  Äh,\nin diesem Fall können Sie also Ihr eigenes menschliches Urteilsvermögen\neinsetzen, um die Arbeit des LLM zu überprüfen.\nDas Problem mit dem menschlichen Urteilsvermögen ist, dass\nes mit viel menschlicher Anstrengung verbunden ist.\nMan muss sich die Ergebnisse\nder Evaluierungen tatsächlich ansehen und sie manuell vergleichen, indem man\nsagt: „Stimme ich dem in diesem\nspeziellen Fall zu?“ Wenn ich\nin Phoenix in einen Span gehe, kann ich eine Annotation hinzufügen.\nHier könnte ich also eine neue\nAnnotation erstellen, die besagt: „Vertraut der Mensch dem?“\nund mit Ja oder Nein antworten.\nDas kann ich programmatisch oder über\ndie Benutzeroberfläche machen.  Äh, und ich kann eine\nganze Liste von menschlichen Bewertungen meiner\nBewertungen einfügen, unabhängig davon, ob ich\ndiese Dinge für umsetzbar halte oder nicht.  Und dann\nkann ich einen Vergleich zwischen dem LLM als\nGutachter und meinen menschlichen Anmerkungen vornehmen.  Äh,\nich werde jetzt nicht näher darauf eingehen,\nwie das gemacht wird, denn das ist langweilig.\nAber ähm, was wir hier tun, ist,\neinen goldenen Datensatz zu erstellen.  Äh, Goldene\nDatensätze sind unglaublich hilfreich.  Ich habe\nsie gleich zu Beginn erwähnt.\nÄh, sie dienen dazu, zu messen, ob\nIhr Evaluator gute\nArbeit leistet.  Und die Vorgehensweise ist\ndieselbe, die auch die LM LLM angewendet hat.  Sie\nsollten sich ganz konkrete\nKriterien setzen, um zu entscheiden, ob\ndiese Sache ein Erfolg ist oder nicht\n.  Man sollte also nicht einfach als Mensch herangehen\nund sagen: Ja, es hat funktioniert oder Nein, es hat nicht\nfunktioniert.  Äh, weil Sie dann\ndasselbe Problem haben werden wie der LLM.\nDu wirst willkürlich vorgehen.  Sie\nsollten im Wesentlichen die gleiche\nAufgabenstellung lesen, die Sie dem LLM gegeben haben, und\nentscheiden, ob Sie glauben, dass\ndiese Sache gemäß den Regeln, die Sie sich selbst gegeben haben,\nhandlungsrelevant ist oder nicht.  Geben Sie sich also\nBeispiele, beseitigen Sie Unklarheiten\nund vermeiden Sie\nFaulheit.\nÄhm,\nwährend Sie das tun,\nsollten Sie Ihre Aufgaben eindeutig formulieren.\nÄhm,\nwenn Ihr Agent durchgehend 0 % erreicht,\nist die Aufgabe fast immer fehlerhaft.  Das\nbedeutet immer, dass Ihr Agent\nnichts unternimmt.  Äh, also\nkeine gute Bewertung.  Äh,\ndas kann passieren, wenn Sie\nIhre Bewertungsaufgabe so gestaltet haben, dass sie nur von einem Menschen erledigt werden kann,\nund Ihre Lernzielaufgabe so,\ndass Ihr Agent sie unmöglich\nbewältigen kann.  Um\ndas zu vermeiden, sollte man für jede Aufgabe\neine Referenzlösung erstellen.  Entscheiden Sie im\nVoraus, welches Ergebnis Sie von einem\nLLM-Abschluss in dieser Situation erwarten, und\ndann können Sie beurteilen, ob\nder LLM diesem Ziel auch nur annähernd nahe kommt\n.  Man kann auch in beide\nRichtungen testen.  Sie können Fälle testen, in denen\ndas Verhalten auftreten sollte, und Fälle, in\ndenen es nicht auftreten sollte.  Äh, und Sie sollten\nbeispielsweise nur testen, ob ein Finanzagent\nim\nInternet sucht. Das ist absolut etwas, was\nSie von einem Finanzagenten erwarten würden.\nMan könnte versehentlich einen Agenten erstellen,\nder die Auswertung immer wieder manipuliert.  Man\nkönnte einen Agenten erstellen, der immer\ndas Web durchsucht, unabhängig davon, ob dies nötig ist oder nicht\n.  Sie müssen also sicherstellen, dass Sie\nTestfälle in Ihrem Evaluierungset haben, die\neinen Fall abdecken, in dem keine\nWebsuche erforderlich ist und in dem dies\ngeschah.\nUnd Ihr wertvollster Datensatz besteht nicht nur aus\nTestdaten.  Es ist das verschlüsselte Urteil derjenigen,\ndie Ihr Fachgebiet am besten kennen.  Äh,\nes wird also wachsen, je mehr\nTestfälle Sie finden.  Und die heutigen Produktionsausfälle werden\nmorgen zum\nTestfall.\nWenn du das wirklich ernst meinst, solltest\ndu außerdem\ndeinen wichtigsten Datensatz aufteilen.  Es ist möglich,\neine Evaluierung zu erstellen, die zu stark an den Referenzdatensatz angepasst ist\n.  Es erfüllt Ihre Anforderungen an den Referenzdatensatz\n, aber es hat sich nicht richtig\ngeneralisiert.  Es hat einfach eine\nMenge Beispiele genau Ihres optimalen\nDatensatzes gesammelt und gibt diese daher weiter.  Sie\nsollten also Ihren goldenen Datensatz, also\n7525 Datensätze,\nin die Datensätze aufteilen, mit denen Sie das Modell trainieren,\nund die Datensätze, mit denen Sie es testen\n.  Jedes Mal, wenn Sie also eine Änderung\nan Ihrer Eingabeaufforderung vornehmen, können Sie diese\ngegen die 25 vorführen, die sie noch nie\nzuvor gesehen hat, und Sie können sehen, ob\nsie tatsächlich gute Ergebnisse liefert.   Also, lasst uns\nunseren Richter für die Umsetzbarkeit einsetzen.   Ähm,\näh, an genau denselben Beispielen wie zuvor\n.  Ich habe eine Span-Abfrage verwendet, um\ndie Filterung durchzuführen, genau wie wir es in\nder Benutzeroberfläche tun können.  Ähm,\nund ich habe äh nur die, die durchgefallen sind.\nÄh, tut mir leid\n, nein, ich habe die, bei denen menschliches Eingreifen erforderlich ist\n.  Also, ich habe hier diese Zeile eingefügt, in der\nich den komplizierten\nWert attributes.inpinput.v\nin input und den\nWert attributes.output in output umgewandelt habe, weil\ndas die Erwartung unserer eval-Funktion ist.  Nun wollen wir mal\nsehen, ob unsere Agenten den von mir hinzugefügten\nAnmerkungen zu den vom Menschen zu\nergreifenden Maßnahmen zustimmen oder nicht.\nÄh,\nwas wir hier feststellen, ist, dass in\nzwei von sechs Fällen meine menschliche,\nhandlungsrelevante Kennzeichnung und meine handlungsrelevante Kennzeichnung nicht übereinstimmten\n.  Äh, ich gestehe,\ndass ich es nicht geschafft habe, konkrete,\nhandlungsrelevante Kategorien für den Menschen zu entwickeln.  Ich habe die Kategorien „\nMenschlich handlungsfähig“ und „\nNicht handlungsfähig“ mehr oder weniger willkürlich zugeordnet, damit\nich wenigstens ein paar echte Daten habe, auf die ich hinweisen kann,\ndenn ich habe hier nur sechs Antworten\n.  Äh, an sechs Stellen hat es nicht funktioniert.  Äh,\nund deshalb reicht es eigentlich nicht aus, ein\nrichtiges Set zu spielen.  Ein realer Datensatz wäre 20 50 100\n200. Um also tatsächliche Daten zu haben, äh habe\nich einfach äh zufällig etwas eingefügt.   Ähm,\naber was uns das gibt, ist Folgendes: Wenn\nich es wirklich gemacht hätte, würde\nmir das ein Gefühl dafür geben, ob mein\nUrteilsvermögen, mein menschliches Urteil, mit\ndem Urteil des LLM übereinstimmt.\nDies ist äh, dies ist mein goldener\nDatensatz, den ich mit äh, dem LLM als\nRichter vergleiche, um herauszufinden, wo sie sich\nunterscheiden.  Ähm,\nwas uns zur Rubrikiteration führt.\nÄhm, genauso wie\nwir\nunseren Agenten verbessern können, indem wir\ndie Eingabeaufforderung verbessern, können wir auch unser\nSprachmodell als Richter nehmen und es\ndurch Iteration verbessern.   Um das zu\ntun, müssen wir über\nPräzision und Trefferquote nachdenken, was eher zu\ndiesen undurchsichtigen ML-Begriffen gehört, die die\nForscher in unser KI-\nEntwicklungsleben eingeschmuggelt haben.  Ähm, so kompliziert sind sie gar nicht\n.  Stellen Sie sich einen Spam-\nVorhersagealgorithmus vor.  Ein Spam-Erkennungsprogramm sagt Ihnen,\nob etwas Spam ist oder\nnicht.  Und Sie können Ihre Spam-\nVorhersage damit vergleichen, ob es sich bei den Inhalten\ntatsächlich um Spam handelt oder nicht.  Es gibt also vier\nmögliche Ergebnisse.  Es kann angezeigt werden, dass es sich um\nSpam handelt, und es ist tatsächlich Spam, was ein korrekt\npositives Ergebnis ist.  Man kann behaupten, es sei Spam,\nobwohl es kein Spam ist; es handelt sich um einen\nFehlalarm.  Man kann sagen, es ist kein\nSpam, und es ist auch kein Spam – ein echtes Negativ.\nOder man kann sagen, es sei kein Spam, und gleichzeitig ist es\nSpam.  Äh, das heißt, du hast verfehlt.  Um\nMachine-Learning-Ingenieure gibt es zwei Möglichkeiten,\ndiese Daten zu messen.  Und sie stehen im\nKonflikt zueinander.\nSie müssen also für Ihren Anwendungsfall entscheiden,\nwelche dieser Dinge Sie\noptimieren möchten.  Der erste Weg ist also\nPräzision.  Die Präzision gibt an, wie viele\nder richtigen Ergebnisse im Verhältnis zur\nGesamtzahl der positiven Ergebnisse stehen.  Hohe\nPräzision\nbedeutet, dass die\nAnzahl der falsch positiven Ergebnisse gering ist.\nDas bedeutet, dass Sie falsch\npositive Ergebnisse minimieren.  Wenn Sie sich in einem Anwendungsfall befinden, in dem\nfalsch-positive Ergebnisse wirklich gefährlich sind, dann\nist das genau das, was Sie tun sollten.  Das ist\nzum Beispiel super gegen Spam, weil\nman ja keine echte E-Mail an den Spammer schicken will\nund dafür eine\ngewisse Menge an echtem Spam in Kauf nimmt\n.  Äh, aber beim\nErinnern ist es genau umgekehrt.  Aus den\nwirklich positiven Ergebnissen und den Fehlschlägen ergibt sich folgender\nProzentsatz an wirklich positiven Ergebnissen.  Äh,\num hier eine Verbesserung zu erzielen, muss\nman die Anzahl der\nFehlschüsse minimieren.  Sie möchten die Anzahl\nder falsch negativen Ergebnisse minimieren.  Ein gutes Beispiel dafür wäre,\nwenn man sich zum Beispiel mit\nGesundheitsthemen beschäftigt.  Wenn man eine\nKrebsvorsorgeuntersuchung durchführen würde, möchte man natürlich\nso wenige Fehlalarme wie möglich haben.  Sie wären also\nmit einer Menge falsch positiver Ergebnisse bei\nKrebsvorsorgeuntersuchungen einverstanden,\nsolange Sie niemanden übersehen, der\ntatsächlich Krebs hat.  Diese\nbeiden Maßnahmen werden sich also in\nentgegengesetzte Richtungen entwickeln, wenn man optimiert.\nSie müssen also das für Ihren Anwendungsfall passende Modell auswählen\nund entscheiden, wie Sie es optimieren können.  Äh,\nschauen wir uns also mal an, wie das\nin der Praxis aussieht.  Äh, ich habe hier eine Menge\nCode geschrieben, der all\ndiese Dinge berechnet.  Und es kam mit\nPräzision und Erinnerungsvermögen für meinen Richter zum Tragen.  Also,\ndie Präzision dieses Modells ist\nwirklich gut.  Wenn der Richter „nicht bestanden“ sagt,\nist das dann richtig?  Äh, es ist in 100% der Fälle\nrichtig.  Und der Rückruf ist wirklich\nschlecht.  Äh, welche der echten FA-\nFails, wie viele davon erkennt es?  Äh, das\nist, was man erwarten würde.  Man kann nicht\nerwarten, bei einem davon 100% zu erreichen.  Ich\nhabe also etwas entwickelt, das sich durch seine\nPräzision auszeichnet.  Es ist sehr gut darin,\nFehlalarme zu vermeiden.\nÄhm,\nbei einer so kleinen Stichprobe sind diese Zahlen\npraktisch nutzlos, richtig?  Sie möchten,\nwissen Sie, einen optimalen Datensatz\nmit 50, 100 oder 200 Elementen.  Und dann\nerhält man konkrete Zahlen für\nPräzision und Trefferquote.  Das ist eher\nein Spielzeugbeispiel.  Ähm,\nund in den meisten Evaluierungsszenarien werden Sie\nwahrscheinlich der Trefferquote Priorität einräumen wollen,\ndenn es ist besser, einige wenige\nFehlalarme auszulösen, als echte\nFehler zu übersehen.  Ein falsch positives Ergebnis bedeutet lediglich, dass\nman etwas als Mensch überprüfen muss.\nÄh, das ist eigentlich in Ordnung.  Ein\nübersehener Fehler bedeutet hingegen, dass fehlerhafte\nErgebnisse Ihre Benutzer erreichen.  Aber wie\ngesagt, es gibt Anwendungsfälle – zum\nBeispiel medizinische Anwendungsfälle –, in denen man\ndas Gegenteil tun möchte.\nEin paar bekannte Fallstricke\nbei der Verwendung von LLM-Richtern sollten beachtet werden\n.  Eine davon ist Positionsbias.\nWenn man zwei Optionen präsentiert, neigt der Richter dazu, je nachdem, um\nwelches Modell es sich handelt\n, entweder immer die erste oder\nimmer die letzte zu bevorzugen.  Äh, da gibt es einen\nLängenbias.  LM bevorzugen im Allgemeinen längere Antworten gegenüber\nkürzeren.   äh\nund tendieren dazu, sie zu bevorzugen.  Äh,\nda gibt es einen Vertrauensbias.  Auch ein Richter kann sich\nvon einer selbstsicher klingenden Antwort täuschen lassen,\ngenau wie Menschen.\nUnd dann gibt es noch die Selbstpräferenzverzerrung.  Wenn\nman dasselbe Modell zur Beurteilung verwendet, mit dem\nman ursprünglich das Ergebnis generiert hat, dann neigen\nsie dazu, ihr\neigenes Ergebnis zu mögen.  Äh, das ist ein weiterer\nGrund, warum wir als Richtermodell ein anderes Modell verwenden als als dasjenige, das\nden Agenten selbst ausführt.\nÄhm,\nSie könnten auch einen ganz\nanderen Anbieter in Betracht ziehen.  Sie können also die Cloud\nfür Ihren Agenten nutzen.  Sie können OpenAI\nfür Ihre Auswertungen verwenden.  Äh, und Sie\nerhalten zuverlässigere Bewertungen, als\nwenn Sie Claude für alles verwenden würden.\nÄhm,\nwie kann man feststellen, ob diese Verzerrungen die\nErgebnisse beeinflussen?  Man muss die\nTreffsicherheit der Richter über verschiedene\nKategorien von Eingaben hinweg verfolgen.  Wenn der Richter also\nlange Antworten immer durchgehen lässt und\nkurze immer ablehnt, dann weiß man, dass\nman ein Problem mit einer Bevorzugung langer Antworten hat.  Wenn\nbei einer Kategorie von\nAbfragen alles erfolgreich ist, bei einer anderen jedoch alles fehlschlägt, muss\nman der Ursache auf den Grund gehen.\nUnd der Maßstab sollte hier die\nmenschliche Leistungsfähigkeit sein, nicht die Perfektion.  Äh,\ndas ist das Letzte, was ich\nzur Metabewertung sagen möchte.  Wenn Sie zwei\nPersonen mit der Erstellung Ihres optimalen\nDatensatzes beauftragen und sie\nbeispielsweise fragen, ob dieser Bericht Handlungsempfehlungen enthält\noder nicht, werden sie nicht immer einer Meinung sein\n.  Tatsächlich werden sie\nüberraschend oft unterschiedlicher Meinung sein\n.  Die Interrater-Reliabilität liegt\noft nur bei 0,2 oder 0,3 der Fälle.  Äh,\nalso zwei Experten, gleiches Ergebnis, gleiche\nBewertungskriterien – und sie werden unterschiedlicher Meinung sein.  Äh, wenn\nIhr LLM-Prüfer eine höhere\nÜbereinstimmung mit Ihnen erzielt als das, wenn er\nPunkt 4 erreicht, dann macht er das wirklich sehr, sehr\ngut.  Äh, dass der Richter anderer Meinung ist,\nist also nicht unbedingt\nein Grund, Ihre Beurteilung zu verwerfen.  Es ist so, als ob\nder Richter Ihnen häufiger widerspräche,\nals ein Mensch Ihnen widersprechen würde.\nAußerdem sollten Sie dafür sorgen, dass\nIhre Misserfolge fair erscheinen.  Das ist\netwas, was Anthropic zur Sprache brachte, als\nsie über Meta-Bewertungen sprachen.\nWenn eine Aufgabe fehlschlägt, sollte klar sein,\nwas der Agent falsch gemacht hat und warum.\nWenn Sie sich also einen fehlerhaften Trace ansehen und denken,\ndass die Antwort für mich in Ordnung aussieht, liegt das\nProblem wahrscheinlich an der Auswertung und nicht am\nAgenten.  Ähm, das ist tatsächlich bei\nEnthropic passiert.  Claude Opus\nerzielte anfänglich 42 % bei einem Benchmark namens\nCorebench.  Und da ihnen das niedrig erschien, haben\nsie genauer untersucht, was\nCorebench eigentlich macht, und dabei\nmehrere Probleme festgestellt, nicht im\nModell selbst, sondern in der Auswertung.  Äh, also,\nzum Beispiel prüfte die Auswertung, ob das\nErgebnis 96,12 sein sollte,\nund Claude gab das Ergebnis\n96,124991 an, woraufhin die Auswertung sagte:\nNein, das stimmt nicht,\nweil das nicht meinen Erwartungen entsprach.\nNach der Korrektur der Bewertungsfehler stieg die Punktzahl\nauf 95%.  Also, Ihre Beurteilungen können, äh,\nvöllig falsch sein, äh, Dinge als\nfalsch beurteilen, wenn sie einfach zu\nstreng sind, oder sie\nbeurteilen etwas, das nicht das ist, was Sie\nbeurteilen wollten.\nDie Lehre daraus ist, dass man\nBeurteilungen nicht für bare Münze nehmen sollte.  Sie sollten sich\ndie Erläuterungen zu Ihren Beurteilungen immer einmal ansehen\n.  Sie sollten sich\ndie Ergebnisse Ihrer Auswertungen ansehen.  Sie\nsollten es mit dem Referenzdatensatz vergleichen\n.  äh, um sicherzustellen, dass\nSie den Agenten tatsächlich verbessern.\nSo, der siebte Schritt und die letzte Sache, von der\nich sicher bin, dass Sie alle erfreut sein werden zu erfahren,\nsind\nDatensätze und Experimente.  So gelingt es\nIhnen, nicht nur festzustellen, ob\netwas nicht stimmt, sondern Ihren Agenten tatsächlich zu verbessern\n.  Sie haben also einige\nFehler gefunden, die Erklärungen gelesen und\nwissen nun, was Sie verbessern können.  Ähm, man\nändert also die Eingabeaufforderung und was dann?  Woran\nerkennen Sie, dass Ihre Reparatur tatsächlich funktioniert hat?\nWoran erkennen Sie, dass Sie\nIhren Agenten verbessert haben?  Äh, woher wissen Sie, dass Sie\nnicht etwas kaputt gemacht haben, das\nvorher noch funktioniert hat?  Wenn man den Agenten einfach nochmal\nan ein paar Beispielen laufen lässt und das Ergebnis visuell beurteilt, dann geht es letztendlich\nnur um das Bauchgefühl.  Sie\nbenötigen eine systematische Methode, um zu testen, ob\nIhre Änderungen an Ihren Evaluierungen bzw. an\nIhrem Agenten Ihre Evaluierungen tatsächlich systematisch verbessert haben\n.  Und genau dafür sind\nExperimente da.   Hierfür begeben\nwir uns in einen völlig\nanderen Bereich der Phoenix-Benutzeroberfläche.  Wir gehen\nzu den Whoops.  So, jetzt haben wir's.\nDas hast du nicht gesehen.  Äh,\nwir gehen zu unseren Experimenten, äh, zur Auswertung.\nDazu können Sie zu [Link einfügen] gehen, um\nIhren Datensatz zu erstellen.  Sie gehen zu\nIhren Traces und nehmen\nbeispielsweise eine Reihe fehlerhafter Traces\nund klicken dann auf \"Zum Datensatz hinzufügen\".  Äh,\nmit diesem kleinen Pluszeichen hier können Sie einen neuen Datensatz erstellen\n.  Sie können\neinen bestehenden Datensatz erweitern, und das liefert\nIhnen in diesem Fall Informationen zu finanziellen Misserfolgen von KI-Agenten\n.  Sie können sich also zu den\nBeispielen durchklicken und sehen, dass ich die\nsechs Fälle, in denen unsere Aktionsverfolgung\nfehlgeschlagen ist – äh, Entschuldigung, als unsere\nAktionsbewertung fehlgeschlagen ist –, in einem\nDatensatz zusammengefasst habe, weil ich genau das\ntun möchte.  Ich möchte nicht jedes Mal alle 13 ausführen müssen,\noder, wenn es um die Produktion geht, alle 1000\n.  Ich möchte meinen Ex meine neue\nEingabeaufforderung nur gegen die Male laufen lassen, in denen sie\nfehlgeschlagen ist, und ich möchte sehen, ob es\nbesser wird.  Ähm, also\nverbessern wir jetzt den Agenten.  Wir können uns\nansehen, was die Auswertungen ergeben haben. Die\nBewertung der Umsetzbarkeit ergab, dass einige\nBerichte nicht umsetzbar waren, da sie\nDaten zusammenfassten und keine\nexpliziten Empfehlungen enthielten. Daher können wir\nbeide Vorgaben aktualisieren. Die Recherchevorgabe\nerfordert nun, wie bereits erwähnt, explizit\nbestimmte Finanzkennzahlen,\naktuelle Nachrichten und Kursdaten.\nDie Schreibvorgabe verlangt nun explizit\neine Kauf-, Verkaufs- oder Halteempfehlung.\nDas geschieht hier.\nFalls Sie immer noch mitprogrammieren, viel\nErfolg!  Und hier\nkönnen Sie versuchen,\nden Agenten besser zu verbessern als ich.  Äh, Sie könnten\neine bessere Rechercheaufgabe stellen.  Du\nkannst eine bessere Schreibanregung bekommen.\nBeachten Sie, dass jede Änderung, die ich\nhier an der Aufgabenstellung vorgenommen habe, auf einen bestimmten Fehler\nin den Auswertungen zurückzuführen ist.\nIch ändere meine\nAgenten-Ansage nicht einfach willkürlich.  Ich ändere es als\nReaktion auf bestimmte Dinge, die wir\nbei der Evaluierung festgestellt haben.  Also,\nFinanzkennzahlen-News der letzten sechs Monate,\nKauf-, Verkaufs- und Halteempfehlungen – das waren\nDinge, die in den Erläuterungen aus unserem\nvorherigen LLM als Richter als\nfehlend bezeichnet wurden, und wir haben gesagt: Okay,\ndiese Dinge einbeziehen.  Wir bekommen also nicht einfach nur\neine Mitteilung, dass wir falsch liegen.  Wir\nerhalten aus unseren Evaluierungen Hinweise darauf, was\nwir verbessern können, und lassen\ndiese Erkenntnisse direkt in unseren Agenten einfließen, wodurch wir\nden Agenten auf diese Weise verbessern.  Ähm,\ndas ist datengesteuertes Prompt Engineering.   Genau darum geht es bei\nArise.  Es geht darum,\neine Menge Informationen, die\nuns LM darüber gibt, was nicht funktioniert\nund was nicht,\nin echte Verbesserungen für unseren\nAgenten umzusetzen.   So, jetzt\nlasst uns ein richtiges Experiment durchführen.   Um\ndas zu tun, benötigen Sie eine Aufgabe, die Ihr\nExperiment ausführen soll.  Äh, in diesem Fall handelt es sich um\nunseren verbesserten Finanzbericht.  Es ist im\nGrunde wieder genau derselbe Agent.\nÄh, und wir haben es so gemacht, dass\nwir diesen Agenten in eine\nAufgabenfunktion eingefügt haben, die diesen Agenten\nmit den erwarteten Eingaben und Ausgaben ausführt\n.  Wir haben einen neuen\nKlassifizierungsevaluator erstellt, und zwar mit\ndem Label „Handlungsfähigkeit“.  Wir haben dafür\ndie gleiche Vorlage für die Umsetzbarkeit verwendet.\nÄhm,\nund wir haben\ndiesen neuen Evaluator erstellt und jetzt führen wir ihn aus und\nrufen unseren\nDatensatz ab, der nur die Fehler enthält.\nUnd wir werden unseren asynchronen\nClient, der schneller ist,\ngegen genau diese Fehler ausführen.\nÄh, also können Sie hier sehen, äh, tada, äh,\nmeine Verbesserungsvorschläge für meinen Agenten haben dazu\ngeführt, dass der Agent nur noch\n5 von 13 Antworten als\numsetzbar oder nicht umsetzbar erhält.  Und äh,\nalle sechs meiner zuvor fehlgeschlagenen\nTests laufen jetzt korrekt.\nSie können also hier sehen, äh, die\nErgebnisse in diesem Diagramm.  Was ich\nhier gemacht habe, entspricht nicht dem, was in der Produktion aussehen würde\n.  Wenn Sie in der Produktion wären, hätten\nSie\neine sehr kleine Änderung an Ihrer Eingabeaufforderung vorgenommen\nund\nüber tausend Datensätze hinweg eine sehr geringfügige Verbesserung erzielt;\nSie würden diesen kleinen\nGraphen erhalten, der zeigt, wie Ihr Agent\nin all diesen Dingen langsam besser wird.\nIch habe es hier gedreht, weil, äh, ihr wisst ja,\nes sind bereits 90 Minuten vergangen.  Wir müssen hier irgendwann raus\n.\nAber das ist doch der Berg, den Sie\nerklimmen.  Das ist buchstäblich der Weg,\nwie man von null auf 100 % kommt:\nMan misst innerhalb seiner Experimente.\nHat meine prompte Änderung irgendetwas bewiesen\n?  Hat mein Experiment\nim Vergleich zum nächsten Mal ein höheres oder ein niedrigeres Ergebnis erzielt?\nManchmal wird man eine Veränderung vornehmen,\ndie das Ergebnis\nverschlechtert.  Und das musst du wieder rückgängig machen\n.  Kehren Sie zu Ihrer vorherigen\nVersion Ihrer Eingabeaufforderung zurück.  Ändere etwas\nanderes.  Deshalb behandelt man sie wie\nCode.\nDas Wichtigste hierbei ist, dass es einem Phoenix-\nExperiment völlig egal ist, was Ihre Aufgabe genau bewirkt\n.  In diesem Fall bestand die\nAufgabe meines Experiments also darin,\nden vollständigen Agenten erneut mit einem neuen\nDatensatz auszuführen.  Aber wenn unsere Evaluierung\nuns gesagt hätte, dass unser Toolaufruf\nschlecht ist, hätte ich einfach eine Evaluierung durchführen können, die\nnur den Toolaufruf ausführt, und das wäre\nviel billiger und viel\nschneller gewesen als eine Evaluierung, die den\ngesamten Agenten ausführt.  Man kann also\nExperimente mit einem Teilbereich dessen durchführen, was der\nAgent tut, also mit einer kleinen Untermenge dessen, was er\ntut, und diesen Teil verbessern,\nohne jedes\nMal den gesamten Agenten aufwendig ausführen zu müssen.\nDie Stärke von Experimenten liegt im\nkontrollierten Vergleich.  Äh, also äh, man bekommt\ndie gleichen Eingaben, die gleichen Auswerter.\nDas Einzige, was sich geändert hat, sind die\nAgentenaufforderungen.  Das bedeutet, dass jegliche\nDifferenz in den Punktzahlen auf\nIhre Veränderung zurückzuführen ist.  Sie fragen sich also nicht,\nob die höhere Punktzahl auf Ihre\nprompte Änderung zurückzuführen ist oder darauf, dass die Websuche dieses Mal zufällig\nbessere Ergebnisse liefert\n.  Sie haben damit\neine wichtige Fehlerquelle eliminiert.   Im\nIdealfall würden Sie jeden\ndieser Schritte mehrmals ausführen, um\nder Nichtdeterministik Ihrer Ergebnisse Rechnung zu tragen.  Ähm,\ndas ist das Konzept des Passes bei K, auf das ich gegen\nEnde noch kurz eingehen werde.\näh, aber im Moment liefert uns ein einzelner Durchlauf pro Beispiel\nein ausreichend gutes Signal, um\nuns zu sagen, ob die Dinge richtig oder falsch waren.\nUnd genau in diesem Evaluierungs-Iterationszyklus liegt\nder eigentliche Wert der Evaluierung.  Man\nerzielt Ergebnisse, verbessert diese\nErgebnisse, verbessert diese Ergebnisse weiter und\nverbessert so nach und nach die App.  Eine\nMöglichkeit, die man an diesem\nPunkt haben könnte, wäre zu fragen: Warum tue ich als Mensch\ndas überhaupt?  Was wäre, wenn ich die Ausgabe von\neval an Claude Code weitergeben\nund sagen würde: „Hey Claude Code, geh zurück zu meiner\nApp und verbessere sie irgendwie“? Das ist\nClosed-Loop-Evaluation, was wir für\nsehr spannend halten und was mit der Verbesserung\nder Modelle definitiv Realität werden wird.\nMan schreibt die erste Version einer\nApp und verwendet dann eval als\nFeedback-Mechanismus für seinen Coding-\nAgenten, der die App dann automatisch verbessert,\nohne dass man selbst\ninvolviert sein muss.  Äh, das mache ich\nhier nicht, denn wir\nsitzen ja alle schon eine Weile hier und es ist uns sehr warm.  Ich werde\nmeine\nGastfreundschaft also nicht weiter ausdehnen, als ich es bereits getan habe\n.\nEine gute Frage, die Sie sich wahrscheinlich stellen,\nist: Wie viele Proben benötigen Sie?  Ich habe von\n50, 100, 200 und 400 Proben gesprochen.  Ähm, das\nmuss man nicht einfach nur schätzen.  Man\nkann Mathematik anwenden.  Wenn Sie\neinen Agenten anstreben, der nur in 5 % der Fälle ausfällt,\noder, sagen wir, in 3 % der Fälle, dann\nergibt eine Fehlerrate von 3 % bei 200 Stichproben ein\n95 % Konfidenzintervall, das\nirgendwo zwischen 6 und 5,4 % liegt.  Ähm,\n3 % Misserfolg klingt gut, oder? 3 % sind\nweniger als 5 %, und genau das wollten Sie ja\nerreichen.  Aufgrund des\nKonfidenzintervalls kann Ihre tatsächliche\nAusfallrate jedoch irgendwo zwischen 6 und\n5,4 % liegen.  Wenn Sie die Größe Ihrer\nStichprobe auf 400 verdoppeln, verringern Sie Ihr\nKonfidenzintervall auf 1,3 % bis 4,7 %,\nwas bedeutet, dass Sie nun konstant\nunter der 5 %-Schwelle liegen und die Ware versenden können.\nAber um das zu tun, musste man die\nAnzahl der Proben verdoppeln.  Das bedeutete also, dass du\nden ganzen Aufwand verdoppeln musstest.  Sie mussten\ndie Größe Ihres Referenzdatensatzes verdoppeln.\nMan musste alles verdoppeln.  Äh, also\nirgendwann muss man eine\nKosten-Nutzen-Analyse durchführen, z. B. wie\ngenau dieser Agent sein muss?  Wie\nviel Aufwand bin ich bereit zu betreiben, um die Genauigkeit\ndieses Geräts um 2 % zu verbessern\n?\nÄh,\naus Experimenten im Werkstattmaßstab wie\nheute, 12 bis 20 Beispiele, erhält man ein\nRichtungssignal.  Für\nVersandentscheidungen sind 200 bis 400 Beispiele ein guter\nRichtwert.  Äh, wie gestaltet man den Zyklus\nsystematisch, wenn man ihn iterativ durchführt?  Äh,\nworauf konzentrieren Sie Ihre Anstrengungen?  Nicht\njede Veränderung hat die gleichen Auswirkungen.  Äh,\nes gibt eine Hierarchie.  Dies ist die\nWirkungshierarchie, die ich ganz am\nAnfang erwähnt habe.  Die Wirkungshierarchie zeigt\nIhnen, worauf Sie sich zuerst konzentrieren sollten.  Die\nBehebung von Problemen mit der Datenqualität hat mit Abstand die größte Auswirkung.\nWenn Ihr Agent die falschen\nQuellen durchsucht, wenn Ihre Wissensdatenbank\nveraltete Daten enthält, dann wird\nIhnen auch noch so schnelle Entwicklungsarbeit nicht weiterhelfen.\nÄh, also äh, Sie sollten zuerst die Daten korrigieren.\nSobald Sie sich vergewissert haben, dass die\nDaten, die Sie Ihrem Agenten zur Verfügung stellen, von hoher\nQualität sind, sollten Sie als\nnächstes Verbesserungen anstoßen.  Ähm, ein paar\nkurze Beispiele in Ihrer Aufgabenstellung, klare\nAnweisungen, Einschränkungen, was der\nAgent tun soll und was nicht.  Das sind\noft die größten ROI-Veränderungen.\nUnd dann kommt die Modellauswahl an dritter Stelle in\nder Wirkungshierarchie.  Manchmal\nlöst ein leistungsfähigeres Modell Probleme, die durch\nAufforderungen nicht gelöst werden können.  äh, aber es kostet auch\nmehr.  Man muss also abwägen,\nob sich das lohnt oder nicht.  Äh,\nund dann noch die Hyperparameter-Optimierung, Dinge\nwie Temperatur, Spitzendruck und so weiter\n.  Äh, die sind ganz unten\n.  Sie haben nur sehr selten einen\nnennenswerten Einfluss auf die Ergebnisse\nIhrer Beurteilungen.\nEine Möglichkeit wäre, die\nEvaluierungen zu schreiben, bevor man ein\nFeature entwickelt.  Wenn Sie beispielsweise möchten, dass Ihr Agent\nvor der Bearbeitung einer Rückerstattung immer die Identität des Kunden überprüft,\nkönnen Sie ein evaluiertes Skript schreiben, das dies\nzuerst prüft. Dadurch erhalten Sie eine\nFähigkeitsbewertung und eine zu bewältigende Hürde.\nDas ist dasselbe wie testgetriebene\nEntwicklung, was bedeutet, dass\njeder sagt, es sei eine gute Idee, aber nur wenige es\ntatsächlich umsetzen.\nEvaluierungsgetriebene Entwicklung ist in der Praxis die Art und Weise, wie\nDinge wie Claude Code entstanden sind.\nAnthropopic hat Fähigkeitsbewertungen durchgeführt\nund dann Claude Code eine schwierige Aufgabe gestellt\n.\nWenn ein neues Modell auf den Markt kam, ließen sie\ndie Suite laufen und sahen sofort,\nwelche ihrer Wetten sich ausgezahlt hatten.  Sie würden\nsofort sehen, welche der\nim Voraus vorgenommenen Änderungen tatsächlich dazu\nbeigetragen hatten, dass es besser lief, und welche\nnicht.  Ähm,\nwer kann diese Beurteilungen schreiben?  Wie ich\nbereits sagte, sollten Sie\nIhre nicht-technischen Stakeholder einbeziehen,\nda diese\neine viel bessere Vorstellung davon haben, was\nfür die Erstellung Ihrer\nEvaluierungen gut und schlecht ist.  Also, Produktmanager,\nKundenbetreuer, Vertriebsmitarbeiter – sie\nalle können zu den Evaluierungsaufgaben beitragen und\nIhre Evaluierungen verbessern.\nEntschuldigung.\nAbsolut.  Denn sie können Ihnen sagen, dass\nein einfacher\nTest darin bestünde, dass dies\nin jeder einzelnen Antwort enthalten sein sollte, und Sie können\ndas in eine Kodierung umwandeln.  Äh, aber hauptsächlich werden sie\nmit vorgegebenen Aufgaben arbeiten.\nEin weiteres Muster, das man kennen sollte,\nist das Daten-Schwungrad.  Je\nmehr Expertenwissen und\n-urteile man einbezieht, desto größer wird der\nDatensatz, desto besser die\nAuswertung,\nund jede Iteration verstärkt diesen Effekt\n.  Je umfassender Ihre Evaluierungssuite wird\n, desto\nbesser werden Ihre Agenten und desto tiefer wird Ihr Verständnis für\nFehlermodi.  Und dadurch\nentsteht ein differenzierter Datensatz,\nder zu einem Wettbewerbsvorteil wird.\nNiemand außer dir selbst hat Zugriff auf deine Beurteilungen.  Niemand\naußer Ihnen verfügt über diese lange Liste von\nProduktionsdaten und Produktionsauswertungen, die besagt, dass\ndies alle Möglichkeiten sind, wie der Agent\nausfallen kann.  Dadurch entsteht ein Wettbewerbsvorteil, den andere\nnicht haben, und der Ihnen dabei helfen kann,\nIhren Makler von einem\nanderen Makler auf dem Markt abzugrenzen, der\ndasselbe versucht.\nUnd ein letzter praktischer Vorteil von\nEvaluierungen ist der\nVorteil der Modellübernahme.  Wie gesagt, es kommen ständig neue Modelle auf den Markt\n.  Wenn Sie über einen\numfassenden Satz von Regressionsauswertungen verfügen,\ndann können Sie\ninnerhalb weniger Minuten feststellen, ob\ndieses neue Modell Ihre Auswertungen\nverschlechtert oder Ihren Agenten verbessert.  Äh, und\nob Sie mit dem\nneuen Modell versenden können.\nNun werdet ihr alle erleichtert sein zu erfahren,\ndass wir fast am Ende dieses\nWorkshops angelangt sind.  Vielen Dank an alle, die bis zum\nSchluss durchgehalten haben.  Ich bin sehr beeindruckt\nvon euch allen.  Ich werde Ihnen\njetzt einen kurzen Überblick über die Dinge geben, die wir\nnicht behandelt haben, damit Sie wissen, wonach Sie\ngoogeln können, um noch weiter zu gehen als das, was\nwir heute besprochen haben.  Eines davon ist die Produktionsüberwachung\n.  Äh, darauf\nlegt unser Enterprise-Produkt großen\nWert, Phoenix hingegen nicht.\nSobald Sie einen Agenten in die\nProduktion überführt haben, können Sie einen bestimmten\nProzentsatz Ihres Datenverkehrs an eine\nEvaluierungsumgebung senden und so kontinuierlich\nüberprüfen, ob\nIhr Agent gut funktioniert.  Äh,\ndas kann zu Einbrüchen in der\nModellqualität führen, weil solche Einbrüche manchmal auch\nohne Modelländerung auftreten.  Es kann\nAngriffe aufzeigen, bei denen Angreifer\neinen Weg gefunden haben, Ihren Agenten zum\nAbsturz zu bringen.  Und Tests im Vergleich zur Produktionsumgebung\nkönnen dem entgegenwirken.  Und es kann\nauch Agenten- und Modelldrift testen.\nÄhm, wenn sich Ihr Anwendungsfall ändert, wenn sich Ihr\nProdukt ändert, werden Dinge, die früher\nin Ihrem Agenten funktioniert haben, nicht mehr funktionieren.\nUnd kontinuierliche Produktionsbewertung, äh,\ndie kann man finden.\nMan kann auch eine kostenorientierte\nBewertung vornehmen.  Wie gesagt, wir haben\nfür unseren Agenten ein Haiku und für unseren Richter ein Sonett verwendet,\nweil das billige Vorlagen sind und schnell vergriffen sind\n.  Ähm, aber in der Produktion\nkann man noch weiter gehen.  Man kann verschiedene\nModelle für verschiedene Arten von Abfragen verwenden.\nWenn die Frage also lautet: „Wie viele\nStunden haben Sie?“, dann benötigt man dafür nicht die gleiche\nRechenleistung wie für die Analyse der\nvergleichenden KGV-Verhältnisse dieser fünf\nHalbleiterunternehmen.  So können Sie eine\ngestaffelte Modellauswahl vornehmen.  Sie können in Ihrem Agenten kostengünstige\nModelle für einfache Abfragen und teure\nModelle für komplexe\nAbfragen verwenden.\nEine Möglichkeit, dies zu tun, ist die\nkostennormalisierte Genauigkeit. Das ist ein\nGoogle-Begriff, den ich hier\neinfach mal einfüge, damit Sie ihn googeln können.  Äh, es ist eine\nMöglichkeit, diese Kompromisse konkret zu machen.\nEs ist die Genauigkeit geteilt durch die Kosten.  Ein\nAgent, der in 92 % der Fälle korrekt antwortet und 2 Cent pro\nAnfrage kostet,\nkönnte also besser sein als einer, der in\n95 % der Fälle korrekt antwortet und 15 Cent pro Anfrage kostet.\nDie Auswertung wird Ihnen zeigen, ob sich\ndieser Kompromiss lohnt oder nicht.\nÄh, und dann gibt es noch die paarweise\nAuswertung.  Wie ich bereits erwähnte, ist es\nverlockend,\nbei der Bewertung den Agenten zu bitten,\netwas auf einer Skala von eins bis zehn zu bewerten. Dafür ist das Tool jedoch sehr schlecht geeignet\n.  Eine Sache, die es viel\nbesser kann, ist, wenn man ihm zwei\nBeispiele gibt und es bittet, zu vergleichen, welches\nbesser ist.  Äh, das ist eine paarweise\nAuswertung.  Man kann also sagen, welches dieser beiden\nErgebnisse besser war.  Äh, und\nes gelingt ihm viel besser beim\nVergleich der beiden, weil es zwei\nkonkrete Beispiele zur Verfügung hat.  Äh, das\nist besonders nützlich für A/B-Tests von\nPrompt-Versionen oder Modell-Upgrades.\nÄhm,\nund dann gibt es noch die Zuverlässigkeitsbewertung.  Ich\nerwähnte „Pass at K“. Ähm, „Pass at K“ fragt,\nob der Agent\nin K Versuchen mindestens einmal erfolgreich sein kann.  Äh, und dann gibt es noch die\nÜbergabe an die Potenz von K, die besagt, dass\nsie bei jedem K-ten Versuch gelingen kann.  Äh, je\nhöher der Wert von K ist, desto stärker weichen diese\nbeiden Zuverlässigkeitsmaße voneinander ab\n.  Um\npassiv K nähert sich Null.  Entschuldigung, aber wenn man\nk weitergibt, nähert sich das 100% und wenn man\nk hoch null gibt, nähert sich das Null.  Welches davon für Sie relevant ist, hängt von\nIhrem\nAnwendungsfall ab.  Äh, ein Programmierassistent, der\nes irgendwann richtig macht, das ist toll\nfür passives K. Man kann es einfach immer\nund immer wieder versuchen, bis\netwas dabei herauskommt, das funktioniert.  Äh, wohingegen ein\nKundendienstmitarbeiter, der es\nnach fünf Versuchen falsch macht, wissen Sie, jeder\nfünfte Versuch ist aus\nSicht Ihrer Kunden ein Misserfolg.  Also, äh,\ndie Kennzahl „hoch K“ ist die Art und Weise, wie man\neinen Kundenservice-Bot misst.\nÄhm, und dann gibt es noch die Grenze.   Es gibt\nSysteme mit mehreren Richtern, bei denen man,\nwissen Sie, als LLM-Absolvent als Richter\nmehrere Richter gleichzeitig hinzuziehen kann, um\nverschiedene Meinungen einzuholen oder\nFakten nachzuschlagen.  Sie können Behauptungen überprüfen.  Ähm,\naber das ist im Grunde genommen das Ende dessen, was\nwir heute behandelt haben.  Das ist die\nSchleife.  Man instrumentiert, man verfolgt, man\nevaluiert, man annotiert manuell, man analysiert\ndiese Annotationen, man verbessert seinen\nAgenten und dann geht man wieder von vorne los.  Ähm, hier noch ein\nletzter Tipp:\nFangen Sie klein an.  Äh, Sie müssen das nicht alles\nauf einmal erledigen.  Beginnen Sie damit, Ihre\nSpuren zu lesen.  15 Minuten Lesen realer\nAusgaben sind viel besser, als\nstundenlanges Herumexperimentieren mit der\nEingabeaufforderung, wenn man die Traces\nund die Erklärungen nicht gelesen hat.  Ähm,\nschreibe als allererstes `eval` einen Code-`eval`\n.  Prüfen Sie, ob es das\nerwartete Format hat.  Prüfen Sie, ob die\nerwartete Zeichenkette vorhanden ist.\nUnd dann baue deine Evaluierungssuite langsam\nvon dort aus auf.  Erstellen Sie\nzunächst Fähigkeitsbewertungen und wandeln Sie diese dann, sobald Sie sie bestanden haben,\nin Regressionsbewertungen um.\nÄh,\nEvaluierungen sollten ganz am Anfang der\nEntwicklung vorgenommen werden.  Manche fügen sie hinzu, sobald sie eine gewisse\nGröße erreicht haben.  Äh, aber der Zeitpunkt, an dem man\nBewertungen braucht, ist dann, wenn die Stimmungsanalyse zum\nFlaschenhals für Verbesserungen wird.  Wenn Sie feststellen,\ndass die Änderung einer Sache\ndrei andere Dinge kaputt gemacht hat, ohne dass Sie es bemerkt haben, dann ist es Zeit für\nEvaluierungen.  Wenn\neine Regression zum ersten Mal auftritt, bevor\nsie Ihre Benutzer erreicht, anstatt danach, dann\nhaben Sie die Kosten für die\nErstellung Ihrer Evaluierungsversionen gerechtfertigt.   Äh,\njetzt ist es an der Zeit, es\nwirklich auszuprobieren.  Sie haben bereits ein Phoenix\nCloud-Konto.  Hier ist der Link zur\nPhoenix-Dokumentation.  Äh, und Phoenix selbst\nist Open Source.  Wenn Sie also Lust haben,\nbei Phoenix mitzuwirken, äh, das ist\ngroßartig.  Ähm,\nund nur noch als abschließende Werbung sollte ich\nerwähnen, dass es da noch Arise AX gibt.  Sie\nkönnen also alles, was Sie in\nPhoenix tun können, auch in Arise AX tun, aber es gibt einige\nDinge, die Sie in Arise AX tun können,\ndie Sie in Phoenix nicht tun können, und das\nsind alles Dinge, die nur für Unternehmen relevant sind.  Wenn Ihr\nUnternehmen also sehr, sehr empfindlich auf seine\nDaten reagiert, dann benötigen Sie Dinge\nwie SOCK 2 und andere Compliance-\nMaßnahmen. AX kann Ihnen diese bieten\n.  Wenn Sie Dinge benötigen, wie z. B. die\nInteraktion mehrerer Teams, können Sie SAML und\nSSO verwenden.  Wenn Sie einen Produktionsagenten haben, der\nMilliarden von Zeilen und\nMilliarden von Traces verarbeitet, dann haben wir eine\nTechnologie namens AISDB, die uns dabei hilft\n.  Uh AX bietet Ihnen sitzungsbasierte\nAgentenverfolgung.  Es geht also nicht nur um die einzelnen\nAgentenwechsel, sondern um die gesamte Sitzung eines Benutzers\nvom Zeitpunkt des Einloggens bis zum Zeitpunkt des\nAusloggens.  Äh, wir haben einen KI-\nAssistenten namens Alex.  Äh, wir haben\nwunderschöne grafische Darstellungen davon, was\nIhr Agent tut.  Äh, wir haben\nKennzahlen, wir haben Dashboards, wir haben\nÜberwachungssysteme.  Äh, es ist eine deutliche\nVerbesserung hinsichtlich der Möglichkeiten, die sich bieten\n.  Ähm, aber das war's im Grunde genommen\n.  Ähm, vielen Dank an alle, die bis zum\nSchluss dabei geblieben sind.  Äh, falls Sie noch weitere\nFragen haben, äh, ich habe jetzt etwas Zeit für\nFragen, falls Ihnen\nspäter welche einfallen. Ich bin auf seldo.com bei Blue Sky zu finden,\nund Sie können diese äh Folien über\ndiese URL abrufen.  Vielen Dank für Ihre\nZeit und Aufmerksamkeit.\nHabe ich jetzt noch Fragen oder wollen\nalle nur noch nach Hause?  Okay.\nHallo.  Können Code-Ereignisse und LM-Ereignisse also\nauf der Plattform selbst definiert werden\n?  Es wird also von der Plattform und\nnicht von einzelnen Skripten gesteuert.  Das habe ich anfangs vielleicht übersehen\n.\nÄh nein, das ist eine hervorragende Frage.  Uh Kodi\nvalves und LLM as a judg\nwerden auf dem Client ausgeführt und\nan den Server zurückgesendet.  Äh, bei AX können sie\nonline auf der Plattform selbst laufen.   Gibt es\neine Möglichkeit,\netwas wie das anthropische Batch-AIS zu verwenden, das eine\nviel günstigere Version von\noder ähnlichem nutzt, um große Datenmengen zu verarbeiten?   Frag\nmich danach nochmal.\nHinter Ihnen steht ein Herr mit einer Frage.\nHallo.\nOh hallo.   Ja\n.  Zur Einordnung: Ich arbeite für ein\nUnternehmen im Bereich Bau-KI, und wir beschäftigen uns unter anderem mit\nArchitekturprüfungen und der\nEinhaltung von Vorschriften.  Und eines unserer Probleme ist, dass\nwir unzählige dieser Prüfungen\nvon Architekten erhalten und versuchen,\ndiese zu analysieren, um zu verstehen, was\nwir eigentlich bauen müssen,\nrichtig?\nWir verfügen zwar nicht über Unmengen an Labeldaten dazu\n, aber wir haben damit begonnen, zu\nversuchen, den Cloud-\nCode automatisch zu skalieren und dann die\nKonsistenz zu überprüfen.  Wenn wir das also\n10 Mal durchgehen, ist die Lösung dann jedes Mal dieselbe\n?  Und wir haben\nKonsistenz als eine Art\nBewertungskriterium für die Komplexität des Problems verwendet.\nWir haben in letzter Zeit immer mehr solcher\nDinge zusammengetragen und sie\nMeta-Evaluierungen genannt, um sie dann einzusetzen, wenn man\nein Problem hat, an dessen Lösung man noch arbeitet\n.  Fällt Ihnen noch etwas Vergleichbares ein\n?  Wie das eigentliche\nProblem, das Sie erzeugen, so erzeugen Sie auch den\nProzess der Problemlösung, Sie\nerzeugen Bewertungen nicht nur für die Lösung des\nProblems.   Ja\n, absolut.  Wir haben das doch\nschon bei den Meta-Bewertungen angesprochen, oder?\nBeispielsweise wird eine Situation, in der man\nein Sprachmodell verwendet, um die Leistung eines anderen Sprachmodells zu beurteilen,\nsofort zu einer Meta-\nBewertung des Sprachmodells.  Man kann durchaus ein\nLLM verwenden, um zu beurteilen, welche dieser, sagen wir mal,\n10 möglichen Agentenkonfigurationen\ndie bessere gewesen wäre.  Genau das meinte\nich mit Multi-\nAent-Konfigurationen und MultiLM-\nKonfigurationen.  Man kann\neine geschlossene Schleife einrichten, in der ein\nAgent fünf mögliche\nPrompt-Varianten entwickelt und\nalle gleichzeitig gegen die Evaluierung testet, um zu\nsehen, welche dieser Varianten\nohne menschliches Eingreifen die beste\nVerbesserung bringt.\nBeantwortet das Ihre Frage?\nJa, das tut es.\nOkay.   äh,\nvorne.   Vielen\nDank für das Gespräch.  Es war\nwirklich toll.  Ähm, ich hätte da eine Frage dazu,\nwie viel Evaluierung man\nfür ein Feature schreiben muss, denn\ninsbesondere wenn man es mit Live-\nTraces testet, kann die Evaluierung manchmal\nmehr kosten als das eigentliche Feature.  Und\nwie erkennt man, wann man genug äh eine\nBewertung geschrieben hat?\nDas ist eine wirklich gute Frage.  Ähm, woran\nerkennt man, dass eine\nBewertung gut genug ist, das ist eigentlich\nIhre Frage, richtig?  Die\nAntwort findet sich größtenteils in den\nKostengleichungen, die ich vorhin gezeigt habe.  Ähm,\naber äh, es liegt teilweise an Regressionsanalysen\nim Vergleich zu Fähigkeitsanalysen.  Wenn Sie eine\nReihe von hundert Regressionstests und eine\nFähigkeitsbewertung haben, dann werden Sie\neine enorme Menge Geld für\nRegressionstests ausgeben.  Und\nwahrscheinlich benötigen Sie nicht\nalle 100 Regressionsanalysen.  Man\nkann beispielsweise 80 % davon aussortieren und\nhätte trotzdem noch eine repräsentative Stichprobe von\nRegressionsanalysen.  Diejenige, bei der man nicht sparen sollte,\nist die Fähigkeitsbewertung\n.  So können Sie\nIhre Regressionsbewertungen herabstufen, verkleinern und komprimieren\n.  Und bei der Fähigkeitsbewertung sollten\nSie wahrscheinlich\nin puncto Kosten etwas mehr investieren.  Du meinst also: Es ist uns egal,\nwelches Modell wir verwenden.\nLasst uns das so teuer wie möglich gestalten,\ndenn genau da wird der Agent\ntatsächlich besser.\nOkay.  Danke schön.  Und bei Live-Traces\nführen Sie entweder Regressionstests und\nFähigkeitsbewertungen oder nur Regressionstests durch.\nBei Live-Traces macht es keinen Sinn, die Funktion `\ncapability eval` auszuführen,\nda sich nichts ändert.  Äh ja,\nauch hier kann man Kosten sparen.   Ja\n.\nOkay.  Danke schön.\nIch habe keine Ahnung.   Ähm\nja, nur eine Frage zu Ihrer äh\nUmsetzbarkeitsvorlage, Ihrer benutzerdefinierten Auswertung.   Also,\nEntschuldigung, könnten Sie bitte lauter sprechen?\nJa, tut mir leid.  Ähm, also eine Frage dazu, wie\nSie Ihren individuellen LLM\nals Richter definiert haben.   Ja\n.\nIn Ihrem Beispiel haben Sie also im\nGrunde acht separate Dinge.\nHier sind also vier konkrete Handlungsempfehlungen.  Hier sind\nvier Punkte, die keine Maßnahmen nach sich ziehen.  Und das alles wird\nals ein einziges Ja oder Nein behandelt.  Hier einige\nRatschläge aus dem Internet, die\nbesagen: „Oh nein, Sie sollten das\nin acht separate\nEinzelschecks aufteilen.“  Man erhält also im Grunde eine Punktzahl\nzwischen null und acht,\nrichtig?  und Sie führen jede dieser\nEinzelprüfungen einmal als separater LLM\nals Richter durch.  Halten Sie das für den richtigen Weg,\noder meinen Sie, dass eine\netwas stärkere Bündelung in Ordnung wäre?\nÄhm, das ist eine sehr gute Frage, denn sie\nist ja irgendwie willkürlich,\nnicht wahr?  Es ist so, als ob\nich genau das messen wollte: Hier muss man die\nnicht-technischen Stakeholder miteinbeziehen.\nWas genau versuchen wir zu messen?\nWir versuchen, die Umsetzbarkeit zu messen.\nWollen wir konkret messen,\nob Kurs-Gewinn-Verhältnisse erwähnt wurden oder nicht\n?  Wenn es sich um etwas Bestimmtes handelt,\ndas der Stakeholder als\nwichtig erachtet und das ich jedes Mal sehen muss,\ndann sollten Sie eine\nBewertung darüber durchführen.  Wenn\nSie konkret nach einer Kauf-, Verkaufs- oder Halteempfehlung suchen\n, so wie ich es getan habe,\ndann hilft das KGV\ndem Makler dabei, dieses Ziel zu erreichen, aber\ndas ist nicht das, wonach ich suche.  Äh,\nes ist also absolut kontextabhängig\nund basiert darauf, was Ihre\nStakeholder sagen. Das ist\ndie eigentliche Definition von korrekt, im\nGegensatz zu einem Beitrag zur Korrektheit, wenn\nSie verstehen, was ich meine.\nManchmal ist es unvermeidbar, es ist sozusagen eine Entweder-oder-Entscheidung,\nsolange es eines von\nbeidem tut.\nGenau.   Prost\n.\nÄh, da war noch eine andere Frage\n.\nVielen Dank für das Gespräch.  Es war äh, wirklich\ngut.  Ich habe zwei Fragen.  Die erste\nFrage ist, ob es\nim gesamten Evaluierungsprozess viele deterministische Faktoren gibt.\nWenn wir beispielsweise dieses\nErgebnis erhalten, was bedeutet es dann?\nBedeutet es beispielsweise, dass die Agentenbewertung schlecht ist, oder dass\ndie von uns bereitgestellte Bewertungsmatrix schlecht ist, oder\nbedeutet es, dass bei einer menschlichen\nAnnotation die Person selbst möglicherweise\nnicht zuverlässig ist?  Glaubst du, es macht Sinn, in\nPhasen vorzugehen? Zuerst\nstellst du sicher, dass es zuverlässig ist, und\ndann gehst du zur nächsten Phase über, in der du\nvergleichst.\nJa, absolut. Das ist einer der\nGründe, warum ich empfehle, die\nEvaluierungen iterativ zu erstellen. Beginne mit\nder Code-Evaluierung und stelle sicher, dass sie immer\nfunktioniert. Dann erstelle\ndein erstes Sprachmodell als Test und stelle sicher,\ndass es wie gewünscht funktioniert.\nWenn du mehrere\nEvaluierungen gleichzeitig einführst,\nhast du dasselbe Problem mit mehreren Eingabeaufforderungen wie\nzuvor: Die sich ändernden Eingabeaufforderungen führen dazu, dass\nmehrere Evaluierungen gleichzeitig geändert werden, was\ndu ja vermeiden willst.  Deshalb sollten Sie jeweils nur\neine Fähigkeitsbewertung durchführen, die Sie optimieren möchten,\nwährend\nSie gleichzeitig bestehende, bewährte Bewertungen als\nRegressionsbewertungen haben, von denen Sie erwarten, dass sie sich\nnicht ändern.\nÄh, danke.  Und die zweite Frage ist,\nwie Sie bereits erwähnt haben, dass es viele\nVersionen gibt, z. B. die Rubrik-Version oder die Agenten-\nPrompt-Version. Meine\nFrage wäre zum Beispiel: Wenn wir\ndie Kriterien ändern und die\nEvaluierungen\nanhand der neuen Rubriken erneut durchführen müssen, z. B. wenn wir\n500 Datensätze haben,\nmüssen wir dann alles\nerneut durchführen oder werden diese auch als\nTeil des Datensatzes betrachtet, z. B. als Datei, die\nwir später verwenden können?   Ähm,\ndas ist eine ausgezeichnete Frage.  Genau dafür\nsind Experimente da.\nExperimente liefern Ihnen eine kleinere Menge an Ergebnissen, die\nSie mit Ihren Fehlern vergleichen können, um zu prüfen, ob Sie darin\nbesser werden.\nExperimente ermöglichen es Ihnen also, mit einem kleinen Set\nschnell Bergauffahrten zu bewältigen.  Sobald Sie glauben, den Gipfel des\nBerges erreicht zu haben oder an den Punkt des\nabnehmenden Grenznutzens\nbei Ihrem Aufstieg zu gelangen, sollten Sie die Regression noch einmal mit\ndem gesamten\nDatensatz durchführen, um sicherzustellen, dass Sie nicht\nversehentlich eine Überanpassung vorgenommen oder eine\nRegression erstellt haben, die mit dem gesamten\nDatensatz nicht kompatibel ist.  Man muss also nicht so vorgehen, dafür\nsind Experimente schließlich da.  Sie\nmüssen nicht jedes Mal Ihren gesamten\nDatensatz überprüfen, wenn Sie eine\nÄnderung vornehmen.  Äh, aber du solltest es\nregelmäßig tun, wenn du glaubst,\neinen Wendepunkt erreicht zu haben oder kurz vor dem\nVersand zu stehen.\nVielen Dank.\nÄh, da hinten ist noch einer, und dann,\nglaube ich, ist die Zeit um.\nÄh, danke.  Sehr informativ.  Da ich in\nder Vergangenheit im Bereich Machine Learning und insbesondere in der Deep-Learning-Forschung gearbeitet habe, finde\nich die Idee der\nClosed-Loop-Optimierung sehr\nspannend und freue mich besonders darauf\n.  Aber ich habe\nin der Vergangenheit schon Dinge wie DSPI benutzt\nund ich weiß nicht, ob\nes wirklich hilfreich ist, aber ich glaube,\nAndre Karpathys Idee der automatischen Recherche\nist auch irgendwie damit verwandt.  Ähm, aber ich\nhabe noch nichts gefunden, was mich wirklich umgehauen hätte,\naußer dass es mich zu\neinem gewissen Punkt gebracht hat, an dem es einigermaßen\nfunktioniert, und dann habe ich es\nmanuell angepasst und von da an Feinabstimmungen vorgenommen.\nIch weiß nicht.  Haben Sie eine Vermutung,\nwohin sich dieser Bereich entwickeln wird, oder gibt es\nbestimmte Arbeiten, die\nIhnen vielversprechend oder interessant erscheinen?\nÄhm,\nkommt zur AIE Weltausstellung.  Wir hoffen,\ndort etwas präsentieren zu können, bei dem\nuns das tatsächlich gelungen ist.  Ähm, aber nein,\ndie Antwort ist, dass es sich im Moment noch um ein absolutes\nGrenzgebiet handelt.  Geschlossene,\nautonome und sich selbst verbessernde Software ist\netwas, das wir am Horizont sehen können.  Wir\nglauben, es ist der Agent, den Sie kennen,\nvielleicht funktioniert es automatisch, wenn sie Mythos veröffentlichen\n.  Äh, aber ähm,\nes ist im Moment sehr schwierig, zur\nArbeit zu kommen, was einer der\nGründe ist, warum ich es heute nicht präsentiert habe,\nweil es im Moment irgendwie äh, ziemlich\nunübersichtlich ist.\nHabe es.  Danke schön.   In Ordnung\n.  Vielen Dank, dass Sie dabeigeblieben sind\n.",
  "transcript_chars": 136026,
  "ingested_at": "2026-05-14T22:30:31.580555+00:00",
  "source": "channel",
  "yt_meta": {
    "view_count": 1131,
    "like_count": 61,
    "channel_id": "UCLKPca3kwwd-B59HNr-_lvA",
    "categories": [
      "Science & Technology"
    ],
    "tags": [
      "ai",
      "ai engineer",
      "ai engineering",
      "software development",
      "tech",
      "startups",
      "software architecture",
      "machine learning"
    ]
  }
}