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, binubuo ng prompt na “Once upon a” ang tekstong “midnight dreary, while I pondered, weak and weary.”
Pansining hindi lumilitaw ang salitang “time” dahil epektibo nating na-ban ang token na iyon gamit ang logit_bias.
Halimbawa 2: Magbigay ng direksyon gamit ang mga naka-target na value ng logit bias
Talakayin natin ang isa pang halimbawa gamit ang prompt para sa generator ng recipe.
Maraming recipe ang nagmumungkahing gumamit ng mga kaldero, ngunit ipagpalagay na wala tayong kaldero. Ayaw nating maisama ang salitang “pot” sa nabuong teksto. Nato-tokenize ang “Pot” bilang 1787, kaya maaalis natin ito sa pagbuo ng teksto sa pamamagitan ng pagtatakda ng logit_bias gaya ng nasa ibaba.
logit_bias={1787:-100}Ngayon, maaaring isama na lang ng ating completion ang salitang “saucepan”. Perpekto!
Halimbawa 3: Palakihin ang posibilidad na lumitaw ang isang salita
Ipagpalagay na gusto nating palakihin ang posibilidad na lumitaw ang isang salita.
Halimbawa, maaaring nagpapatakbo tayo ng site na nag-aalok ng mga recipe na maaaring lutuin sa microwave, kaya gusto nating matiyak na lumilitaw sa recipe ang salitang “microwave”. Nato-tokenize ang “Microwave” bilang ID 27000. Mapapalaki natin ang posibilidad na lumitaw ang token na ito sa pamamagitan ng pagtatakda ng positibong logit_bias, gaya nito:
logit_bias={27000:5}Ngayon, mas malamang na maisama sa nabuong teksto ang salitang “microwave”.
Itinakda natin sa 5 ang logit_bias dahil napag-alaman nating kapag 1 ang logit_bias, madalas na hindi lumilitaw ang salitang “microwave” sa nabuong teksto, samantalang kapag mas mataas ang value ng logit_bias, gaya ng 10, napakadalas naman nitong lumitaw.
