Logit_bias je volitelný parametr, který upravuje pravděpodobnost výskytu zadaných tokenů ve výstupu generovaném modelem.
Tento parametr přijímá objekt JSON, který mapuje tokeny na přidruženou hodnotu bias od -100 (což ve většině případů zablokuje vygenerování daného tokenu) do 100 (výhradní výběr tokenu, takže je pravděpodobnější, že bude vygenerován). Střední hodnoty jako -1 a 1 změní pravděpodobnost výběru tokenu v menší míře.
Protože parametr pracuje s tokeny, ne s textem, budete chtít použít nástroj tokenizer k převodu textu na ID tokenů. Pojďme si projít několik příkladů.
Příklad 1: Odebrání „time“
Pokud zavoláme koncový bod Completions s promptem „Once upon a,“ je velmi pravděpodobné, že doplnění začne textem „ time.“
Slovo „time“ se tokenizuje na ID 2435 a slovo „ time“ (které má na začátku mezeru) se tokenizuje na ID 640. Můžeme je předat přes logit_bias s hodnotou -100, abychom zakázali jejich výskyt v doplnění, takto:
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Dokončujete věty uživatele."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)Nyní prompt „Once upon a“ vygeneruje doplnění „midnight dreary, while I pondered, weak and weary.“
Všimněte si, že slovo „time“ se nikde neobjevuje, protože jsme tento token efektivně zakázali pomocí logit_bias.
Příklad 2: Určení směru pomocí cílených hodnot logit bias
Projděme si další příklad s promptem pro generátor receptů.
Mnoho receptů doporučuje používat hrnce, ale předpokládejme, že hrnec nemáme. Budeme chtít odstranit slovo pot z generování jako součást našeho doplnění. „Pot“ se tokenizuje na 1787, takže ho můžeme z generování odstranit nastavením logit_bias níže.
logit_bias={1787:-100}Nyní může naše doplnění místo toho obsahovat slovo „saucepan“. Perfektní!
Příklad 3: Zvýšení pravděpodobnosti výskytu slova
Předpokládejme, že chceme zvýšit pravděpodobnost výskytu určitého slova.
Například možná provozujeme web, který nabízí recepty, jež lze připravit v mikrovlnné troubě, takže chceme mít jistotu, že se v receptu objeví slovo „microwave“. Microwave se tokenizuje na ID 27000. Pravděpodobnost výskytu tohoto tokenu můžeme zvýšit nastavením kladného logit_bias, takto:
logit_bias={27000:5}Nyní je pravděpodobnější, že naše doplnění bude obsahovat slovo „microwave“.
Nastavili jsme logit_bias na 5, protože jsme zjistili, že nastavení logit_bias na 1 často nevedlo k tomu, aby se slovo „microwave“ v doplnění objevilo, zatímco vyšší hodnoty logit_bias, jako 10, vedly k tomu, že se slovo „ microwave“ v doplnění objevovalo příliš často.
