Avançado

Sampling: temperature, top-k, top-p e min-p

O decoding transforma os 248.320 logits do Qwen3.8-27B em texto; suas duas configurações recomendadas — thinking a temperature `1.0` e instruct a `0.7` — mostram como temperature, truncamento e penalidades dividem o trabalho.

Atualizada em

01 · Conceito

Conceito

O model card do Qwen3.8-27B recomenda duas configurações de sampling; não as impõe. Thinking mode usa temperature 1.0, top-p 0.95, top-k 20, min-p 0.0, presence penalty 0.0 e repetition penalty 1.0. Instruct mode usa 0.7, 0.80, 20, 0.0, 1.5 e 1.0, respectivamente. O suporte varia por framework, como o próprio card declara. Esta lição explica os controles e apresenta uma hipótese testável para as temperatures diferentes; o model card não publica a justificativa causal do fabricante.

Comece pelo que o modelo entrega ao sampler. Depois da camada final, a language-model head projeta o hidden state da última posição em um logit por entrada do vocabulário — 248.320 pontuações irrestritas. O softmax as transforma numa distribuição; decoding é a família de regras que então escolhe um token. O greedy decoding sempre pega o argmax: determinístico, barato e propenso a texto repetitivo e localmente seguro. Amostrar da distribuição intocada preserva todo token de cauda — inclusive aqueles que o próprio modelo pontuou como implausíveis.

A temperature reescala os logits antes do softmax. Para logits ziz_i e T>0T>0,

pi=exp(zi/T)jexp(zj/T).p_i = \frac{\exp(z_i/T)}{\sum_j \exp(z_j/T)}.

Veja isso funcionar em dois candidatos com logits 2.0 e 1.0. Em T=1T=1 a diferença é 1.01.0, então a probabilidade do líder é 1/(1+e1.0)=1/1.3680.7311/(1+e^{-1.0}) = 1/1.368 \approx 0.731. No T=0.7T=0.7 do preset de instruct a diferença vira 1.0/0.71.4291.0/0.7 \approx 1.429, dando 1/(1+e1.429)=1/1.2400.8071/(1+e^{-1.429}) = 1/1.240 \approx 0.807. Esfriar de 1.0 para 0.7 moveu o líder de 73 por cento para 81 por cento — uma afiação precisa da confiança, nada além disso. Abaixo de 1 afia rumo ao greedy; acima de 1 achata; exatamente 1 deixa a distribuição do modelo intocada.

O top-k mantém apenas os kk tokens de maior probabilidade e renormaliza. As duas configurações recomendadas fixam k=20k=20: todo sorteio acontece entre no máximo vinte sobreviventes de 248.320 — cerca de 0,008 por cento do vocabulário. O top-p (nucleus sampling) se adapta em vez de fixar uma contagem: mantenha o menor prefixo dos tokens ordenados cuja massa cumulativa alcança pp. Uma distribuição confiante pode cruzar p=0.95p=0.95 com dois tokens; uma achatada pode precisar de muitos, ainda limitados a 20 aqui pelo top-k. O min-p mantém tokens com piαpmaxp_i \geq \alpha\, p_{\max}, um corte relativo ao líder; o Qwen o fixa em 0.0, desativando na prática esse filtro adicional. A presence penalty recomendada difere de forma material: 0.0 para thinking e 1.5 para instruct. O card diz que ela pode reduzir repetição sem fim, mas também provocar mistura de idiomas e leve queda de desempenho. A repetition penalty permanece neutra em 1.0 nos dois modos.

Por que temperature 1.0 no thinking mode? O card não diz. Uma hipótese plausível parte da pesquisa sobre degeneração: greedy decoding pode produzir laços repetitivos, enquanto um traço mais longo pode se beneficiar de explorar alternativas que tokens posteriores conseguem revisitar. Top-k 20 e top-p 0.95 ainda cercam boa parte da cauda. A configuração instruct afia a distribuição (T=0.7T=0.7), aperta o núcleo (p=0.80p=0.80) e acrescenta presence penalty 1.5. O mecanismo é coerente, mas não é uma explicação documentada pelo fabricante e não garante autocorreção. Trate-o como hipótese: compare sucesso na tarefa, truncamento, latência e variância sob um orçamento fixo de saída antes de escolher o default de deployment.

