Große Sprach­mo­delle (Large Lan­guage Models, LLMs) sind ein unglaub­li­ches Werk­zeug für Ent­wick­ler und Unter­neh­mens­lei­ter, um neue Werte für Ver­brau­cher zu schaf­fen. Sie geben per­sön­li­che Emp­feh­lun­gen, über­set­zen zwi­schen unstruk­tu­rier­ten und struk­tu­rier­ten Daten, fas­sen große Men­gen an Infor­ma­tio­nen zusam­men und tun noch viel mehr.

In dem Maße, wie sich die Anwen­dun­gen ver­viel­fäl­ti­gen, steigt auch die Bedeu­tung der Leis­tungs­mes­sung von LLM-basier­ten Anwen­dun­gen. Dies ist aus meh­re­ren Grün­den ein nicht tri­via­les Pro­blem: Benut­zer­feed­back oder eine andere „Wahr­heits­quelle“ ist äußerst begrenzt und oft nicht vor­han­den; selbst wenn dies mög­lich ist, ist die Kenn­zeich­nung durch den Men­schen immer noch teuer; und es ist leicht, diese Anwen­dun­gen kom­plex zu machen.

Diese Kom­ple­xi­tät wird oft durch die Abs­trak­ti­ons­ebe­nen des Codes ver­bor­gen und wird erst dann deut­lich, wenn etwas schief läuft. Eine ein­zige Code­zeile kann eine Kas­kade von Auf­ru­fen (Spans) aus­lö­sen. Für jeden Bereich sind unter­schied­li­che Aus­wer­tun­gen erfor­der­lich, wodurch sich die Pro­bleme ver­viel­fa­chen. So löst bei­spiels­weise der nach­ste­hende ein­fa­che Code­schnip­sel meh­rere Sub-LLM-Auf­rufe aus.

Glück­li­cher­weise kön­nen wir die Leis­tungs­fä­hig­keit von LLMs nut­zen, um die Bewer­tung zu auto­ma­ti­sie­ren. In die­sem Arti­kel wer­den wir uns damit befas­sen, wie man dies ein­rich­tet und sicher­stellt, dass es zuver­läs­sig ist.

Der Kern von LLM-Eva­lu­ie­run­gen ist KI, die KI evaluiert.

Das mag zwar zir­ku­lär klin­gen, aber die mensch­li­che Intel­li­genz hat schon immer die mensch­li­che Intel­li­genz bewer­tet (z. B. bei einem Vorstellungsgespräch oder der Abschluss­prü­fung am Col­lege). Jetzt kön­nen KI-Sys­teme end­lich das Glei­che für andere KI-Sys­teme tun.

Der Pro­zess besteht darin, dass LLMs eine syn­the­ti­sche Grund­wahr­heit erzeu­gen, die zur Bewer­tung eines ande­ren Sys­tems ver­wen­det wer­den kann. Das wirft die Frage auf: Warum nicht direkt das mensch­li­che Feed­back nut­zen? Ganz ein­fach: Weil man nie genug davon haben wird.

Ein mensch­li­ches Feed­back zu auch nur einem Pro­zent der Ein­gabe-/Aus­ga­be­paare zu erhal­ten, ist ein gigan­ti­scher Kraft­akt. Die meis­ten Teams schaf­fen nicht ein­mal das. Aber damit die­ser Pro­zess wirk­lich nütz­lich ist, ist es wich­tig, Bewer­tun­gen für jeden LLM-Unter­auf­ruf zu haben, von denen es, wie wir bereits gese­hen haben, viele geben kann.

Las­sen Sie uns erfor­schen, wie man das macht.

LLM Model­leva­lua­tion vs. LLM Systemevaluation

LLM_model_evals != LLM_System_evals

LLM Model Evals

Viel­leicht haben Sie schon von LLM-Evals gehört. Die­ser Begriff wird auf viele ver­schie­dene Arten ver­wen­det, die alle sehr ähn­lich klin­gen, aber tat­säch­lich sehr unter­schied­lich sind. Einer der häu­figs­ten Ver­wen­dungs­zwe­cke ist das, was wir LLM-Model­leva­lu­ie­run­gen nen­nen wer­den. LLM-Model­leva­lu­ie­run­gen kon­zen­trie­ren sich auf die Gesamt­leis­tung der Basis­mo­delle. Die Unter­neh­men, die die ursprüng­li­chen kun­den­ori­en­tier­ten LLMs auf den Markt brach­ten, brauch­ten einen Weg, um ihre Effek­ti­vi­tät für eine Reihe ver­schie­de­ner Auf­ga­ben zu quantifizieren.

