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

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

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

Dernière mise à jour : 27 days ago

Logit_bias est un paramètre facultatif qui modifie la probabilité que des tokens spécifiés 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 modifieront dans une moindre mesure la probabilité qu’un token soit sélectionné.

Comme le paramètre prend des tokens, et non du texte, vous devrez utiliser un outil de tokenisation pour convertir le texte en ID de tokens. Passons en revue quelques exemples.

Exemple 1 : supprimer « time »

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

Le mot « time » se tokenise en l’ID 2435 et le mot « time » précédé d’un espace se tokenise en l’ID 640. Nous pouvons les transmettre via logit_bias avec -100 pour les empêcher d’apparaître dans la complétion, comme ceci :

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}
)

À présent, le prompt « Il était une » génère la complétion « minuit lugubre, tandis que je méditais, faible et las ».

Notez que le mot « fois » 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 des logits

Examinons un autre exemple utilisant un prompt de génération de recettes.

De nombreuses recettes suggèrent d’utiliser des casseroles, mais supposons que nous n’en ayons pas. Nous voulons empêcher que le mot « casserole » soit généré dans notre complétion. « Casserole » est tokenisé avec l’ID 1787 ; nous pouvons donc l’exclure de notre génération en définissant logit_bias comme ci-dessous.

logit_bias={1787:-100}

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

Exemple 3 : augmenter les chances qu’un mot apparaisse

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

Par exemple, imaginons que nous gérions un site proposant des recettes à préparer au micro-ondes : nous voulons donc nous assurer que le mot « micro-ondes » figure dans la recette. « Micro-ondes » est tokenisé avec l’ID 27000. Nous pouvons augmenter la probabilité d’apparition de ce token en définissant une valeur positive pour logit_bias, comme suit :

logit_bias={27000:5}

À présent, notre complétion est plus susceptible d’inclure le mot « micro-ondes ».

Nous avons défini logit_bias sur 5, car nous avons constaté qu’une valeur de 1 ne faisait souvent pas apparaître le mot « micro-ondes » dans la complétion, tandis que des valeurs de logit_bias plus élevées, comme 10, faisaient apparaître le mot « micro-ondes » trop souvent dans la complétion.

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