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: 9 days ago

Logit_bias es un parámetro opcional que modifica la probabilidad de que determinados tokens 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 (lo 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 medida la probabilidad de que se seleccione un token.

Como el parámetro recibe tokens, no texto, te conviene 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 el completado empiece por « 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 pasar estos tokens 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": "Completas las frases del usuario."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

Ahora, el prompt «Érase una» genera el texto «medianoche lúgubre, mientras reflexionaba, débil y cansado.».

Como puede verse, la palabra inglesa «time» no aparece porque, mediante logit_bias, hemos bloqueado ese token.

Ejemplo 2: orientar el resultado con valores específicos de sesgo de logits

Veamos otro ejemplo con un prompt para generar recetas.

Muchas recetas sugieren utilizar ollas, pero supongamos que no tenemos ninguna. Querremos evitar que la palabra inglesa «pot» aparezca en el texto generado. «Pot» se tokeniza con el ID 1787, por lo que podemos excluirlo del texto generado configurando logit_bias como se indica a continuación.

logit_bias={1787:-100}

Ahora, nuestro completado podría incluir en su lugar la palabra «saucepan». ¡Perfecto!

Ejemplo 3: aumentar la probabilidad de que aparezca una palabra

Supongamos que queremos aumentar la probabilidad de que aparezca una palabra.

Por ejemplo, quizá gestionemos un sitio web que ofrece recetas para preparar en el microondas y queramos asegurarnos de que la palabra inglesa «microwave» aparezca en ellas. Microwave se tokeniza con el ID 27 000. Podemos aumentar la probabilidad de que aparezca este token asignando un valor positivo a logit_bias, como se muestra a continuación:

logit_bias={27000:5}

Ahora es más probable que el texto generado incluya la palabra «microwave».

Definimos logit_bias en 5 porque comprobamos que un valor de 1 a menudo no conseguía que la palabra «microwave» apareciese en el texto generado, mientras que valores más altos, como 10, hacían que la palabra « microwave» apareciese con demasiada frecuencia.

¿Te ha resultado útil este artículo?