Eine beliebte Biblio­thek, die LLM-Modell Evals ent­hält, ist die Ope­nAI Eval-Biblio­thek, die ursprüng­lich auf den Anwen­dungs­fall der Model­leva­lua­tion aus­ge­rich­tet war. Es gibt viele Metri­ken wie Hel­laS­wag (bewer­tet, wie gut ein LLM einen Satz ver­voll­stän­di­gen kann), TruthfulQA (misst die Wahr­haf­tig­keit von Modell­ant­wor­ten) und MMLU (misst, wie gut der LLM mul­ti­tas­king­fä­hig ist). Es gibt sogar LLM-Bes­ten­lis­ten, die zei­gen, wie gut die Open-Source-LLMs im Ver­gleich zuein­an­der abschneiden.

LLM Sys­tem Evals

Bis zu die­sem Punkt haben wir die LLM-Model­leva­lua­tion bespro­chen. Im Gegen­satz dazu ist die LLM-Sys­te­meva­lua­tion die voll­stän­dige Eva­lua­tion der Kom­po­nen­ten, die Sie in Ihrem Sys­tem kon­trol­lie­ren kön­nen. Die wich­tigs­ten die­ser Kom­po­nen­ten sind der Prompt (oder die Prompt-Vor­lage) und der Kon­text. LLM-Sys­te­meva­lu­ie­run­gen bewer­ten, wie gut Ihre Ein­ga­ben Ihre Aus­ga­ben bestim­men können.

LLM-Sys­tem­prü­fun­gen kön­nen zum Bei­spiel den LLM kon­stant hal­ten und die Prompt-Vor­lage ändern. Da Prompts dyna­mi­schere Teile Ihres Sys­tems sind, ist diese Bewer­tung wäh­rend der gesam­ten Lebens­dauer des Pro­jekts sehr sinn­voll. Ein LLM kann zum Bei­spiel Ihre Chat­bot-Ant­wor­ten auf Nütz­lich­keit oder Höf­lich­keit bewer­ten, und die­selbe Bewer­tung kann Ihnen Infor­ma­tio­nen über Leis­tungs­än­de­run­gen im Laufe der Zeit in der Pro­duk­tion liefern.

Which To Use? It Depends On Your Role

Es gibt ver­schie­dene Per­so­nen­grup­pen, die LLM-Eva­lu­ie­run­gen nut­zen. Die eine ist der Modell­ent­wick­ler oder ein Inge­nieur, der mit der Fein­ab­stim­mung des LLM-Kerns beauf­tragt ist, und die andere ist der Prak­ti­ker, der das benut­zer­ori­en­tierte Sys­tem zusammenstellt.

Es gibt nur sehr wenige LLM-Modell­ent­wick­ler, und sie nei­gen dazu, für Unter­neh­men wie Ope­nAI, Anthro­pic, Google, Meta und andere zu arbei­ten. Modell­ent­wick­ler küm­mern sich um LLM-Model­leva­lu­ie­run­gen, da ihre Auf­gabe darin besteht, ein Modell zu lie­fern, das für eine Viel­zahl von Anwen­dungs­fäl­len geeig­net ist.

Für ML-Prak­ti­ker beginnt die Auf­gabe eben­falls mit der Modell­be­wer­tung. Einer der ers­ten Schritte bei der Ent­wick­lung eines LLM-Sys­tems ist die Aus­wahl eines Modells (z. B. GPT 3.5 vs. 4 vs. Palm, usw.). Die LLM-Model­leva­lu­ie­rung für diese Gruppe ist jedoch oft ein ein­ma­li­ger Schritt. Sobald die Frage geklärt ist, wel­ches Modell für Ihren Anwen­dungs­fall am bes­ten geeig­net ist, wird der Groß­teil des rest­li­chen Lebens­zy­klus der Anwen­dung durch LLM-Sys­te­meva­lu­ie­run­gen bestimmt. Daher küm­mern sich ML-Prak­ti­ker sowohl um LLM-Modell-Eva­lu­ie­run­gen als auch um LLM-Sys­tem-Eva­lu­ie­run­gen, wobei sie wahr­schein­lich viel mehr Zeit auf letz­tere verwenden.

