OpenAI
Esta página se tradujo automáticamente. Ver el artículo original en inglés.

Uso de logit bias para alterar la probabilidad de tokens con la API de OpenAI

Aprende a usar el parámetro logit bias para modificar las salidas del modelo

Actualización: 5 days ago

Logit_bias es un parámetro opcional que modifica la probabilidad de que tokens especificados aparezcan en una salida generada por un 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 impedirá que ese token se genere) a 100 (selección exclusiva del token, lo que hace más probable que se genere). Valores moderados como -1 y 1 cambiarán la probabilidad de que se seleccione un token en menor medida.

Dado que el parámetro recibe tokens, no texto, te convendrá usar una herramienta de tokenización para convertir texto en ID 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 la finalización empiece con « time.».

La palabra «time» se tokeniza con el ID 2435 y la palabra « time» (que tiene un espacio al principio) se tokeniza con el ID 640. Podemos pasarlas a través de logit_bias con -100 para impedir que aparezcan en la finalización, así:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Completas las frases del usuario."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

Ahora, el prompt «Once upon a» genera la finalización «midnight dreary, while I pondered, weak and weary.»

Observa que la palabra «time» no aparece por ninguna parte, porque hemos prohibido eficazmente ese token usando logit_bias.

Ejemplo 2: Dar dirección con valores de logit bias específicos

Veamos otro ejemplo, usando un prompt generador de recetas.

Muchas recetas sugieren usar ollas, pero supongamos que no tenemos una olla. Querremos evitar que la palabra pot se genere como parte de nuestra finalización. «Pot» se tokeniza como 1787, así que podemos eliminarla de nuestra generación configurando logit_bias como se muestra abajo.

logit_bias={1787:-100}

Ahora, nuestra finalización 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á gestionamos un sitio que ofrece recetas que puedes hacer con un microondas, así que queremos asegurarnos de que la palabra «microwave» aparezca en la receta. Microwave se tokeniza con el ID 27000. Podemos aumentar la probabilidad de que este token aparezca estableciendo un logit_bias positivo, así:

logit_bias={27000:5}

Ahora, es más probable que nuestra finalización incluya la palabra «microwave».

Establecimos logit_bias en 5, ya que vimos que establecer logit_bias en 1 a menudo no hacía que la palabra «microwave» apareciera en la finalización, mientras que valores más altos de logit_bias, como 10, hacían que la palabra « microwave» apareciera en la finalización con demasiada frecuencia.

¿Te ha resultado útil este artículo?