OpenAI
Cette page a été traduite automatiquement. Afficher l’article original en anglais.

Utiliser le biais logit pour modifier la probabilité des tokens avec l’API OpenAI

Découvrez comment utiliser le paramètre de biais logit pour modifier les sorties du modèle

Mise à jour : 12 days ago

Logit_bias est un paramètre facultatif qui modifie la probabilité que des tokens précis apparaissent dans une sortie générée par un modèle.

Ce paramètre accepte un objet JSON qui associe des tokens à une valeur de biais comprise entre -100 (ce qui, dans la plupart des cas, empêchera ce token d’être généré) et 100 (sélection exclusive du token, ce qui le rend plus susceptible d’être généré). Des valeurs modérées comme -1 et 1 changeront la probabilité qu’un token soit sélectionné dans une moindre mesure.

Comme le paramètre reçoit des tokens, et non du texte, vous voudrez utiliser un outil de tokenisation pour convertir le texte en identifiants de tokens. Passons en revue quelques exemples.

Exemple 1 : supprimer « time »

Si nous appelons l’endpoint Completions avec l’invite « Once upon a », la complétion commencera très probablement par « time ».

Le mot « time » se tokenise en ID 2435, et le mot « time » (qui contient un espace au début) se tokenise en ID 640. Nous pouvons les passer dans logit_bias avec -100 pour les empêcher d’apparaître dans la complétion, comme suit :

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "You finish user's sentences."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

Maintenant, l’invite « Once upon a » génère la complétion « midnight dreary, while I pondered, weak and weary. »

Remarquez que le mot « time » est introuvable, car nous avons effectivement interdit ce token à l’aide de logit_bias.

Exemple 2 : orienter la génération avec des valeurs ciblées de biais de logit

Passons à un autre exemple, en utilisant une invite de générateur de recettes.

De nombreuses recettes suggèrent d’utiliser des casseroles, mais supposons que nous n’avons pas de casserole. Nous voudrons empêcher le mot « pot » d’être généré dans notre complétion. « Pot » se tokenise en ID 1787, donc nous pouvons le retirer de notre génération en définissant notre logit_bias comme ci-dessous.

logit_bias={1787:-100}

Maintenant, notre complétion pourrait plutôt inclure le mot « saucepan ». Parfait !

Exemple 3 : augmenter les chances qu’un mot apparaisse

Supposons que nous voulons augmenter la probabilité qu’un mot apparaisse.

Par exemple, nous exploitons peut-être un site qui propose des recettes que vous pouvez préparer au micro-ondes, et nous voulons donc nous assurer que le mot « microwave » apparaît dans la recette. « Microwave » se tokenise en ID 27000. Nous pouvons augmenter la probabilité que ce token apparaisse en définissant un logit_bias positif, comme suit :

logit_bias={27000:5}

Maintenant, notre complétion est plus susceptible d’inclure le mot « microwave ».

Nous avons réglé logit_bias à 5, car nous avons constaté qu’un réglage de logit_bias à 1 ne faisait souvent pas apparaître le mot « microwave » dans la complétion, tandis que des valeurs de logit_bias plus élevées, comme 10, faisaient trop souvent apparaître le mot « microwave » dans la complétion.

Cet article vous a-t-il été utile?