Conteúdo da trilha
8 minNarração em inglês, legenda em portuguêsPodcast (RSS)
Capítulos
  1. 0:00Abertura
  2. 0:44A ideia
  3. 1:03Como funciona
  4. 2:03Os botões
  5. 3:08Zero não é contrato
  6. 3:39Um desafio
  7. 4:28Para onde os modelos vão
  8. 5:20Experimente
  9. 6:14Em produção
  10. 7:16Fechamento
Transcrição

Abertura

Mesmo mês, mesma empresa, duas reclamações. O time de marketing pediu ao modelo dez títulos de campanha e recebeu dez títulos quase iguais.

Enquanto isso, o time de dados extraía o CNPJ das notas fiscais. E a cada execução, o campo voltava num formato diferente.

Os dois times pediram a mesma coisa ao engenheiro: mexe na temperatura. Um queria mais variação. O outro queria menos.

Para saber se a temperatura é mesmo o botão certo, você precisa entender de onde vem a variação. É esta aula. E você vai ver por que, para um desses dois times, a resposta é outra ferramenta.

A ideia

A cada passo, o modelo calcula uma probabilidade para cada próximo token possível. Amostragem é a regra que escolhe um token a partir dessas probabilidades.

Imagine um dado viciado. A palavra mais provável tem a face maior. Mas as outras faces continuam lá, e às vezes elas saem.

Como funciona

Vamos seguir um passo. O modelo olha tudo o que já está na sequência.

Ele produz uma distribuição. Digamos, Eletrônicos com 80%, Áudio com 15%, e dezenas de outras palavras dividindo o resto.

Aí os parâmetros de amostragem remodelam essa distribuição, antes do sorteio.

Um token é sorteado da distribuição ajustada.

E o token escolhido entra na sequência. Toda escolha seguinte depende dele.

Esse último passo pesa mais do que parece. Como cada token depende dos anteriores, uma escolha diferente no começo muda tudo depois. Duas respostas podem se afastar muito, mesmo quando cada passo varia só um pouco.

Foi o que o time de dados viu. O CNPJ veio com pontos e barra, depois só com dígitos, depois com um ponto final. Três caminhos, a poucos tokens de distância, e os três plausíveis.

Os botões

São três botões clássicos. A temperatura afia ou achata a distribuição. Temperatura baixa sobe o pico, e o token da frente fica ainda mais na frente. Temperatura alta achata o gráfico, e o segundo e o terceiro lugar ganham chance de verdade.

O top p não estica o gráfico. Ele corta a cauda e sorteia só entre os tokens mais prováveis que somam uma certa probabilidade.

E o top k fica só com um número fixo dos tokens mais prováveis.

Um conselho. Mexer em mais de um ao mesmo tempo deixa o efeito impossível de ler. Se for usar esses botões, escolha um. Só a temperatura basta para um experimento.

De volta ao exemplo da categoria. Perto de temperatura zero, Eletrônicos sai quase sempre. Com temperatura alta, aparece Áudio, e até Informática. Mas repare no que nenhum desses sorteios faz. Nenhum transforma um CNPJ com pontuação em quatorze dígitos limpos. O formato não mora nesse botão.

Zero não é contrato

Temperatura baixa reduz a variação. Ela não transforma o modelo numa função determinística.

Detalhes de como o provedor roda o modelo ainda podem mudar a saída.

Uma mudança mínima no prompt muda tudo o que vem depois.

E alguns provedores oferecem um parâmetro de seed, para tentar repetir o sorteio. Mesmo quando existe, a documentação costuma dizer que é melhor esforço. Então não monte um teste que depende de duas chamadas idênticas.

Um desafio

Uma pergunta para você. O extrator de CNPJ devolve pontos e barra numa execução, e só dígitos na outra. O time de dados quer temperatura zero. O que resolve o formato de verdade?

Um schema que pede uma string de quatorze dígitos, e validação no código antes de gravar o valor. Com temperatura zero, as três grafias continuam plausíveis, então nada no sorteio obriga os quatorze dígitos.

E escrever use sempre o mesmo formato, por favor, em maiúsculas, ajuda um pouco e não garante nada. O modelo ainda pode errar. É o seu código que se recusa a deixar o valor errado entrar. Esse é o trabalho da saída estruturada, não da temperatura.

Para onde os modelos vão

Isso diz muito. Os modelos mais novos de vários provedores estão tirando esses botões. Nos modelos atuais da Anthropic, como o Claude Opus e o Sonnet 5.5, a API recusa qualquer temperatura diferente do padrão. Modelos mais antigos, como o Haiku 4.5, ainda aceitam.

O controle foi para outro lugar: o formato de saída, o esforço de raciocínio e o próprio prompt. E isso ensina algo útil. Mexer na amostragem nunca foi o jeito certo de garantir formato ou acerto. Os provedores só estão deixando isso explícito.

Então, se você migrar o extrator para um desses modelos e o time de dados entrar em pânico, a resposta é tranquila. Nada muda no contrato. O schema, a validação e o eval sempre foram o controle.

