Logit_bias é um parâmetro opcional que modifica a probabilidade de tokens especificados aparecerem numa saída gerada por um modelo.
Este parâmetro aceita um objeto JSON que mapeia tokens para um valor de viés associado, de -100 (que, na maioria dos casos, impede esse token de ser gerado) a 100 (seleção exclusiva do token, o que torna mais provável que seja gerado). Valores moderados, como -1 e 1, alteram em menor grau a probabilidade de um token ser selecionado.
Como o parâmetro recebe tokens, e não texto, deve usar uma ferramenta de tokenização para converter texto em IDs de token. Vejamos alguns exemplos.
Exemplo 1: Remover «time»
Se chamarmos o endpoint Completions com o prompt «Once upon a», é muito provável que a conclusão comece com « time.»
A palavra «time» é tokenizada para o ID 2435 e a palavra « time» (que tem um espaço no início) é tokenizada para o ID 640. Podemos passá-las pelo logit_bias com -100 para impedir que apareçam na conclusão, assim:
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}
)Agora, o prompt «Once upon a» gera a conclusão «midnight dreary, while I pondered, weak and weary.»
Repare que a palavra «time» não aparece em lado nenhum, porque bloqueámos efetivamente esse token usando logit_bias.
Exemplo 2: Dar orientação com valores de viés de logit direcionados
Vejamos outro exemplo, usando um prompt de gerador de receitas.
Muitas receitas sugerem usar tachos, mas suponhamos que não temos um tacho. Vamos querer remover a palavra «pot» da geração como parte da nossa conclusão. «Pot» é tokenizado para 1787, pelo que podemos removê-la da nossa geração definindo o nosso logit_bias como abaixo.
logit_bias={1787:-100}Agora, a nossa conclusão pode incluir a palavra «saucepan» em vez disso. Perfeito!
Exemplo 3: Aumentar a probabilidade de uma palavra aparecer
Suponhamos que queremos aumentar a probabilidade de uma palavra aparecer.
Por exemplo, talvez tenhamos um site que oferece receitas que pode fazer com um micro-ondas, por isso queremos garantir que a palavra «microwave» aparece na receita. Microwave é tokenizado para o ID 27000. Podemos aumentar a probabilidade de este token aparecer definindo um logit_bias positivo, assim:
logit_bias={27000:5}Agora, é mais provável que a nossa conclusão inclua a palavra «microwave».
Definimos o logit_bias como 5, pois verificámos que definir o logit_bias como 1 muitas vezes não fazia com que a palavra «microwave» aparecesse na conclusão, enquanto valores de logit_bias mais elevados, como 10, faziam com que a palavra « microwave» aparecesse com demasiada frequência na conclusão.
