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, na prática, excluímos esse token através de logit_bias.
Exemplo 2: orientar a geração com valores específicos de logit bias
Vejamos outro exemplo, utilizando um prompt de geração de receitas.
Muitas receitas sugerem a utilização de panelas, mas suponhamos que não temos nenhuma. Queremos impedir que a palavra «pot» seja gerada como parte da nossa conclusão. «Pot» é convertido no token 1787, pelo que podemos excluí-lo da geração definindo logit_bias conforme indicado 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 disponibiliza receitas que podem ser preparadas no micro-ondas e, por isso, queremos garantir que a palavra «microwave» aparece na receita. «Microwave» é convertido no token com o ID 27000. Podemos aumentar a probabilidade de este token aparecer definindo um logit_bias positivo, da seguinte forma:
logit_bias={27000:5}Agora, é mais provável que a nossa conclusão inclua a palavra «microwave».
Definimos logit_bias como 5, pois verificámos que, ao definir logit_bias como 1, a palavra «microwave» muitas vezes não aparecia na conclusão, enquanto valores de logit_bias mais elevados, como 10, faziam com que a palavra « microwave» aparecesse demasiadas vezes.