Experimente

Agora, o lado do marketing. Na página tem um experimento, com um modelo que ainda aceita temperatura. Você gera cinco títulos com temperatura baixa e cinco com temperatura alta.

Compare a variedade entre os dois blocos. Depois, tente outro caminho.

Peça, numa única chamada, dez títulos diferentes entre si, com tons diferentes, para públicos diferentes. Variedade pedida no prompt costuma vencer variedade sorteada.

E aqui está a armadilha desse lado. Temperatura alta espalha os títulos, e espalha a qualidade junto. Um é certeiro, o seguinte é um slogan vazio. Leve ao extremo e você troca parecido por inútil. Dez opções numa chamada deixam você escolher com o seu critério, em vez de torcer para o sorteio acertar o tom.

Em produção

Então, o que muda? Para extração, classificação e qualquer saída que o seu código lê, use saída estruturada mais validação. Não se apoie na temperatura.

Para criatividade, peça variedade explicitamente e gere várias opções numa chamada.

Para decisões importantes, pense onde a variação machuca. Um parecer de crédito com temperatura alta quer dizer que dois clientes parecidos podem receber respostas diferentes, sem motivo de negócio. Ali você quer menos variação, não mais. E rodar a mesma tarefa várias vezes e comparar é um padrão próprio, chamado voting.

E a variação está sempre lá. Se você roda o mesmo caso de teste três vezes e passa três, depois dois, depois três, isso é normal. O número que importa é a taxa em muitas execuções. Por isso todo sistema com modelo precisa de evals, e não de um teste que roda uma vez.

Fechamento

Então, de volta aos dois times. O marketing não precisava de um dado mais quente. Precisava pedir variedade. E o time de dados não precisava de um mais frio. Precisava de um schema e de uma checagem no código. A temperatura muda a largura do sorteio. Ela nunca garante o que sai.

Na próxima aula, vamos olhar o próprio prompt e tratá-lo como ele realmente é: uma interface, com contrato, versões e testes. Até lá.

Fundamento

Amostragem e temperatura

Sampling and temperature

Amostragem e temperatura (Sampling and temperature) é um fundamento de engenharia de IA para quem trabalha com LLMs. De onde vem a variação nas respostas e quando você quer mais ou menos dela.

Elemento
04/13
Nível
Iniciante
Leitura
4 min
Atualizado
Nesta página 5
  1. 01A situação
  2. 02O conceito
  3. 03Experimente
  4. 04O que isso muda
  5. 05Teste seu entendimento
  6. ··Perguntas rápidas

A situação

Um time de marketing pediu ao modelo dez sugestões de título para uma campanha e recebeu dez títulos quase iguais. No mesmo mês, o time de dados reclamou que a extração de CNPJ das notas devolvia o campo com formatos diferentes a cada execução. Os dois times pediram a mesma coisa ao engenheiro: “mexe na temperatura”.

Um queria mais variação. O outro queria menos. Para saber se a temperatura é o botão certo, você precisa entender de onde a variação vem.

O conceito

A cada passo, o modelo calcula uma probabilidade para cada token possível. Amostragem é a regra que escolhe um token a partir dessas probabilidades.

flowchart LR
  IN(["1. Contexto até aqui"]):::io --> P(["2. Probabilidades do próximo token"]):::llm
  P --> A["3. Ajuste: temperatura, top_p"]:::tool
  A --> S["4. Sorteio"]:::tool
  S --> OUT(["5. Token escolhido"]):::io
  1. O modelo olha tudo que já está na sequência.
  2. Ele produz uma distribuição: “Eletrônicos” com 80%, “Áudio” com 15%, outras opções com o resto.
  3. Parâmetros de amostragem deformam essa distribuição antes do sorteio.
  4. Um token é sorteado da distribuição ajustada.
  5. O token escolhido entra na sequência, e as escolhas seguintes dependem dele.

Repare no passo 5: como cada token depende dos anteriores, uma escolha diferente no começo muda tudo que vem depois. Duas respostas podem divergir muito mesmo com variação pequena em cada passo. Foi o que o time de dados viu: 12.345.678/0001-90, 12345678000190 e 12.345.678/0001-90. são três caminhos a poucos tokens de distância.

Os botões clássicos

Parâmetro O que faz Valor baixo Valor alto
temperature Achata ou estica a distribuição Quase sempre o token mais provável Tokens menos prováveis ganham chance
top_p Corta a cauda: só sorteia entre os tokens que somam p de probabilidade Poucas opções Muitas opções
top_k Só sorteia entre os k tokens mais prováveis Poucas opções Muitas opções

Temperatura baixa deixa o pico mais alto: o token líder fica ainda mais líder. Temperatura alta achata o gráfico: o segundo e o terceiro lugar ganham chance. top_p e top_k não esticam o gráfico; eles jogam fora a cauda e sorteiam só no que restou.

Mexer nos dois ao mesmo tempo deixa o efeito ilegível. Se você ainda usa esses botões, escolha um. Na prática, temperatura sozinha já basta para o experimento; o formato da saída resolve o resto.

