Logit_bias je voliteľný parameter, ktorý upravuje pravdepodobnosť, že sa zadané tokeny objavia vo výstupe vygenerovanom modelom.
Tento parameter prijíma objekt JSON, ktorý mapuje tokeny na príslušnú hodnotu skreslenia od -100 (čo vo väčšine prípadov zabráni vygenerovaniu daného tokenu) po 100 (výhradný výber tokenu, vďaka čomu je pravdepodobnejšie, že bude vygenerovaný). Stredné hodnoty, ako -1 a 1, zmenia pravdepodobnosť výberu tokenu v menšej miere.
Keďže parameter prijíma tokeny, nie text, na konverziu textu na ID tokenov budete chcieť použiť nástroj na tokenizáciu. Prejdime si niekoľko príkladov.
Príklad 1: Odstránenie „time“
Ak zavoláme koncový bod Completions s príkazom „Once upon a,“ dokončenie sa veľmi pravdepodobne začne textom „ time.“
Slovo „time“ sa tokenizuje na ID 2435 a slovo „ time“ (ktoré má na začiatku medzeru) sa tokenizuje na ID 640. Môžeme ich odovzdať cez logit_bias s hodnotou -100, aby sme im zakázali objaviť sa v dokončení, napríklad takto:
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Dokončujete vety používateľa."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)Teraz príkaz „Once upon a“ vygeneruje dokončenie „midnight dreary, while I pondered, weak and weary.“
Všimnite si, že slovo „time“ nikde nenájdete, pretože sme tento token účinne zakázali pomocou logit_bias.
Príklad 2: Usmernenie pomocou cielených hodnôt logitového skreslenia
Prejdime si ďalší príklad s použitím príkazu generátora receptov.
Mnohé recepty odporúčajú použiť hrnce, ale predpokladajme, že hrniec nemáme. Budeme chcieť zabrániť tomu, aby sa slovo „pot“ vygenerovalo ako súčasť nášho dokončenia. „Pot“ sa tokenizuje na 1787, takže ho môžeme z nášho generovania odstrániť nastavením logit_bias takto.
logit_bias={1787:-100}Teraz by naše dokončenie mohlo namiesto toho obsahovať slovo „saucepan“. Perfektné!
Príklad 3: Zvýšenie pravdepodobnosti výskytu slova
Predpokladajme, že chceme zvýšiť pravdepodobnosť, že sa slovo objaví.
Napríklad možno prevádzkujeme stránku, ktorá ponúka recepty pripraviteľné v mikrovlnnej rúre, takže chceme mať istotu, že sa v recepte objaví slovo „microwave“. Slovo Microwave sa tokenizuje na ID 27000. Pravdepodobnosť, že sa tento token objaví, môžeme zvýšiť nastavením kladnej hodnoty logit_bias, napríklad takto:
logit_bias={27000:5}Teraz je pravdepodobnejšie, že naše dokončenie bude obsahovať slovo „microwave“.
Hodnotu logit_bias sme nastavili na 5, pretože sme zistili, že nastavenie logit_bias na 1 často neviedlo k tomu, aby sa slovo „microwave“ objavilo v dokončení, zatiaľ čo vyššie hodnoty logit_bias, napríklad 10, spôsobovali, že sa slovo „ microwave“ objavovalo v dokončení príliš často.
