Logit_bias är en valfri parameter som ändrar sannolikheten för att angivna token ska visas i utdata som genereras av en modell.
Den här parametern accepterar ett JSON-objekt som mappar token till ett tillhörande biasvärde från -100 (vilket i de flesta fall hindrar den tokenen från att genereras) till 100 (exklusivt val av tokenen, vilket gör att den sannolikare genereras). Måttliga värden som -1 och 1 ändrar sannolikheten för att en token väljs i mindre grad.
Eftersom parametern tar emot token, inte text, bör du använda ett tokeniseringsverktyg för att konvertera text till token-ID:n. Låt oss gå igenom några exempel.
Exempel 1: Ta bort ”time”
Om vi anropar Completions-slutpunkten med prompten ”Once upon a,” kommer kompletteringen med stor sannolikhet att börja med ” time.”
Ordet ”time” tokeniseras till ID 2435 och ordet ” time” (som har ett mellanslag i början) tokeniseras till ID 640. Vi kan skicka dessa via logit_bias med -100 för att förhindra att de visas i kompletteringen, så här:
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}
)Nu genererar prompten ”Once upon a” kompletteringen ”midnight dreary, while I pondered, weak and weary.”
Observera att ordet ”time” inte finns någonstans, eftersom vi effektivt har blockerat den tokenen med logit_bias.
Exempel 2: Ge styrning med riktade värden för logit bias
Låt oss gå igenom ett annat exempel, med en prompt för en receptgenerator.
Många recept föreslår att man använder grytor, men anta att vi inte har någon gryta. Vi vill förhindra att ordet pot genereras som en del av vår komplettering. ”Pot” tokeniseras till 1787, så vi kan ta bort det från vår generering genom att ställa in logit_bias enligt nedan.
logit_bias={1787:-100}Nu kan vår komplettering innehålla ordet ”saucepan” i stället. Perfekt!
Exempel 3: Öka sannolikheten för att ett ord visas
Anta att vi vill öka sannolikheten för att ett ord visas.
Vi kanske till exempel driver en webbplats som erbjuder recept som man kan laga med en mikrovågsugn, så vi vill se till att ordet ”microwave” finns med i receptet. Microwave tokeniseras till ID 27000. Vi kan öka sannolikheten för att denna token visas genom att ange en positiv logit_bias, så här:
logit_bias={27000:5}Nu är det mer sannolikt att vår komplettering innehåller ordet ”microwave”.
Vi ställde in logit_bias på 5, eftersom vi såg att när logit_bias sattes till 1 ledde det ofta inte till att ordet ”microwave” dök upp i kompletteringen, medan högre värden för logit_bias, som 10, ledde till att ordet ” microwave” dök upp i kompletteringen för ofta.
