Logit_bias je volitelný parametr, který upravuje pravděpodobnost, že se zadané tokeny objeví ve výstupu vygenerovaném modelem.
Tento parametr přijímá objekt JSON, který mapuje tokeny na přidruženou hodnotu biasu od -100 (což ve většině případů zabrání vygenerování daného tokenu) až po 100 (výhradní výběr tokenu, díky němuž je pravděpodobnější, že bude vygenerován). Střední hodnoty, například -1 a 1, změní pravděpodobnost výběru tokenu v menší míře.
Protože parametr přijímá tokeny, ne text, použijte nástroj pro tokenizaci k převodu textu na ID tokenů. Pojďme si projít několik příkladů.
Příklad 1: Odstranění „time“
Když zavoláme koncový bod Completions s promptem „Once upon a,“ doplnění velmi pravděpodobně začne řetězcem „ 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}
)Prompt „Once upon a“ nyní vygeneruje doplnění „midnight dreary, while I pondered, weak and weary.“
Všimněte si, že slovo „time“ se v něm vůbec nevyskytuje, protože jsme tento token pomocí logit_bias fakticky zakázali.
Příklad 2: Směrování výstupu pomocí cílených hodnot logit bias
Projděme si další příklad, tentokrát s promptem pro generátor receptů.
Mnoho receptů doporučuje použít hrnec, ale předpokládejme, že žádný nemáme. Budeme chtít zabránit tomu, aby se v generovaném doplnění objevilo slovo „pot“. Slovo „Pot“ se převede na token s ID 1787, takže ho můžeme z generovaného výstupu odstranit nastavením hodnoty logit_bias podle následujícího příkladu.
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.
Představme si například, že provozujeme web s recepty na jídla připravovaná v mikrovlnné troubě, a proto chceme mít jistotu, že se v receptu objeví slovo „microwave“. Slovo „Microwave“ se převede na token s ID 27000. Pravděpodobnost výskytu tohoto tokenu můžeme zvýšit nastavením kladné hodnoty logit_bias následovně:
logit_bias={27000:5}Naše doplnění nyní bude s větší pravděpodobností obsahovat slovo „microwave“.
Hodnotu logit_bias jsme nastavili na 5. Zjistili jsme totiž, že při hodnotě logit_bias 1 se slovo „microwave“ v doplnění často neobjevilo, zatímco při vyšších hodnotách logit_bias, například 10, se slovo „ microwave“ objevovalo příliš často.
