Logit_bias ist ein optionaler Parameter, der die Wahrscheinlichkeit ändert, dass angegebene Token in einer von einem Modell generierten Ausgabe erscheinen.
Dieser Parameter akzeptiert ein JSON-Objekt, das Token einem zugehörigen Bias-Wert von -100 (was in den meisten Fällen verhindert, dass dieses Token generiert wird) bis 100 (exklusive Auswahl des Tokens, wodurch es wahrscheinlicher generiert wird) zuordnet. Moderate Werte wie -1 und 1 ändern die Wahrscheinlichkeit, dass ein Token ausgewählt wird, in geringerem Maße.
Da der Parameter Token und keinen 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, beginnt die Completion sehr wahrscheinlich mit „ time.“
Das Wort „time“ wird zur ID 2435 tokenisiert und das Wort „ time“ (das am Anfang ein Leerzeichen hat) wird zur ID 640 tokenisiert. Wir können diese mit -100 über logit_bias übergeben, um zu verhindern, dass sie in der Completion erscheinen, etwa 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“ nirgendwo zu finden ist, weil wir dieses Token mithilfe von logit_bias effektiv gesperrt haben.
Beispiel 2: Mit gezielten logit_bias-Werten eine Richtung vorgeben
Gehen wir ein weiteres Beispiel mit einem Rezeptgenerator-Prompt durch.
Viele Rezepte schlagen die Verwendung von Töpfen vor, aber nehmen wir an, wir haben keinen Topf. Wir möchten verhindern, dass das Wort „pot“ als Teil unserer Completion generiert wird. „Pot“ wird zu 1787 tokenisiert, sodass wir es aus unserer Generierung entfernen können, indem wir logit_bias wie unten festlegen.
logit_bias={1787:-100}Jetzt könnte unsere Completion stattdessen das Wort „saucepan“ enthalten. Perfekt!
Beispiel 3: Wahrscheinlichkeit erhöhen, dass ein Wort erscheint
Angenommen, wir möchten die Wahrscheinlichkeit erhöhen, dass ein Wort erscheint.
Vielleicht betreiben wir zum Beispiel eine Website, die Rezepte anbietet, die du mit einer Mikrowelle zubereiten kannst. Daher möchten wir sicherstellen, dass das Wort „microwave“ im Rezept erscheint. Microwave wird zu ID 27000 tokenisiert. Wir können die Wahrscheinlichkeit erhöhen, dass dieses Token erscheint, indem wir einen positiven logit_bias setzen, etwa so:
logit_bias={27000:5}Jetzt enthält unsere Completion mit höherer Wahrscheinlichkeit das Wort „microwave“.
Wir setzen logit_bias auf 5, da wir festgestellt haben, dass das Setzen von logit_bias auf 1 oft nicht dazu führte, dass das Wort „microwave“ in der Completion erschien, während höhere Werte für logit_bias wie 10 dazu führten, dass das Wort „ microwave“ zu häufig in der Completion erschien.
