Übersicht
GitHub Models stellt einen einfachen Auswertungsworkflow bereit, der Entwicklern hilft, große Sprachmodelle (Large Language Models, LLMs) zu vergleichen, Prompts zu optimieren und datengesteuerte Entscheidungen innerhalb der GitHub-Plattform zu treffen. Du kannst GitHub Models verwenden, um mit neuen Features zu experimentieren oder Modelländerungen zu überprüfen, indem du Leistung, Genauigkeit und Kosten mithilfe von strukturierten Auswertungstools analysierst.
Tipp
Mit dem gh models eval
-Befehl kannst du Auswertungen direkt über die Befehlszeile ausführen. Er verwendet dieselben Auswertungen wie die Benutzeroberfläche: Zeichenfolgen-Übereinstimmung, Ähnlichkeit, benutzerdefinierte LLM-as-a-Judge-Auswertungen und vieles mehr, sodass du deine .prompt.yml
-Datei lokal oder in CI testen kannst.
Anwendungsfälle für GitHub Models
Das Modellverhalten kann je nach Prompt, Eingabe oder Konfiguration stark variieren. GitHub Models unterstützt dich bei folgenden Aktionen:
- Testen und Vergleichen von verschiedenen LLMs in realistischen Anwendungsfällen.
- Optimieren von Promptformulierung, Temperatur und anderen Parametern.
- Auswerten von Modellergebnissen mithilfe von strukturierten, wiederholbaren Metriken.
- Integrieren der KI-Entwicklung in deinen Entwicklungsworkflow.
Beispielszenario
Stelle dir ein Szenario vor, in dem du ein Feature zur Zusammenfassung von Kundenfeedback entwickelst, das über Supporttickets eingereicht wurde. Da diese Zusammenfassungen zum Generieren von internen Berichten und Tickets verwendet werden, muss das Ergebnis klar, relevant und präzise sein.
Gewünschter Vorgang
- Mit verschiedenen Modellen und Promptkonfigurationen experimentieren.
- Die leistungsfähigste Konfiguration anhand von Qualität, Konsistenz und Effizienz bewerten.
- Die Konfiguration zur Wiederverwendung und Zusammenarbeit in deinem Repository speichern.
Prompttests im Playground
Informationen zum Erstellen und Verwalten von Prompts in GitHub Models findest du unter Testen eines Prompts im Playground.
Im Playground kannst du Modelle miteinander vergleichen, ihre Parameter anpassen und Promptvarianten testen.
In diesem Schritt konfigurierst du ein Modell zum Generieren von Zusammenfassungen für Feedback zum Kundensupport. Du definierst einen Systemprompt, testest ihn mit einer Beispieleingabe und optimierst ihn, um sicherzustellen, dass das Ergebnis präzise und relevant ist.
Definieren eines Systemprompts
Definiere das Verhalten des Modells für dein aktuelles Ziel. In diesem Fall besteht das Ziel darin, Kundenfeedback zusammenzufassen. Gib unter Parameters den folgenden Systemprompt ein:
You are a helpful assistant that summarizes support ticket responses into concise summaries.
Behalte für die übrigen Einstellungen die Standardwerte bei.
Schreiben eines Benutzerprompts
Gib nach dem Einrichten des Modells das folgende Kundenfeedback in das Dialogfeld Prompt ein:
The app crashes every time I try to upload a PDF from my phone. It works on desktop but not on mobile.
Das Modell generiert eine Antwort, die ungefähr wie folgt lautet:
The user experiences consistent app crashes when attempting to upload a PDF from their phone. Uploading PDFs works normally on desktop. They request an investigation into the issue.
Verwenden von Variablen in Prompts
Hinweis
Dieses Feature befindet sich derzeit in public preview und kann geändert werden.
Nun generiert die Konfiguration eine klare und präzise Zusammenfassung. Klicke unter den Einstellungen Parameters auf Create prompt.yml file, um die Promptansicht zu öffnen. Dein Systemprompt wird automatisch ausgefüllt.
Gib einen Prompt in das Feld User prompt ein, der mindestens einen Variablenplatzhalter in doppelten geschweiften Klammern enthält. Zum Beispiel:
Travel or shopping assistants using {{city}}, {{intent}}, and {{budget}} to tailor recommendations.
Jede im Prompt aufgeführte Variable wird im Vergleichsmodus als Parameter angezeigt. Wenn du eine Auswertung ausführst, wirst du aufgefordert, Werte für jede Variable bereitzustellen. Auf diese Weise können Prompts mit unterschiedlichen Eingaben wiederverwendet werden, ohne den Inhalt des Prompts zu ändern.
Alternativ kannst du Variablen in deinem .prompt.yml
-Dateisystem oder im Prompt hinzufügen, um den Auswertungsprozess mit mehreren Variablen in Zukunft zu automatisieren. Weitere Informationen findest du unter Storing prompts in GitHub repositories.
Hinzufügen von Testeingaben
Wähle oben in der Promptansicht Compare aus, um zur Vergleichsansicht zu wechseln. In dieser Ansicht kannst du strukturierte Vergleiche für verschiedene Prompts oder Modelle ausführen und Auswerter anwenden, um die Leistung zu messen.
In der Vergleichsansicht stellt jede Zeile in der Tabelle einen einzelnen Testfall mit einer bestimmten Eingabe und einer erwarteten Ausgabe dar. Jede Spalte stellt eine andere Promptkonfiguration dar, sodass mit Auswertern verglichen werden kann, wie verschiedene Modelle oder Promptstile abschneiden.
Klicke auf Add rows, um deine Testdaten hinzuzufügen. Die Eingabe simuliert eine echte Supportnachricht, und die erwartete Ausgabe stellt die ideale Zusammenfassung dar, die das Modell zurückgeben sollte. Die folgende Tabelle enthält Beispiele für Testeingaben und die entsprechenden erwarteten Ausgaben für die Auswertung.
Zeile | Eingabe | Erwartete Ausgabe |
---|---|---|
1 | Die App stürzt jedes Mal ab, wenn ich versuche, eine PDF-Datei von meinem Smartphone hochzuladen. Sie funktioniert auf dem Desktop, aber nicht auf dem Mobiltelefon. | Der Benutzer meldet, dass die mobile App jedes Mal abstürzt, wenn er versucht, eine PDF hochzuladen, während die Desktopversion ohne Probleme funktioniert. |
2 | Ich habe den Support vor zwei Tagen kontaktiert und noch keine Antwort erhalten. Ich benötige so schnell wie möglich Hilfe beim Wiederherstellen meines Kontos. | Der Benutzer erwartet die Supportantwort und benötigt dringend Unterstützung bei der Kontowiederherstellung. |
3 | Bitte den dunklen Modus hinzufügen. Die Verwendung bei Nacht ist sehr schwierig. Meine Augen schmerzen nach längerer Verwendung. | Der Benutzer wünscht einen dunklen Modus, weil seine Augen bei nächtlicher Nutzung überanstrengt werden. |
Anpassen von Modellparametern
Klicke rechts in der Tabelle auf , um eine neue Promptkonfiguration hinzuzufügen.
In der neuen Promptkonfiguration kannst du mithilfe der verfügbaren Parametereinstellungen das Modell aktualisieren und sein Verhalten optimieren. Diese Einstellungen steuern, wie das Modell Text generiert, und bestimmen Länge, Zufälligkeit und Wiederholung.
Konfigurieren des Modells
Wähle im Dropdownmenü „Model“ die Option „PHI-4“, um eine neue Konfiguration für den Vergleich zu erstellen.
Du kannst die folgenden Parameter anpassen, um die Ausgabe des Modells zu beeinflussen:
- Max Token: Legt die maximale Anzahl von Token fest, die das Modell zurückgeben kann. Höhere Werte ermöglichen längere Ausgaben.
- Temperature: Steuert die Zufälligkeit in der Antwort. Niedrigere Werte (0,2–0,4) erzeugen gezieltere, deterministischere Ausgaben. Höhere Werte (0,8–1,0) führen zu mehr Variation und Kreativität.
- Top P: Steuert die Ausgabevielfalt durch Auswahl aus einem Pool der wahrscheinlichsten nächsten Wörter. Niedrigere Werte reduzieren die Variabilität, ähnlich wie beim Absenken der Temperatur.
- Presence Penalty: Hält das Modell davon ab, neue Themen einzuführen. Bei höheren Werten wird eine höhere Strafe angewendet. Ein Wert von 0 eignet sich in der Regel für die Zusammenfassung.
- Frequency Penalty: Verringert die Wahrscheinlichkeit, dass Wörter wiederholt werden. Bei höheren Werten wird eine höhere Strafe angewendet. Ein Wert zwischen 0 und 0,5 sorgt dafür, dass Zusammenfassungen übersichtlich sind und keine Redundanz enthalten.
- Stop: Gibt mindestens eine Zeichenfolge an, die beim Generieren die Modellantwort abgeschnitten werden. Verwende diese Informationen, um zu lange Ausgaben zu verhindern oder Formatierungsregeln durchzusetzen.
Die folgende Tabelle enthält eine Parameterkonfiguration zum Generieren präziser Zusammenfassungen während des Modellvergleichs.
Parameter | value | Reason |
---|---|---|
Max Tokens | 128 | Hält Antworten kurz und themenbezogen |
Temperature | 0,3 | Sorgt für deterministische, gezielte Ausgaben |
Top P | 1.0 | Erlaubt das volle Vokabular, lenkt jedoch die Auswahl |
Presence Penalty | 0 | Keine Strafe, Zusammenfassungen müssen thematisch nicht variieren |
Frequency Penalty | 0,3 | Reduziert wiederholte Formulierungen in kompakten Zusammenfassungen |
Beenden | (Optional) | Verwende diesen Parameter, wenn die Ausgabe nach einem Schlüsselwort oder Symbol enden soll |
Nach Anwendung der Parameter kannst du weitere Spalten hinzufügen, um weitere Modelle oder Promptkonfigurationen miteinander zu vergleichen.
Auswerten von Ausgaben
Nach der Konfiguration des Prompts führst du eine strukturierte Auswertung durch, um die Modellausgaben anhand echter Daten und wiederholbarer Metriken zu vergleichen.
Die Modellauswertung hilft dir zu verstehen, wie verschiedene Modelle und Promptkonfigurationen bei echten Eingaben ausgeführt werden. In der Promptansicht kannst du Auswerter auf mehrere Modelle parallel anwenden und Metriken wie Ähnlichkeit, Relevanz und Fundiertheit überprüfen.
Die folgenden Auswerter sind verfügbar:
- Ähnlichkeit: Misst, wie genau die Ausgabe eines Modells mit einer erwarteten Antwort oder Referenzantwort übereinstimmt. Dies ist nützlich, wenn du bestätigen möchtest, dass das Modell konsistente und genaue Antworten zurückgibt, die an einem bekannten Ergebnis ausgerichtet sind. Der Score reicht von 0 bis 1, wobei höhere Werte eine höhere Ähnlichkeit angeben.
- Relevanz: Bezieht sich darauf, wie effektiv eine Antwort eine Frage behandelt. Bewertet wird die Genauigkeit, Vollständigkeit und direkte Relevanz der Antwort ausschließlich auf der Grundlage der gegebenen Informationen. Der Score reicht von 0 bis 1, wobei höhere Werte eine stärkere Ausrichtung an der Absicht der Eingabe angeben.
- Fundiertheit: Misst, wie gut eine Antwort im gegebenen Kontext verankert ist, wobei ihre Relevanz, Genauigkeit und Vollständigkeit ausschließlich auf der Grundlage dieses Kontexts ausgewertet wird. Es wird bewertet, inwieweit die Antwort die Frage vollständig beantwortet, ohne irrelevante oder falsche Informationen einzuführen. Der Score reicht von 0 bis 1, wobei höhere Werte eine höhere Genauigkeit angeben.
- Benutzerdefinierter Prompt: Hier kannst du zur Bewertung der Ausgabe eines LLM deine eigenen Auswertungskriterien für LLMs definieren. So kannst du Modellausgaben basierend auf eigenen Richtlinien bewerten. Du kannst zwischen bestanden/nicht bestanden oder bewerteten Auswertungen wählen, weshalb sich die Lösung ideal für Szenarios eignet, in denen sich Testerwartungen durch Standardmetriken nicht erfassen lassen.
Wenn du mit der Auswertung fertig bist, klicke auf Run, um die Ausgaben für alle Promptkonfigurationen zu generieren und zu vergleichen. Nach der Ausführung zeigt GitHub Models die Ausgaben der einzelnen Promptkonfigurationen zusammen mit den Auswertungsergebnissen an.
Testfall: Absturz beim PDF-Upload
Eingabe: The app crashes every time I try to upload a PDF from my phone. It works on desktop but not on mobile.
In den folgenden Tabellen werden die Ausgaben der einzelnen Modelle und deren Auswertungsergebnisse angezeigt:
Modell | Output |
---|---|
GPT-4.1 | Der Benutzer meldet, dass die App beim Hochladen einer PDF-Datei von Mobilgeräten abstürzt, während das Hochladen auf dem Desktop funktioniert. |
DeepSeek-R1 | |
Phi-4 | Die App stürzt ab, wenn versucht wird, eine PDF-Datei vom Mobilgerät hochzuladen, obwohl es mit der Desktopversion problemlos funktioniert. |
Modell | Ähnlichkeit | Relevance | Fundiertheit | Eingabetoken | Ausgabetoken | Latency |
---|---|---|---|---|---|---|
GPT-4.1 | 100 % | 50 % | 100 % | 61 | 20 | 918 ms |
DeepSeek-R1 | 50 % | 50 %% | 75% | 52 | 128 | 2285 ms |
Phi-4 | 75% | 100 %% | 100 %% | 61 | 66 | 1117 ms |
Verwende die Bewertungen des Auswerters, um Antworten, die nicht nur oberflächlich formuliert sind, zu bewerten und zu vergleichen.
Ähnlichkeit
Bewerte, wie genau die Ergebnisse der einzelnen Modelle mit der erwarteten Zusammenfassung übereinstimmen. Die folgende Tabelle zeigt die Relevanzbewertungen für die einzelnen Modelle.
Modell | Ähnlichkeitswert |
---|---|
GPT-4.1 | 100 % |
DeepSeek-R1 | 50 % |
Phi-4 | 75% |
Während alle Modelle die wichtigsten Inhalte der Eingabe enthalten, ist die Ähnlichkeitsbewertung von DeepSeek-R1 aufgrund der ausführlichen internen Kommentare, die von der erwarteten knappen Zusammenfassung abweichen, deutlich niedriger. Im Gegensatz dazu stimmt die Antwort von GPT-4.1 mit dem Ausdruck und der Struktur der Referenzausgabe überein.
Relevance
Beurteile, wie gut die einzelnen Modelle die zentrale Absicht der Eingabe erfassen. Die folgende Tabelle zeigt die Relevanzbewertungen für die einzelnen Modelle.
Modell | Relevanzbewertung |
---|---|
GPT-4.1 | 50 % |
DeepSeek-R1 | 50 % |
Phi-4 | 100 % |
Alle drei Modelle haben das Problem erkannt, dass die App beim Hochladen von PDF-Dateien auf dem Mobilgerät abstürzt. Phi-4 erhielt eine höhere Relevanzbewertung, weil damit die Perspektive des Benutzers umfassender wiedergegeben wurde. DeepSeek-R1 hat wegen der Angabe spekulativer technischer Ursachen, die in der ursprünglichen Eingabe nicht erwähnt wurden, Punkte verloren.
Fundiertheit
Beurteile, ob die Ausgabe der einzelnen Modelle der Eingabe entspricht, ohne dass ungestützte Informationen hinzugefügt werden. Die folgende Tabelle zeigt die Relevanzbewertungen für die einzelnen Modelle.
Modell | Fundiertheitsbewertung |
---|---|
GPT-4.1 | 100 % |
DeepSeek-R1 | 75% |
Phi-4 | 100 % |
Auch wenn DeepSeek-R1 interne Kommentare hinzufügt, werden damit keine halluzinierten Fakten eingefügt. Der abschließende zusammenfassende Satz gibt die ursprüngliche Eingabe korrekt wieder.
Testfall: Anforderung des dunklen Modus
Eingabe: Please add dark mode. It's very hard to use at night. My eyes hurt after prolonged use.
In den folgenden Tabellen werden die Ausgaben der einzelnen Modelle und deren Auswertungsergebnisse angezeigt:
Modell | Output |
---|---|
GPT-4.1 | Der Benutzer wünscht sich einen zusätzlichen dunklen Modus, weil er sich bei der Verwendung der App bei Nacht unwohl fühlt und seine Augen überanstrengt. |
DeepSeek-R1 | |
Phi-4 | Der Kunde wünscht sich einen zusätzlichen dunklen Modus, um die Beanspruchung der Augen bei Verwendung des Produkts bei Nacht zu verringern. |
Modell | Ähnlichkeit | Relevance | Fundiertheit | Eingabetoken | 256 Ausgabetoken | Latency |
---|---|---|---|---|---|---|
GPT-4.1 | 100 % | 75% | 100 % | 57 | 18 | 1286 ms |
DeepSeek-R1 | 50 % | 0 % | 25 % | 49 | 128 | 1946 ms |
Phi-4 | 100 % | 75% | 100 % | 58 | 20 | 899 ms |
Ähnlichkeit
Bewerte, wie genau die Ergebnisse der einzelnen Modelle mit der erwarteten Zusammenfassung übereinstimmen. Die folgende Tabelle zeigt die Relevanzbewertungen für die einzelnen Modelle.
Modell | Ähnlichkeitswert |
---|---|
GPT-4.1 | 100 % |
DeepSeek-R1 | 50 % |
Phi-4 | 100 % |
Während alle Modelle die wichtigsten Inhalte der Eingabe enthalten, ist die Ähnlichkeitsbewertung von DeepSeek-R1 aufgrund der ausführlichen internen Kommentare wieder deutlich niedriger.
Relevance
Beurteile, wie gut die einzelnen Modelle die zentrale Absicht der Eingabe erfassen. Die folgende Tabelle zeigt die Relevanzbewertungen für die einzelnen Modelle.
Modell | Relevanzbewertung |
---|---|
GPT-4.1 | 75% |
DeepSeek-R1 | 0 % |
Phi-4 | 75% |
GPT-4.1 und Phi-4 haben beide die zentrale Absicht des Benutzerwunsches erfasst: das Verlangen nach einem dunklen Modus, um die Beanspruchung der Augen zu verringern und die Benutzerfreundlichkeit bei Nacht zu verbessern. DeepSeek-R1 erreichte 0 % der Relevanz, da die ausführlichen internen Kommentare von der eigentlichen Ausgabe ablenken.
Fundiertheit
Beurteile, ob die Ausgabe der einzelnen Modelle der Eingabe entspricht, ohne dass ungestützte Informationen hinzugefügt werden. Die folgende Tabelle zeigt die Relevanzbewertungen für die einzelnen Modelle.
Modell | Fundiertheitsbewertung |
---|---|
GPT-4.1 | 100 % |
DeepSeek-R1 | 25 % |
Phi-4 | 100 % |
DeepSeek-R1 schnitt aufgrund des ausführlichen <think>
-Blocks mit spekulativen Schlussfolgerungen, die in der ursprünglichen Eingabe nicht enthalten waren, schlechter ab.
Speichern der Konfiguration
Nach Abschluss der Auswertungen besteht der letzte Schritt darin, das Modell auszuwählen, das für deinen spezifischen Anwendungsfall am besten geeignet ist. In den obigen Beispielen lieferten Phi-4 und GPT-4.1 bei allen Auswertern gleichbleibend überzeugende Ergebnisse. DeepSeek-R1 schnitt aufgrund seiner ausführlichen Schlussfolgerungen und weniger gezielten Ausgaben schlechter ab.
Nachdem du dein bevorzugtes Modell und deine Promptkonfiguration ausgewählt hast, gibst du der Promptdatei einen aussagekräftigen Namen und klickst dann auf Commit changes. Damit werden Modell, Prompt, Parametereinstellungen und das entsprechende Dataset als wiederverwendbare Konfigurationsdatei in deinem Repository gespeichert.
Wenn du deine Promptkonfiguration committest, kannst du sie problemlos wiederverwenden, zusammenarbeiten und in verschiedenen Modellkonfigurationen durchlaufen. Dadurch wird es einfacher, Auswertungen erneut durchzuführen und die Leistung der Promptkonfiguration langfristig nachzuverfolgen.