Capítulo 07 · Geração · 7 min

Escolher a próxima palavra

Temperature, top-k, top-p. A arte de transformar uma distribuição de probabilidade em texto.

Gerar nao e escolher sempre o maximo

Um modelo treinado produz uma distribuicao de probabilidade. Mas uma distribuicao nao e uma frase. E preciso transforma-la em um token.

A opcao mais simples seria pegar sempre o token mais provavel. Funciona para tarefas fechadas, mas produz texto rigido, repetitivo, as vezes travado. Para escrever, explicar ou explorar, precisamos de alguma variacao.

Brinque com a temperature: em 0, o modelo é determinístico e repetitivo; em 1.5, fica criativo até virar incoerente. Top-k e top-p cortam a cauda dos candidatos improváveis sem mexer nos prováveis.

Temperatura

A temperatura controla a forma da distribuicao antes da amostragem.

  • Temperatura baixa: tokens provaveis ficam ainda mais dominantes.
  • Temperatura alta: a distribuicao se achata e deixa entrar opcoes menos provaveis.

Ela nao muda o que o modelo sabe. Muda quanto risco aceitamos na escolha.

Top-k

Top-k corta a distribuicao e mantem apenas os k tokens mais provaveis. Se k = 5, tudo fora do top 5 fica impossivel.

E simples e eficaz, mas rigido: as vezes o modelo tem duas boas opcoes; as vezes tem trinta. Top-k nao sabe disso.

Top-p

Top-p, ou nucleus sampling, mantem tokens ate atingir uma probabilidade acumulada p.

Se o modelo esta muito seguro, o nucleo pode conter um ou dois tokens. Se esta indeciso, ele se abre para incluir mais candidatos.

Top-p adapta o tamanho da lista ao nivel de incerteza do modelo.

Por que isso importa

Parametros de amostragem explicam por que duas respostas do mesmo modelo podem diferir mesmo com o mesmo prompt.

Tambem explicam por que uma configuracao ruim pode degradar um bom modelo:

  • temperatura baixa demais → texto plano, repetitivo
  • temperatura alta demais → respostas incoerentes
  • top-k pequeno demais → pouca diversidade
  • top-p alto demais → cauda rara demais

Tres outros parametros para conhecer

Alem de temperatura / top-k / top-p, alguns parametros aparecem em todo lugar nas APIs.

Repetition penalty (ou frequency penalty / presence penalty na OpenAI). Penaliza tokens que ja apareceram na saida. Util para quebrar ciclos repetitivos sem precisar aumentar a temperatura. Valor tipico: 1.05–1.2.

Stop sequences. Uma lista de strings que, se aparecerem na saida, interrompem a geracao imediatamente. Indispensavel para usos estruturados: em um dialogo formatado, voce para em <|im_end|> ou \n\nUser: para impedir que o modelo continue a conversa sozinho.

Beam search. Em vez de amostrar de forma estocastica, voce mantem em paralelo as k melhores sequencias parciais a cada passo, e escolhe a que maximiza a probabilidade global no final. O resultado e mais "suave" mas muitas vezes menos natural. Usado em traducao automatica e reconhecimento de voz, raramente em geracao criativa.

O proximo passo

Ate aqui vimos um modelo que prediz texto. Mas um assistente precisa fazer mais: seguir instrucoes, recusar certos pedidos, adotar um tom util. Isso nao aparece automaticamente no pre-treinamento.

E preciso alinha-lo.

Atualizado em

Escolher o próximo token: temperature, top-k, top-p · Step by Token