Um exemplo concreto, ainda ilustrativo. No passo da categoria, o modelo atribui 0,80 a Eletrônicos, 0,15 a Áudio e o resto a dezenas de outras palavras. Com temperatura perto de zero, Eletrônicos sai quase sempre. Com temperatura alta, Áudio e até Informática aparecem. Nenhuma dessas escolhas produz 12.345.678/0001-90 no lugar de 14 dígitos: formato não mora nesse botão.

Temperatura zero não é contrato

Temperatura baixa reduz a variação, mas não transforma o modelo numa função determinística. Detalhes de execução no servidor ainda podem mudar a saída, e uma mudança mínima no prompt muda tudo. Se o seu código precisa de formato fixo, a resposta é Saída Estruturada, não temperatura.

O CNPJ do time de dados é o exemplo clássico. Temperatura zero ainda pode devolver ponto, barra ou só dígitos, porque as três formas são plausíveis. O schema pede uma string de 14 dígitos. A validação no código rejeita o resto. Temperatura não faz esse trabalho.

Alguns provedores oferecem um parâmetro de semente (seed) para tentar repetir a amostragem. Mesmo quando existe, a documentação costuma tratar como melhor esforço, não como garantia. Não construa um teste que depende de duas chamadas idênticas.

Checagem +20 XP de primeiraA extração de CNPJ devolve 12.345.678/0001-90 numa execução e 12345678000190 na seguinte. O time quer temperatura zero. O que resolve o formato de verdade?

O rumo dos modelos novos

Os modelos mais recentes de vários provedores estão tirando esses botões. Nos modelos atuais da Anthropic, como Claude Opus 5.5 e Claude Sonnet 5.5, a API rejeita temperature, top_p e top_k com valores fora do padrão. Modelos anteriores, como Claude Haiku 4.5, ainda aceitam. O controle passou para outros lugares: o formato da saída, o esforço de raciocínio e o próprio prompt.

Isso diz algo útil: ajustar amostragem nunca foi o jeito certo de garantir formato ou correção. Os provedores estão só tornando isso explícito.

Experimente

Este experimento usa um modelo que ainda aceita temperature. Gere cinco títulos com temperatura baixa e cinco com temperatura alta.

import anthropic

client = anthropic.Anthropic()

for temperature in (0.0, 1.0):
    print(f"--- temperature={temperature}")
    for _ in range(5):
        reply = client.messages.create(
            model="claude-haiku-4-5",
            max_tokens=60,
            temperature=temperature,
            messages=[{"role": "user", "content": "Um título curto para uma promoção de fones de ouvido."}],
        )
        print(next(b.text for b in reply.content if b.type == "text"))

Compare a variedade entre os dois blocos. Depois tente outro caminho para o time de marketing: peça “dez títulos diferentes entre si, em tons diferentes” numa chamada só. Diversidade pedida no prompt costuma funcionar melhor que diversidade sorteada.

A armadilha aqui é a inversa da extração. Temperatura alta espalha os títulos, e também espalha qualidade: um vira genial, o outro vira slogan vazio. Pedir dez opções numa chamada deixa você escolher com um critério seu (eval, regra, humano), em vez de torcer para o sorteio acertar o tom.

Checagem +20 XP de primeiraO time de marketing rodou o experimento e os cinco títulos a 1.0 ainda parecem primos. Qual próximo passo ataca a causa, não o sintoma?

O que isso muda

  • Para extração, classificação e qualquer saída que o código lê: Saída Estruturada e validação. Não confie em temperatura.
  • Para criatividade: peça variedade explicitamente e gere várias opções numa chamada.
  • Para confiabilidade em decisões importantes, rodar a mesma tarefa várias vezes e comparar é um padrão próprio, a Votação.
  • Variação existe sempre. Por isso todo sistema com LLM precisa de evals, e não de um teste que roda uma vez.

Teste seu entendimento

Checagem +20 XP de primeiraUm classificador de tickets precisa devolver fatura, pedido ou outro. Alguém sugere temperatura 0 e um parser que procura a palavra no texto. Qual desenho segura o código?

Checagem +20 XP de primeiraVocê migra o extrator de CNPJ para um modelo que rejeita temperature diferente do padrão. O time de dados entra em pânico. O que você diz?

Checagem +20 XP de primeiraUma decisão de crédito usa o modelo para um parecer. O time quer temperatura alta 'para o modelo explorar mais hipóteses'. Qual é o risco mais direto?

Checagem +20 XP de primeiraVocê rodou o mesmo caso de eval três vezes e teve 3, 2 e 3 acertos em 3. Qual leitura é a mais honesta?

Perguntas rápidas

O que é Amostragem e temperatura?

Amostragem e temperatura (Sampling and temperature) é um fundamento de engenharia de IA para quem trabalha com LLMs. De onde vem a variação nas respostas e quando você quer mais ou menos dela.

Para ir além

Relações

Buscar