LLM-Sys­tem Evals vari­ie­ren je nach Anwendungsfall

Wenn Sie mit ande­ren ML-Sys­te­men gear­bei­tet haben, ist Ihre erste Frage wahr­schein­lich die fol­gende: „Was soll die Ergeb­nis­me­trik sein?“ Die Ant­wort hängt davon ab, was Sie zu bewer­ten versuchen.

  • Extra­hie­ren struk­tu­rier­ter Infor­ma­tio­nen: Sie kön­nen prü­fen, wie gut der LLM Infor­ma­tio­nen extra­hiert. Sie kön­nen zum Bei­spiel die Voll­stän­dig­keit prü­fen (gibt es Infor­ma­tio­nen in der Ein­gabe, die nicht in der Aus­gabe ent­hal­ten sind?)
  • Beant­wor­tung von Fra­gen: Wie gut beant­wor­tet das Sys­tem die Frage des Benut­zers? Sie kön­nen die Genau­ig­keit, die Höf­lich­keit oder die Kürze der Ant­wort unter­su­chen – oder alles zusammen.
  • Retrie­val Aug­men­ted Gene­ra­tion (RAG): Sind die abge­ru­fe­nen Doku­mente und die end­gül­tige Ant­wort relevant?

Als Sys­tem­ent­wick­ler sind Sie letzt­end­lich für die Leis­tung des Sys­tems ver­ant­wort­lich, und daher liegt es an Ihnen zu ver­ste­hen, wel­che Aspekte des Sys­tems bewer­tet wer­den müs­sen. Wenn Sie zum Bei­spiel ein LLM haben, das mit Kin­dern inter­agiert, wie eine Nach­hilfe-App, möch­ten Sie sicher­stel­len, dass die Ant­wor­ten alters­ge­recht und nicht toxisch sind.

Einige gän­gige Bewer­tun­gen, die heute ver­wen­det wer­den, sind Rele­vanz, Hal­lu­zi­na­tio­nen, Genau­ig­keit bei der Beant­wor­tung von Fra­gen und Toxi­zi­tät. Für jede die­ser Bewer­tun­gen gibt es unter­schied­li­che Vor­la­gen, je nach­dem, was Sie zu bewer­ten ver­su­chen. Hier ist ein Bei­spiel für Relevanz:

In die­sem Bei­spiel wird der Ein­fach­heit hal­ber das Open-Source-Tool Phoe­nix ver­wen­det (ich bin Mit­glied des Teams, das Phoe­nix ent­wi­ckelt hat). Inner­halb des Phoe­nix-Tools gibt es Stan­dard­vor­la­gen für die meis­ten gän­gi­gen Anwen­dungs­fälle. Hier ist die Vor­lage, die wir für die­ses Bei­spiel ver­wen­den werden:

You are comparing a reference text to a question and trying to determine if the reference text contains information relevant to answering the question. Here is the data:
    [BEGIN DATA]
    ************
    [Question]: {query}
    ************
    [Reference text]: {reference}
    [END DATA]
Compare the Question above to the Reference text. You must determine whether the Reference text
contains information that can answer the Question. Please focus on whether the very specific
question can be answered by the information in the Reference text.
Your response must be single word, either "relevant" or "irrelevant",
and should not contain any text or characters aside from that word.
"irrelevant" means that the reference text does not contain an answer to the Question.
"relevant" means the reference text contains an answer to the Question.

Wir wer­den auch das GPT-4-Modell von Ope­nAI und die Prä­zi­si­ons-/Re­call-Metri­ken von sci­kit­learn verwenden.

Zunächst impor­tie­ren wir alle not­wen­di­gen Abhängigkeiten:

from phoenix.experimental.evals import (
   RAG_RELEVANCY_PROMPT_TEMPLATE_STR,
   RAG_RELEVANCY_PROMPT_RAILS_MAP,
   OpenAIModel,
   download_benchmark_dataset,
   llm_eval_binary,
)
from sklearn.metrics import precision_recall_fscore_support

Las­sen Sie uns nun den Daten­satz einfügen:

# Download a "golden dataset" built into Phoenix
benchmark_dataset = download_benchmark_dataset(
   task="binary-relevance-classification", dataset_name="wiki_qa-train"
)
# For the sake of speed, we'll just sample 100 examples in a repeatable way
benchmark_dataset = benchmark_dataset.sample(100, random_state=2023)
benchmark_dataset = benchmark_dataset.rename(
   columns={
       "query_text": "query",
       "document_text": "reference",
   },
)
# Match the label between our dataset and what the eval will generate
y_true = benchmark_dataset["relevant"].map({True: "relevant", False: "irrelevant"})

Las­sen Sie uns nun unsere Bewer­tung durchführen:

# Any general purpose LLM should work here, but it is best practice to keep the temperature at 0
model = OpenAIModel(
   model_name="gpt-4",
   temperature=0.0,
)
# Rails will define our output classes
rails = list(RAG_RELEVANCY_PROMPT_RAILS_MAP.values())


benchmark_dataset["eval_relevance"] = \
   llm_eval_binary(benchmark_dataset,
                   model,
                   RAG_RELEVANCY_PROMPT_TEMPLATE_STR,
                   rails)
y_pred = benchmark_dataset["eval_relevance"]


# Calculate evaluation metrics
precision, recall, f1, support = precision_recall_fscore_support(y_true, y_pred)

Eva­lua­ting LLM-Based Sys­tems with LLMs

Der Pro­zess der Eva­lu­ie­rung Ihres LLM-basier­ten Sys­tems mit einem LLM umfasst zwei ver­schie­dene Schritte. Zuerst müs­sen Sie eine Bench­mark für Ihre LLM-Eva­lua­ti­ons­me­trik erstel­len. Um dies zu tun, stel­len Sie eine spe­zi­elle LLM-basierte Aus­wer­tung zusam­men, deren ein­zige Auf­gabe es ist, Daten so effek­tiv zu beschrif­ten, wie ein Mensch Ihren „gol­de­nen Daten­satz“ beschrif­tet hat. Dann ver­glei­chen Sie Ihre Metrik mit die­ser Aus­wer­tung. Füh­ren Sie dann diese LLM-Eva­lu­ie­rungs­me­trik gegen die Ergeb­nisse Ihrer LLM-Anwen­dung durch (mehr dazu wei­ter unten).

Wie man eine LLM-Eval aufbaut

Der erste Schritt besteht, wie oben beschrie­ben, darin, eine Bench­mark für Ihre Bewer­tun­gen zu erstellen.

Dazu müs­sen Sie mit einer Metrik begin­nen, die für Ihren Anwen­dungs­fall am bes­ten geeig­net ist. Dann benö­ti­gen Sie den gol­de­nen Daten­satz. Die­ser sollte reprä­sen­ta­tiv für die Art von Daten sein, die Sie bei der LLM-Eva­lu­ie­rung zu sehen erwar­ten. Der gol­dene Daten­satz sollte das „Ground-Truth“-Label haben, damit wir die Leis­tung der LLM-Eva­lu­ie­rungs­vor­lage mes­sen kön­nen. Oft­mals stam­men sol­che Bezeich­nun­gen von mensch­li­chem Feed­back. Die Erstel­lung eines sol­chen Daten­sat­zes ist müh­sam, aber Sie kön­nen oft einen stan­dar­di­sier­ten Daten­satz für die häu­figs­ten Anwen­dungs­fälle fin­den (wie wir es im obi­gen Code getan haben).

Dann müs­sen Sie ent­schei­den, wel­chen LLM Sie für die Bewer­tung ver­wen­den wol­len. Dies könnte ein ande­res LLM sein als das, das Sie für Ihre Anwen­dung ver­wen­den. Zum Bei­spiel könn­ten Sie Llama für Ihre Anwen­dung und GPT‑4 für Ihre Aus­wer­tung ver­wen­den. Oft wird diese Wahl durch Fra­gen der Kos­ten und der Genau­ig­keit beeinflusst.

Jetzt kommt die Kern­kom­po­nente, die wir ver­su­chen, zu bewer­ten und zu ver­bes­sern: die Eva­lu­ie­rungs­vor­lage. Wenn Sie eine vor­han­dene Biblio­thek wie Ope­nAI oder Phoe­nix ver­wen­den, soll­ten Sie mit einer vor­han­de­nen Vor­lage begin­nen und sehen, wie diese Ein­ga­be­auf­for­de­rung funktioniert.

