Logit_bias es un parámetro opcional que modifica la probabilidad de que tokens específicos aparezcan en una salida generada por el modelo.
Este parámetro acepta un objeto JSON que asigna tokens a un valor de sesgo asociado de -100 (que en la mayoría de los casos bloqueará la generación de ese token) a 100 (selección exclusiva del token, lo que hace más probable que se genere). Los valores moderados, como -1 y 1, cambiarán en menor grado la probabilidad de que se seleccione un token.
Como el parámetro recibe tokens, no texto, conviene usar una herramienta de tokenización para convertir texto en IDs de token. Veamos algunos ejemplos.
Ejemplo 1: eliminar “time”
Si llamamos al punto de acceso Completions con el prompt “Once upon a”, es muy probable que el completado comience con “ time”.
La palabra “time” se tokeniza como el ID 2435 y la palabra “ time” (que tiene un espacio al inicio) se tokeniza como el ID 640. Podemos pasarlas por logit_bias con -100 para prohibir que aparezcan en el completado, así:
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}
)Ahora, el prompt “Once upon a” genera el completado “midnight dreary, while I pondered, weak and weary”.
Observa que la palabra “time” no aparece por ningún lado, porque efectivamente prohibimos ese token usando logit_bias.
Ejemplo 2: orientar con valores de logit bias específicos
Veamos otro ejemplo, usando un prompt de generador de recetas.
Muchas recetas sugieren usar ollas, pero supongamos que no tenemos una olla. Querremos quitar la palabra pot para que no se genere como parte de nuestro completado. “Pot” se tokeniza como 1787, así que podemos quitarla de nuestra generación configurando logit_bias como se muestra a continuación.
logit_bias={1787:-100}Ahora, nuestro completado podría incluir la palabra “saucepan” en su lugar. ¡Perfecto!
Ejemplo 3: aumentar las probabilidades de que aparezca una palabra
Supongamos que queremos aumentar la probabilidad de que aparezca una palabra.
Por ejemplo, quizás tenemos un sitio que ofrece recetas que se pueden preparar con microondas, así que queremos asegurarnos de que la palabra “microwave” aparezca en la receta. Microwave se tokeniza como el ID 27000. Podemos aumentar la probabilidad de que aparezca este token estableciendo un logit_bias positivo, así:
logit_bias={27000:5}Ahora, es más probable que nuestro completado incluya la palabra “microwave”.
Establecimos logit_bias en 5, ya que descubrimos que establecer logit_bias en 1 a menudo no hacía que la palabra “microwave” apareciera en el completado, mientras que valores más altos de logit_bias, como 10, hacían que la palabra “ microwave” apareciera en el completado con demasiada frecuencia.
