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 doplnenie „midnight dreary, while I pondered, weak and weary.“
Všimnite si, že slovo „time“ sa v texte vôbec nenachádza, pretože sme tento token účinne zakázali pomocou logit_bias.
Príklad 2: Usmernenie pomocou cielených hodnôt logit bias
Pozrime sa na ďalší príklad s príkazom pre generátor receptov.
V mnohých receptoch sa odporúča použiť hrniec, ale predpokladajme, že žiadny nemáme. Budeme chcieť zabrániť tomu, aby sa v rámci nášho doplnenia vygenerovalo slovo „pot“. Slovo „Pot“ sa tokenizuje na ID 1787, takže ho môžeme z generovania vylúčiť nastavením hodnoty logit_bias, ako je uvedené nižšie.
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ť výskytu určitého slova.
Možno napríklad prevádzkujeme web s receptami na jedlá, ktoré možno pripraviť v mikrovlnnej rúre, a preto chceme mať istotu, že sa v recepte objaví slovo „microwave“. Slovo Microwave sa tokenizuje na ID 27000. Pravdepodobnosť výskytu tohto tokenu môžeme zvýšiť nastavením kladnej hodnoty logit_bias takto:
logit_bias={27000:5}Teraz je pravdepodobnejšie, že naše doplnenie bude obsahovať slovo „microwave“.
Hodnotu logit_bias sme nastavili na 5, pretože sme zistili, že pri nastavení logit_bias na 1 sa slovo „microwave“ v doplnení často neobjavilo, zatiaľ čo pri vyšších hodnotách logit_bias, napríklad 10, sa slovo „ microwave“ objavovalo v doplnení až príliš často.