Wenn Sie eine bestimmte Nuance ein­bauen möch­ten, pas­sen Sie die Vor­lage ent­spre­chend an oder erstel­len Sie Ihre eigene Vor­lage von Grund auf.

Den­ken Sie daran, dass die Vor­lage eine klare Struk­tur haben sollte, wie die, die wir im vor­he­ri­gen Abschnitt ver­wen­det haben. Seien Sie bei den fol­gen­den Punk­ten explizit:

  • Was ist der Input? In unse­rem Bei­spiel sind es die abge­ru­fe­nen Dokumente/Kontexte und die Anfrage des Benutzers.
  • Was wird abge­fragt? In unse­rem Bei­spiel bit­ten wir den LLM, uns zu sagen, ob das Doku­ment für die Abfrage rele­vant ist.
  • Was sind die mög­li­chen Aus­ga­be­for­mate? In unse­rem Bei­spiel ist es binär relevant/irrelevant, aber es kann auch mehr­klas­sig sein (z. B. voll­stän­dig rele­vant, teil­weise rele­vant, nicht relevant).

Jetzt müs­sen Sie die Aus­wer­tung über Ihren gol­de­nen Daten­satz lau­fen las­sen. Dann kön­nen Sie Metri­ken (Gesamt­ge­nau­ig­keit, Prä­zi­sion, Wie­der­erken­nungs­wert, F1 usw.) erstel­len, um den Bench­mark zu ermit­teln. Es ist wich­tig, mehr als nur die Gesamt­ge­nau­ig­keit zu betrach­ten. Dar­auf gehen wir wei­ter unten noch genauer ein.

Wenn Sie mit der Leis­tung Ihrer LLM-Bewer­tungs­vor­lage nicht zufrie­den sind, müs­sen Sie die Ein­ga­be­auf­for­de­rung ändern, damit sie bes­ser funk­tio­niert. Dies ist ein ite­ra­ti­ver Pro­zess, der sich auf harte Mess­grö­ßen stützt. Wie immer ist es wich­tig, eine Über­an­pas­sung der Vor­lage an den gol­de­nen Daten­satz zu ver­mei­den. Stel­len Sie sicher, dass Sie einen reprä­sen­ta­ti­ven Hol­dout-Satz haben oder füh­ren Sie eine k‑fache Kreuz­va­li­die­rung durch.

Schließ­lich gelan­gen Sie zu Ihrem Bench­mark. Die opti­mierte Leis­tung auf dem gol­de­nen Daten­satz zeigt, wie sicher Sie sich auf Ihre LLM-Bewer­tung ver­las­sen kön­nen. Sie wird nicht so genau sein wie die Grund­wahr­heit, aber sie wird genau genug sein, und sie wird viel weni­ger kos­ten als ein mensch­li­cher Beschrifter in der Schleife für jedes Beispiel.

Die Vor­be­rei­tung und Anpas­sung Ihrer Prompt-Vor­la­gen ermög­licht Ihnen die Ein­rich­tung von Testfällen.

Warum Sie beim Bench­mar­king Ihrer LLM-Prompt-Vor­lage Pre­cis­ion und Recall ver­wen­den sollten

Die Bran­che hat die bes­ten Prak­ti­ken für LLM-Bewer­tun­gen nicht voll­stän­dig stan­dar­di­siert. Die Teams wis­sen in der Regel nicht, wie sie die rich­ti­gen Bench­mark-Metri­ken fest­le­gen sollen.

Die Gesamt­ge­nau­ig­keit wird häu­fig ver­wen­det, aber sie reicht nicht aus.

Dies ist eines der häu­figs­ten Pro­bleme in der Pra­xis der Daten­wis­sen­schaft: Ein sehr star­kes Klas­sen­un­gleich­ge­wicht macht die Genau­ig­keit zu einer unprak­ti­schen Metrik.

Es ist hilf­reich, sich das Pro­blem anhand der Rele­vanz­me­trik zu ver­ge­gen­wär­ti­gen. Neh­men wir an, Sie machen sich die Mühe und den Auf­wand, den rele­van­tes­ten Chat­bot zusam­men­zu­stel­len, den Sie fin­den kön­nen. Sie wäh­len ein LLM und eine Vor­lage, die für den Anwen­dungs­fall geeig­net sind. Das sollte bedeu­ten, dass deut­lich mehr Ihrer Bei­spiele als „rele­vant“ bewer­tet wer­den soll­ten. Neh­men wir eine extreme Zahl, um den Punkt zu ver­deut­li­chen: 99,99 % aller Abfra­gen lie­fern rele­vante Ergeb­nisse. Hurra!

