Ang Logit_bias ay opsyonal na parameter na nagbabago sa posibilidad na lumitaw ang mga tinukoy na token sa output na binuo ng modelo.
Tumatanggap ang parameter na ito ng JSON object na nagmamapa ng mga token sa kaugnay na bias value mula -100 (na sa karamihan ng kaso ay haharang sa pagbuo ng token na iyon) hanggang 100 (eksklusibong pagpili ng token, na nagpapataas ng posibilidad na mabuo ito). Ang mga katamtamang value gaya ng -1 at 1 ay babago sa probability na mapili ang isang token sa mas maliit na antas.
Dahil tumatanggap ang parameter ng mga token, hindi text, gugustuhin mong gumamit ng tokenizer tool para i-convert ang text sa mga token ID. Tingnan natin ang ilang halimbawa.
Halimbawa 1: Alisin ang ‘time’
Kung tatawagin natin ang Completions endpoint gamit ang prompt na “Once upon a,” malamang na magsisimula ang completion sa “ time.”
Ang salitang “time” ay na-i-tokenize sa ID 2435 at ang salitang “ time” (na may espasyo sa simula) ay na-i-tokenize sa ID 640. Maaari nating ipasa ang mga ito sa logit_bias na may -100 para pigilan ang paglitaw ng mga ito sa completion, tulad nito:
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Tinatapos mo ang mga pangungusap ng user."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)Ngayon, ginagawa ng prompt na “Once upon a” ang completion na “midnight dreary, while I pondered, weak and weary.”
Pansinin na hindi makikita ang salitang “time” kahit saan, dahil epektibo nating na-ban ang token na iyon gamit ang logit_bias.
Halimbawa 2: Magbigay ng direksyon gamit ang mga naka-target na logit bias value
Tingnan natin ang isa pang halimbawa, gamit ang prompt ng recipe generator.
Maraming recipe ang nagmumungkahing gumamit ng mga pot, pero ipagpalagay na wala tayong pot. Gusto nating alisin ang salitang pot para hindi ito mabuo bilang bahagi ng ating completion. Ang ‘Pot’ ay na-i-tokenize sa 1787 kaya maaari natin itong alisin sa ating pagbuo sa pamamagitan ng pagtatakda ng ating logit_bias gaya ng nasa ibaba.
logit_bias={1787:-100}Ngayon, maaaring isama na lang ng ating completion ang salitang “saucepan”. Perpekto!
Halimbawa 3: Pataasin ang posibilidad na lumitaw ang isang salita
Ipagpalagay na gusto nating pataasin ang posibilidad na lumitaw ang isang salita.
Halimbawa, marahil ay nagpapatakbo tayo ng site na nag-aalok ng mga recipe na maaari mong gawin gamit ang microwave, kaya gusto nating tiyaking lumilitaw ang salitang “microwave” sa recipe. Ang Microwave ay na-i-tokenize sa ID 27000. Maaari nating pataasin ang posibilidad na lumitaw ang token na ito sa pamamagitan ng pagtatakda ng positibong logit_bias, tulad nito:
logit_bias={27000:5}Ngayon, mas malamang na isama ng ating completion ang salitang ‘microwave’.
Itinakda namin ang logit_bias sa 5, dahil nakita naming ang pagtatakda ng logit_bias sa 1 ay madalas na hindi nagreresulta sa paglitaw ng salitang “microwave” sa completion, habang ang mas matataas na value ng logit_bias gaya ng 10 ay nagresulta sa masyadong madalas na paglitaw ng salitang “ microwave” sa completion.
