Zero-Shot-Prompting heißt, ein Modell eine Aufgabe allein anhand einer Anweisung lösen zu lassen, ohne ihm Beispiele für die gewünschte Antwort zu zeigen. "Übersetze diesen Absatz ins Spanische" und "Fasse diese E-Mail in zwei Sätzen zusammen" sind Zero-Shot-Prompts. So nutzen die meisten Leute Chatmodelle, und für verbreitete Aufgaben reicht das meistens.
Was Zero-Shot bedeutet
Im maschinellen Lernen ist ein "Shot" ein ausgearbeitetes Beispiel. Die Begriffe sind älter als Chatmodelle, aber ihre Bedeutung fürs Prompting wurde durch Brown et al. 2020 bekannt, "Language Models are Few-Shot Learners". Das Paper testete GPT-3 in drei Varianten: eine Aufgabenbeschreibung mit null, einer oder einigen Demonstrationen im Prompt, und in keiner wurde das Modell neu trainiert. Bei diesem Modell schlugen ein paar Beispiele meist gar keine.
Seitdem wurden Chatmodelle intensiv darauf trainiert, Anweisungen zu befolgen, und deshalb funktioniert eine einfache Bitte heute so gut. Ein Zero-Shot-Prompt ist genau die Situation, für die sie trainiert wurden: Jemand beschreibt eine Aufgabe in Worten und erwartet, dass sie erledigt wird.
Zero-Shot heißt nicht null Kontext. Ein guter Zero-Shot-Prompt nennt trotzdem das Publikum, enthält den Input und beschreibt Format und Grenzen. Das Einzige, was fehlt, ist ein fertiges Beispiel für die Ausgabe.
Ein gut gemachter Zero-Shot-Prompt
Der Prompt unten zieht To-dos aus Meeting-Notizen heraus, ohne Beispiel für die Ausgabe, nur mit einer präzisen Beschreibung davon. Schalte Teile aus, um zu sehen, welche Zeilen die Arbeit machen.
Sprint-Sync, Dienstag
Priya behebt den Login-Timeout vor Freitag.
Über einen Wechsel zu einem neuen CI-Anbieter gesprochen, keine Entscheidung.
Tom schreibt die Release Notes für 2.4.
Jemand sollte das Onboarding-Dokument aktualisieren.
Lena: Ich reviewe Toms Notes bis Donnerstag.Priya: Login-Timeout beheben (vor Freitag) Tom: Release Notes für 2.4 schreiben Nicht zugewiesen: Onboarding-Dokument aktualisieren Lena: Toms Release Notes reviewen (bis Donnerstag)
Die Format-Zeile erledigt, was ein Beispiel tun würde: Sie beschreibt die genaue Form jeder Zeile, also gibt es nichts zu kopieren. Schalte sie aus, und die Antwort wählt ihre eigene Form, oft eine Aufzählung mit fetten Namen, die gut lesbar ist, sich aber nicht mehr sauber in einen Tracker einfügen lässt. Schalte die Vorgaben aus, und die CI-Diskussion taucht vielleicht als Aufgabe auf, weil nichts dem Modell gesagt hat, dass unentschiedene Themen nicht zählen.
Wann Zero-Shot reicht
Zero-Shot funktioniert, wenn das Modell alles aus deinen Worten ableiten kann:
- Die Aufgabe ist verbreitet. Zusammenfassen, übersetzen, erklären, Grammatik korrigieren und eine Funktion nach klarer Spezifikation schreiben sind alles Aufgaben, die das Modell im Training unzählige Male gesehen hat.
- Du kannst die Ausgabe genau beschreiben. "Eine Zeile pro To-do, Person zuerst" ist so klar wie ein Beispiel. Unter strukturierte Ausgabe steht, wie du Formate beschreibst, die ein Programm liest.
- Die Kategorien bedeuten, was sie sagen. Bewertungen in positiv und negativ einzuteilen braucht meist keine Beispiele, weil diese Labels für fast alle dasselbe bedeuten.
Wann du besser Beispiele ergänzt
Manches lässt sich schwer in Worte fassen, und genau da fangen Zero-Shot-Prompts an danebenzuliegen:
- Deine eigenen Grenzen. Wenn dein Support-Team "kann mich nicht einloggen" unter Kontoprobleme ablegt und nicht unter Bugs, kann das Modell das nicht wissen. Es wählt die Lesart, die die meisten Leute wählen würden.
- Ein Hausstil. Die Commit-Messages deines Teams oder der Ton eures Newsletters lassen sich leichter zeigen als beschreiben.
- Wiederholte Beinahe-Treffer. Wenn du die Anweisung zweimal umformuliert hast und die Ausgabe immer noch auf dieselbe Weise leicht danebenliegt, hör auf umzuformulieren und zeig zwei oder drei richtige Antworten.
Das ist Few-Shot-Prompting. Eine sinnvolle Gewohnheit: mit Zero-Shot anfangen, anschauen, was zurückkommt, und Beispiele nur für das ergänzen, was konkret schiefgeht.
Zero-Shot Chain of Thought
Kojima et al. 2022, "Large Language Models are Zero-Shot Reasoners", fanden heraus, dass ein einziger zusätzlicher Satz, "Let's think step by step" (auf Deutsch etwa "Lass uns Schritt für Schritt denken"), große Modelle bei Rechen-, Symbol- und Logikaufgaben deutlich besser machte, ganz ohne Beispiele. Die Formulierung bringt das Modell dazu, Zwischenschritte vor der Antwort auszuschreiben, und jeder geschriebene Schritt wird Kontext für den nächsten. Ihre Methode nutzte zwei Aufrufe: Der erste erzeugte den Lösungsweg, der zweite fragte nach der endgültigen Antwort.
Im Block unten erzwingt der erste Tab eine sofortige Antwort, und der zweite gibt dem Modell Raum zum Arbeiten.
12:40
Die erste Antwort hat die 10 aufgeholten Minuten vergessen: die Art Ausrutscher, die passiert, wenn sich ein Modell in seinen ersten paar Tokens auf die Antwort festlegen muss. Ein aktuelles Modell löst genau diese Aufgabe vielleicht so oder so richtig; der Unterschied wächst mit der Zahl der Schritte im Problem. Die zweite Version hat noch einen Vorteil: Jeder Schritt ist sichtbar, also siehst du, wo eine Antwort schiefgelaufen ist.
Modelle, die intern nachdenken, bevor sie antworten, erledigen diese Arbeit schon ungefragt, deshalb bringt "Lass uns Schritt für Schritt denken" bei ihnen kaum mehr als eine längere Antwort. Chain-of-Thought-Prompting behandelt die Technik ausführlich, auch die Few-Shot-Variante.
Zero-Shot und Few-Shot im Überblick
| Zero-Shot | Few-Shot | |
|---|---|---|
| Was der Prompt enthält | Anweisungen, Kontext und Input | Dasselbe plus ein paar Paare aus Input und Antwort |
| Am besten für | Verbreitete Aufgaben mit leicht beschreibbarer Ausgabe | Eigene Labels, ungewöhnliche Formate, Hausstil |
| Kosten | Kurzer Prompt | Längerer Prompt, mehr Tokens pro Aufruf |
| Typischer Fehler | Wählt die häufigste Deutung, nicht deine | Kopiert zufällige Muster in den Beispielen |
Häufig gestellte Fragen
Was ist Zero-Shot-Prompting?
Zero-Shot-Prompting heißt, einem Sprachmodell eine Aufgabe nur mit Anweisungen zu geben, ohne ausgearbeitete Beispiele für die Ausgabe. "Fasse diese E-Mail in zwei Sätzen zusammen" ist ein Zero-Shot-Prompt. Moderne Chatmodelle sind darauf trainiert, Anweisungen zu befolgen, deshalb bewältigen Zero-Shot-Prompts die meisten Alltagsaufgaben gut.
Was ist der Unterschied zwischen Zero-Shot- und Few-Shot-Prompting?
Ein Zero-Shot-Prompt beschreibt die Aufgabe in Worten. Ein Few-Shot-Prompt ergänzt ein paar Beispiele, jeweils ein Input mit der gewünschten Antwort, damit das Modell das Muster übernehmen kann. Fang mit Zero-Shot an; wechsle zu Few-Shot, wenn die Ausgabe immer wieder ein Format oder eine Unterscheidung verfehlt, die leichter zu zeigen als zu beschreiben ist.
Warum heißt es Zero-Shot?
Im maschinellen Lernen ist ein "Shot" ein ausgearbeitetes Beispiel. Das GPT-3-Paper von Brown et al. aus dem Jahr 2020, "Language Models are Few-Shot Learners", testete das Modell mit null, einer oder einigen Demonstrationen einer Aufgabe im Prompt, und dadurch wurden die Namen fürs Prompting zum Standard: Zero-Shot, One-Shot und Few-Shot.
Wann funktioniert Zero-Shot-Prompting nicht?
Es hat Schwierigkeiten, wenn die Aufgabe von Regeln abhängt, die nur du kennst, etwa die Kategorien deines Teams oder euer Hausstil, wenn das Ausgabeformat ungewöhnlich ist, und bei mehrstufigem Denken, bei dem das Modell zu schnell antwortet. Beispiele lösen die ersten beiden Probleme; die Bitte, Schritt für Schritt vorzugehen, hilft beim dritten.
Was ist Zero-Shot Chain of Thought?
Das ist ein Zero-Shot-Prompt, der das Modell bittet, vor der Antwort nachzudenken, am bekanntesten durch den Zusatz "Let's think step by step" (auf Deutsch etwa "Lass uns Schritt für Schritt denken"). Kojima et al. zeigten 2022, dass dieser eine Satz ohne jedes Beispiel die Ergebnisse großer Modelle bei Rechen- und Logikaufgaben verbesserte.