Betrach­ten Sie es nun aus der Sicht der LLM-Aus­wer­tungs­vor­lage. Wenn die Aus­gabe in allen Fäl­len „rele­vant“ wäre, ohne dass man sich die Daten über­haupt ansieht, würde sie in 99,99 % der Fälle rich­tig lie­gen. Gleich­zei­tig wür­den aber alle (wohl wich­tigs­ten) Fälle über­se­hen – die­je­ni­gen, in denen das Modell irrele­vante Ergeb­nisse lie­fert, und genau die müs­sen wir abfangen.

In die­sem Bei­spiel wäre die Genau­ig­keit hoch, aber die Prä­zi­sion und die Wie­der­auf­find­bar­keit (oder eine Kom­bi­na­tion aus bei­den, wie der F1-Wert) wären sehr nied­rig. Prä­zi­sion und Recall sind hier ein bes­se­res Maß für die Leis­tung Ihres Modells.

Eine wei­tere nütz­li­che Visua­li­sie­rung ist die Kon­fu­si­ons­ma­trix, mit der Sie den Pro­zent­satz der rich­ti­gen und fal­schen Vor­her­sa­gen für rele­vante und irrele­vante Bei­spiele sehen können.

So füh­ren Sie LLM-Evals für Ihre App durch

Zu die­sem Zeit­punkt soll­ten Sie sowohl Ihr Modell als auch Ihre getes­tete LLM-Eva­lu­ie­rung haben. Sie haben sich selbst bewie­sen, dass die Bewer­tung funk­tio­niert und haben ein quan­ti­fi­zier­ba­res Ver­ständ­nis ihrer Leis­tung im Ver­gleich zur Grund­wahr­heit. Zeit, mehr Ver­trauen zu schaffen!

Jetzt kön­nen wir unser Eval tat­säch­lich in unse­rer Anwen­dung ver­wen­den. Dies wird uns hel­fen zu mes­sen, wie gut unsere LLM-Anwen­dung funk­tio­niert und her­aus­zu­fin­den, wie wir sie ver­bes­sern können.

Das LLM-Sys­tem-Eval führt Ihr gesam­tes Sys­tem mit einem zusätz­li­chen Schritt aus. Zum Beispiel:

  • Sie rufen Ihre Ein­ga­be­do­ku­mente ab und fügen sie zusam­men mit den Bei­spiel­ein­ga­ben des Benut­zers zu Ihrer Ein­ga­be­auf­for­de­rungs­vor­lage hinzu.
  • Sie geben diese Ein­ga­be­auf­for­de­rung an den LLM wei­ter und erhal­ten die Antwort.
  • Sie über­mit­teln die Ein­ga­be­auf­for­de­rung und die Ant­wort an Ihre Aus­wer­tung und fra­gen sie, ob die Ant­wort für die Ein­ga­be­auf­for­de­rung rele­vant ist.

Es emp­fiehlt sich, LLM-Eva­lu­ie­run­gen nicht mit ein­ma­li­gem Code durch­zu­füh­ren, son­dern mit einer Biblio­thek, die inte­grierte Prompt-Vor­la­gen ent­hält. Dies erhöht die Repro­du­zier­bar­keit und ermög­licht eine fle­xi­blere Aus­wer­tung, bei der man ver­schie­dene Teile aus­tau­schen kann.

Diese Eva­lu­ie­run­gen müs­sen in drei ver­schie­de­nen Umge­bun­gen funktionieren:

Vor-Pro­duk­tion
Wenn Sie das Bench­mar­king durchführen.

Vor­pro­duk­ti­ons­phase
Wenn Sie Ihre Anwen­dung tes­ten. Dies ähnelt in gewis­ser Weise dem Kon­zept der Off­line-Eva­lu­ie­rung in der tra­di­tio­nel­len ML. Es geht darum, die Leis­tung Ihres Sys­tems zu ver­ste­hen, bevor Sie es an Kun­den ausliefern.

