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

Usar 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

Última actualización: 2 days ago

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 “Érase una vez” genera la finalización “una triste medianoche, mientras reflexionaba, débil y cansado”.

Observa que la palabra “tiempo” no aparece por ningún lado, porque en la práctica hemos bloqueado ese token mediante logit_bias.

Ejemplo 2: orientar la generación con valores específicos de sesgo de logits

Veamos otro ejemplo con un prompt para generar recetas.

Muchas recetas sugieren usar ollas, pero supongamos que no tenemos ninguna. Queremos evitar que se genere la palabra olla como parte de nuestra finalización. “Olla” se tokeniza como 1787, por lo que podemos excluirla de la 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 la probabilidad de que aparezca una palabra

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

Por ejemplo, quizá administramos un sitio que ofrece recetas para preparar en microondas, por lo que queremos asegurarnos de que la palabra “microondas” aparezca en la receta. Microondas se tokeniza con el ID 27 000. Podemos aumentar la probabilidad de que aparezca este token asignando un valor positivo a logit_bias, así:

logit_bias={27000:5}

Ahora es más probable que nuestra finalización incluya la palabra “microondas”.

Establecimos logit_bias en 5, porque observamos que un valor de 1 a menudo no hacía que la palabra “microondas” apareciera en la finalización, mientras que valores más altos, como 10, hacían que “ microondas” apareciera con demasiada frecuencia.

¿Este artículo te fue útil?