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 modifient la probabilité qu’un token soit sélectionné dans une moindre mesure.
Puisque le paramètre prend des tokens (et non du texte), vous devrez utiliser un outil de tokenisation pour convertir le texte en IDs de tokens. Passons en revue quelques exemples.
Exemple 1 : Supprimer 'time'
Si nous appelons le point de terminaison Completions avec le prompt « Once upon a, », la complétion commencera très probablement par « time ».
Le mot « time » est tokenisé avec l’ID 2435 et le mot « time » (avec un espace au début) est tokenisé avec l’ID 640. Nous pouvons les passer via logit_bias avec -100 pour leur interdire 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, le prompt « Once upon a » génère la complétion « midnight dreary, while I pondered, weak and weary. »
Notez que le mot « time » n’apparaît nulle part, car nous avons effectivement banni ce token en utilisant logit_bias.
Exemple 2 : Orienter le résultat avec des valeurs de logit bias ciblées
Voyons un autre exemple, avec 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 le mot pot d’être généré dans notre complétion. 'Pot' est tokenisé en 1787, donc nous pouvons l’exclure de la génération en définissant logit_bias comme ci-dessous.
logit_bias={1787:-100}Maintenant, notre complétion pourrait inclure le mot « saucepan » à la place. Parfait !
Exemple 3 : Augmenter les chances qu’un mot apparaisse
Supposons que nous voulions augmenter la probabilité qu’un mot apparaisse.
Par exemple, peut-être gérons-nous un site qui propose des recettes réalisables au micro-ondes, et nous voulons donc nous assurer que le mot « microwave » apparaît dans la recette. Microwave est tokenisé avec l’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 a plus de chances d’inclure le mot 'microwave'.
Nous avons défini logit_bias sur 5, car nous avons constaté que définir logit_bias sur 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, entraînaient l’apparition trop fréquente du mot « microwave » dans la complétion.