Pro­duk­tion
Wenn die Anwen­dung bereit­ge­stellt wird. Das Leben ist chao­tisch. Daten ver­än­dern sich, Benut­zer ver­än­dern sich, Modelle ver­än­dern sich, und das alles auf unvor­her­seh­bare Weise. Nur weil Ihr Sys­tem ein­mal gut funk­tio­niert hat, heißt das nicht, dass dies auch am Diens­tag um 19 Uhr der Fall sein wird. Evals hel­fen Ihnen, die Leis­tung Ihres Sys­tems nach der Bereit­stel­lung kon­ti­nu­ier­lich zu verstehen.

Zu berück­sich­ti­gende Fragen

Wie viele Zei­len soll­ten Sie abfra­gen?
Das LLM-Aus­wer­tungs-LLM-Para­digma ist keine Zau­be­rei. Sie kön­nen nicht jedes Bei­spiel aus­wer­ten, das Ihnen jemals unter­ge­kom­men ist – das wäre uner­schwing­lich teuer. Aller­dings müs­sen Sie bereits bei der Beschrif­tung durch den Men­schen Stich­pro­ben neh­men, und mit mehr Auto­ma­ti­sie­rung wird dies nur ein­fa­cher und bil­li­ger. Sie kön­nen also mehr Zei­len abfra­gen als bei der mensch­li­chen Beschriftung.

Wel­che Evals soll­ten Sie ver­wen­den?
Das hängt weit­ge­hend von Ihrem Anwen­dungs­fall ab. Für die Suche und das Abru­fen von Daten eig­nen sich Rele­vanz­be­wer­tun­gen am bes­ten. Für Toxi­zi­tät und Hal­lu­zi­na­tio­nen gibt es spe­zi­fi­sche Aus­wer­tungs­mus­ter (mehr dazu wei­ter oben).

Einige die­ser Aus­wer­tun­gen sind für die Feh­ler­su­che wich­tig. Die Genau­ig­keit bei der Beant­wor­tung von Fra­gen könnte eine gute Gesamt­kenn­zahl sein, aber wenn Sie unter­su­chen, warum diese Kenn­zahl in Ihrem Sys­tem nicht die gewünschte Leis­tung erbringt, wer­den Sie fest­stel­len, dass dies bei­spiels­weise auf eine schlechte Abfrage zurück­zu­füh­ren ist. Es gibt oft viele mög­li­che Gründe, und Sie benö­ti­gen mög­li­cher­weise meh­rere Metri­ken, um der Sache auf den Grund zu gehen.

Wel­ches Modell soll­ten Sie ver­wen­den?
Es ist unmög­lich zu sagen, dass ein Modell für alle Fälle am bes­ten geeig­net ist. Statt­des­sen soll­ten Sie Model­leva­lu­ie­run­gen durch­füh­ren, um her­aus­zu­fin­den, wel­ches Modell für Ihre Anwen­dung am bes­ten geeig­net ist. Je nach­dem, was für Ihre Anwen­dung sinn­voll ist, müs­sen Sie mög­li­cher­weise auch Kom­pro­misse zwi­schen Recall und Prä­zi­sion in Betracht zie­hen. Mit ande­ren Wor­ten, betrei­ben Sie etwas Daten­wis­sen­schaft, um dies für Ihren spe­zi­el­len Fall zu verstehen.

Schluss­fol­ge­rung

Die Fähig­keit, die Leis­tung Ihrer Anwen­dung zu bewer­ten, ist sehr wich­tig, wenn es um Pro­duk­ti­ons­code geht. In der Ära der LLMs sind die Pro­bleme schwie­ri­ger gewor­den, aber glück­li­cher­weise kön­nen wir die Tech­no­lo­gie der LLMs selbst nut­zen, um uns bei der Durch­füh­rung von Eva­lu­ie­run­gen zu hel­fen. LLM-Eva­lu­ie­rung sollte das gesamte Sys­tem tes­ten und nicht nur das zugrun­de­lie­gende LLM-Modell – den­ken Sie daran, wie wich­tig eine Prompt-Vor­lage für die Benut­zer­er­fah­rung ist. Bewährte Prak­ti­ken, stan­dar­di­sierte Werk­zeuge und kura­tierte Daten­sätze ver­ein­fa­chen die Auf­gabe der Ent­wick­lung von LLM-Systemen.

Quelle: medium.com