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