OpenAI
Diese Seite wurde maschinell übersetzt. Den Originalartikel auf Englisch ansehen.

Logit Bias verwenden, um die Token-Wahrscheinlichkeit mit der OpenAI API zu verändern

Erfahre, wie du den Parameter logit bias nutzt, um Modellausgaben zu verändern

Aktualisiert: 2 days ago

Logit_bias ist ein optionaler Parameter, der die Wahrscheinlichkeit verändert, dass bestimmte Tokens in einer vom Modell erzeugten Ausgabe erscheinen.

Dieser Parameter akzeptiert ein JSON-Objekt, das Tokens einem zugehörigen Bias-Wert von -100 (der in den meisten Fällen verhindert, dass dieses Token generiert wird) bis 100 zuordnet (exklusive Auswahl des Tokens, wodurch es mit höherer Wahrscheinlichkeit generiert wird). Moderate Werte wie -1 und 1 verändern die Wahrscheinlichkeit, dass ein Token ausgewählt wird, in geringerem Maße.

Da der Parameter Tokens (nicht Text) entgegennimmt, solltest du ein Tokenizer-Tool verwenden, um Text in Token-IDs umzuwandeln. Gehen wir ein paar Beispiele durch.

Beispiel 1: „time“ entfernen

Wenn wir den Completions-Endpunkt mit dem Prompt „Once upon a,“ aufrufen, wird die Completion sehr wahrscheinlich mit „ time.“ beginnen.

Das Wort „time“ wird zur ID 2435 tokenisiert und das Wort „ time“ (mit einem Leerzeichen am Anfang) wird zur ID 640 tokenisiert. Wir können diese über logit_bias mit -100 übergeben, um sie aus der Completion zu verbannen, so:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "You finish user's sentences."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

Jetzt erzeugt der Prompt „Once upon a“ die Completion „midnight dreary, while I pondered, weak and weary.“

Beachte, dass das Wort „time“ nirgends auftaucht, weil wir dieses Token mit logit_bias effektiv gesperrt haben.

Beispiel 2: Mit gezielten logit bias-Werten steuern

Schauen wir uns ein weiteres Beispiel an, diesmal mit einem Prompt für einen Rezept-Generator.

Viele Rezepte schlagen vor, „pot“ zu verwenden – aber nehmen wir an, wir haben keinen. Wir möchten verhindern, dass das Wort pot als Teil unserer Completion generiert wird. „Pot“ wird zu 1787 tokenisiert, also können wir es aus der Generierung entfernen, indem wir logit_bias wie unten setzen.

logit_bias={1787:-100}

Jetzt könnte unsere Completion stattdessen das Wort „saucepan“ enthalten. Perfekt!

Beispiel 3: Die Wahrscheinlichkeit erhöhen, dass ein Wort erscheint

Angenommen, wir wollen die Wahrscheinlichkeit erhöhen, dass ein Wort erscheint.

Vielleicht betreiben wir zum Beispiel eine Website mit Rezepten, die man in der Mikrowelle zubereiten kann, und wir wollen sicherstellen, dass das Wort „microwave“ im Rezept vorkommt. Microwave wird zur ID 27000 tokenisiert. Wir können die Wahrscheinlichkeit erhöhen, dass dieses Token erscheint, indem wir einen positiven logit_bias setzen, so:

logit_bias={27000:5}

Jetzt ist es wahrscheinlicher, dass unsere Completion das Wort „microwave“ enthält.

Wir haben logit_bias auf 5 gesetzt, da wir festgestellt haben, dass logit_bias = 1 häufig nicht dazu führte, dass das Wort „microwave“ in der Completion erscheint, während höhere logit_bias-Werte wie 10 dazu führten, dass das Wort „ microwave“ in der Completion zu oft auftauchte.

War dieser Artikel hilfreich?