Logit_bias é um parâmetro opcional que modifica a probabilidade de tokens específicos aparecerem em uma saída gerada pelo modelo.
Esse parâmetro aceita um objeto JSON que mapeia tokens para um valor de viés associado, de -100 (o que, na maioria dos casos, impedirá que esse token seja gerado) a 100 (seleção exclusiva do token, tornando-o mais provável de ser gerado). Valores moderados como -1 e 1 alterarão a probabilidade de um token ser selecionado em menor grau.
Como o parâmetro recebe tokens, e não texto, você vai querer usar uma ferramenta de tokenização para converter texto em IDs de token. Vamos ver alguns exemplos.
Exemplo 1: Remover 'time'
Se chamarmos o endpoint de Completions com o prompt “Once upon a,”, é bem provável que a completion 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 passar esses valores pelo logit_bias com -100 para impedir que eles apareçam na completion, assim:
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Você termina as frases do usuário."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)Agora, o prompt “Once upon a” gera a completion “midnight dreary, while I pondered, weak and weary.”
Repare que a palavra “time” não aparece em lugar nenhum, porque efetivamente banimos esse token usando logit_bias.
Exemplo 2: Direcionar com valores de logit bias específicos
Vamos passar por outro exemplo, usando um prompt de gerador de receitas.
Muitas receitas sugerem usar panelas, mas suponha que não temos uma panela. Vamos querer impedir que a palavra pot seja gerada como parte da nossa completion. 'Pot' é tokenizada para 1787, então podemos removê-la da geração definindo nosso logit_bias como abaixo.
logit_bias={1787:-100}Agora, nossa completion pode incluir a palavra “saucepan” em vez disso. Perfeito!
Exemplo 3: Aumentar as chances de uma palavra aparecer
Suponha que queremos aumentar a probabilidade de uma palavra aparecer.
Por exemplo, talvez a gente administre um site que oferece receitas que você pode fazer no micro-ondas, então queremos garantir que a palavra “microwave” apareça na receita. Microwave é tokenizada para o ID 27000. Podemos aumentar a probabilidade de esse token aparecer definindo um logit_bias positivo, assim:
logit_bias={27000:5}Agora, nossa completion tem mais chances de incluir a palavra 'microwave'.
Definimos o logit_bias como 5, pois percebemos que definir logit_bias como 1 muitas vezes não fazia com que a palavra “microwave” aparecesse na completion, enquanto valores mais altos de logit_bias, como 10, faziam com que a palavra “ microwave” aparecesse na completion com frequência demais.