A ordem das operações importa na prática. Um runtime pode aplicar temperature, top-k, top-p, penalidades e outros processadores em sequência antes de renormalizar, e rótulos idênticos não garantem saídas idênticas entre bibliotecas se a ordem, os casos de borda ou o RNG diferirem. Uma seed reproduz a saída apenas quando todo o caminho de execução é determinístico. Ao implantar o modelo via vLLM, SGLang ou Workers AI, fixe o preset explicitamente em vez de confiar nos defaults — e registre versão do modelo, tokenizer e a configuração completa de decoding junto de cada requisição que você possa precisar reproduzir.

A sequência mental confiável: o modelo emite 248.320 logits; a temperature os remodela; o truncamento remove candidatos; a renormalização restaura uma distribuição; um sorteio pseudoaleatório escolhe um token; o token entra no contexto; a inferência repete. Separe a pontuação do modelo da escolha do decoder, e os dois presets deixam de parecer folclore e passam a parecer duas posições deliberadas num mesmo mostrador.

02 · Analogia

Analogia

Pense num chef escolhendo o prato do dia a partir de um cardápio ranqueado. O greedy decoding sempre serve o prato mais bem avaliado, então o jantar é consistente porém repetitivo. A temperature muda o quanto as avaliações influenciam a escolha. O top-k permite apenas os k melhores pratos. O top-p mantém o menor grupo cuja popularidade somada alcança um limiar. O min-p remove qualquer prato cuja popularidade seja pequena demais em relação ao favorito. Nenhuma dessas regras melhora as receitas; elas só mudam como o chef escolhe entre as opções que o modelo já tem.

03 · Explique de volta

Explique de volta

Explique as duas configurações recomendadas de sampling do Qwen3.8-27B, incluindo todo parâmetro do model card, e separe os valores documentados da hipótese para o thinking usar temperature `1.0` enquanto o instruct usa `0.7`.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Aguardando sua explicação.

Comparar com uma resposta-modelo

O model card recomenda thinking mode com temperature `1.0`, top-p `0.95`, top-k `20`, min-p `0.0`, presence penalty `0.0` e repetition penalty `1.0`. Para instruct mode recomenda `0.7`, `0.80`, `20`, `0.0`, `1.5` e `1.0`, respectivamente. São recomendações, e o suporte varia por framework. O card não explica a causa da diferença. Uma hipótese útil de deployment é que temperature `1.0` preserve mais diversidade num traço longo enquanto top-k `20` e top-p `0.95` cercam a cauda; o caminho instruct, mais curto, afia a distribuição e usa presence penalty mais forte. Essa explicação deve ser testada, não atribuída ao fabricante.

04 · Teste seu entendimento

Teste seu entendimento

01Os logits que a temperature reescala são produzidos pelo quê?
Resposta e explicação

Pela projeção do hidden state da posição final através da language-model head sobre o vocabulário de 248.320 entradas — A pilha do transformer — camadas de attention e FFN — produz um hidden state final; a lm_head o mapeia para uma pontuação por token do vocabulário, e só então o decoding começa.

02Qual é a forma sustentada pela evidência de descrever por que o Qwen recomenda temperature `1.0` no thinking mode?
Resposta e explicação

O card documenta o valor, não sua justificativa; truncamento de cauda e diversidade de busca são uma hipótese plausível a testar — A configuração é documentada; a história causal não. Top-k e top-p restringem a cauda, mas saber se mais diversidade melhora uma carga é uma questão empírica.

Conclua o teach-back e acerte o quiz para finalizar a aula.

◎ · Marcador de evidência

Fontes

  1. Qwen Team (2026). Qwen3.8-27B Model Card.
  2. Ari Holtzman, Jan Buys, Li Du, Maxwell Forbes e Yejin Choi (2020). The Curious Case of Neural Text Degeneration.
  3. Angela Fan, Mike Lewis e Yann Dauphin (2018). Hierarchical Neural Story Generation.