OpenAI
Tato stránka byla přeložena strojově. Zobrazit původní článek v angličtině.

Použití logit bias ke změně pravděpodobnosti tokenu pomocí OpenAI API

Naučte se používat parametr logit bias k úpravě výstupů modelu

Aktualizováno: 15 hours ago

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.

Byl tento článek užitečný?