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}
)Nun erzeugt der Prompt “Once upon a” die Vervollständigung “midnight dreary, while I pondered, weak and weary.”
Beachte, dass das Wort „time“ nirgends vorkommt, weil wir dieses Token mit logit_bias praktisch ausgeschlossen haben.
Beispiel 2: Mit gezielten Logit-Bias-Werten steuern
Sehen wir uns ein weiteres Beispiel mit einem Prompt für einen Rezeptgenerator an.
In vielen Rezepten werden Töpfe verwendet. Angenommen, wir haben keinen Topf. Wir möchten verhindern, dass das Wort „pot“ als Teil unserer Vervollständigung erzeugt wird. „Pot“ wird als Token mit der ID 1787 dargestellt. Wir können es daher aus der Generierung ausschließen, indem wir logit_bias wie unten gezeigt festlegen.
logit_bias={1787:-100}Jetzt könnte unsere Completion stattdessen das Wort „saucepan“ enthalten. Perfekt!
Beispiel 3: Wahrscheinlichkeit für das Auftreten eines Wortes erhöhen
Angenommen, wir möchten die Wahrscheinlichkeit erhöhen, dass ein Wort vorkommt.
Vielleicht betreiben wir zum Beispiel eine Website mit Rezepten für die Mikrowelle. Daher möchten wir sicherstellen, dass das Wort „microwave“ im Rezept vorkommt. Microwave wird als Token mit der ID 27000 dargestellt. Wir können die Wahrscheinlichkeit erhöhen, dass dieses Token erscheint, indem wir wie folgt einen positiven logit_bias-Wert festlegen:
logit_bias={27000:5}Nun enthält unsere Vervollständigung mit höherer Wahrscheinlichkeit das Wort „microwave“.
Wir haben logit_bias auf 5 gesetzt. Bei einem Wert von 1 erschien das Wort „microwave“ oft nicht in der Vervollständigung, während höhere logit_bias-Werte wie 10 dazu führten, dass das Wort „ microwave“ zu oft darin vorkam.
