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” fortsättningen ”midnight dreary, while I pondered, weak and weary.”
Observera att ordet ”time” inte förekommer någonstans, eftersom vi i praktiken har blockerat denna token med hjälp av logit_bias.
Exempel 2: Styr resultatet med riktade logit bias-värden
Vi går igenom ett annat exempel med en prompt för en receptgenerator.
Många recept föreslår att man använder en gryta, men anta att vi inte har någon. Vi vill förhindra att ordet ”pot” genereras som en del av fortsättningen. ”Pot” tokeniseras till 1787, så vi kan förhindra att det genereras 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 förekommer
Anta att vi vill öka sannolikheten för att ett ord förekommer.
Vi kanske till exempel driver en webbplats med recept som kan tillagas i mikrovågsugn och därför vill säkerställa att ordet ”microwave” förekommer i receptet. Microwave tokeniseras till ID 27000. Vi kan öka sannolikheten för att denna token förekommer genom att ange ett positivt logit_bias-värde så här:
logit_bias={27000:5}Nu är det mer sannolikt att vår fortsättning innehåller ordet ”microwave”.
Vi satte logit_bias till 5, eftersom värdet 1 ofta inte gjorde att ordet ”microwave” förekom i fortsättningen, medan högre logit_bias-värden, som 10, gjorde att ordet ” microwave” förekom för ofta.
