O que é temperature, top-p e outros parâmetros de LLM que você precisa entender

Explicação prática de temperature, top-p, frequency penalty e outros parâmetros de LLM: quando ajustar e impacto no resultado.

Quando a IA gera respostas completamente diferentes para a mesma pergunta

Fevereiro de 2024. Marina Costa, Product Manager da ContentHub (plataforma de marketing de conteúdo com 120 clientes B2B), estava confusa.

Ela havia implementado um assistente de IA para gerar rascunhos de posts para LinkedIn. Funcionava bem em testes, mas quando liberaram para clientes, os feedbacks eram contraditórios:

Metade dos clientes amou: “Textos criativos, surpreendentes, cada um diferente do anterior!”

Outra metade odiou: “Textos malucos, fora do tom da marca, parecem escritos por pessoas diferentes!”

Marina testou. Mesmo prompt, mesma descrição do produto, 5 execuções:

Execução 1 (criativo, descontraído): “Cansado de software que parece ter saído dos anos 90? Nossa plataforma é tipo aquele amigo designer que entende suas dores. Chega de planilhas que mais confundem que ajudam!”

Execução 2 (formal, corporativo): “Apresentamos solução corporativa de gestão de projetos orientada a resultados, desenvolvida com base em metodologias ágeis consolidadas e compliance com normas ISO.”

Execução 3 (equilibrado): “Gerencie projetos de forma simples e eficaz. Nossa plataforma foi desenvolvida pensando em equipes que precisam de agilidade sem abrir mão de controle.”

Execução 4 (vendedor agressivo): “PARE DE PERDER TEMPO! Chegou a solução que vai REVOLUCIONAR sua forma de trabalhar. Não é mais uma ferramenta, é A ferramenta!”

Execução 5 (técnico demais): “Sistema integrado de gestão de workflows com arquitetura distribuída, APIs REST documentadas via OpenAPI 3.0, webhooks bidirecionais e SSO via SAML 2.0.”

Cinco tons completamente diferentes. Mesmo prompt. Mesmo input.

“É como se a IA tivesse personalidade múltipla,” disse Marina frustrada.

O problema? Ela estava usando os parâmetros padrão, que eram configurados para criatividade máxima (temperature = 0.9). Perfeito para brainstorming, terrível para consistência.

Ao ajustar temperature para 0.3 e mexer em outros parâmetros, tudo mudou:

  • Consistência aumentou dramaticamente
  • Tom ficou previsível
  • Clientes pararam de reclamar de “textos malucos”

Mas ela perdeu algumas semanas e quase cancelaram 8 contas grandes por causa disso.

Este artigo explica exatamente o que cada parâmetro faz, quando ajustar, e como evitar problemas comuns que custam dinheiro e reputação.

O que são parâmetros de LLM e por que importam

Como LLMs geram texto (versão simplificada)

Quando você envia um prompt para GPT-4, Claude ou qualquer LLM, o modelo não “escreve” uma resposta como humano faria. O processo é diferente:

Passo a passo simplificado:

  1. Modelo lê seu prompt
  2. Prevê qual é a próxima palavra mais provável
  3. Escolhe uma palavra baseado em probabilidades
  4. Adiciona essa palavra ao texto
  5. Repete o processo até terminar a resposta

Exemplo concreto:

Prompt: “A capital do Brasil é”

O modelo calcula probabilidades:

  • “Brasília” = 95% de probabilidade
  • “brasília” = 3% (minúscula)
  • “Brasilia” = 1,5% (sem acento)
  • “o Distrito Federal” = 0,3%
  • “São Paulo” = 0,1% (errado, mas possível em contexto de economia)
  • “Paris” = 0,00001% (extremamente improvável)

Como ele escolhe?

Aqui entram os parâmetros. Eles controlam como o modelo escolhe entre as opções.

Com temperature = 0 (determinístico):

  • Sempre escolhe a opção mais provável
  • Resultado: sempre “Brasília”
  • Previsível, consistente, sem surpresas

Com temperature = 1.0 (criativo):

  • Escolhe baseado nas probabilidades, mas com mais aleatoriedade
  • Pode escolher “brasília”, “Brasilia”, ou até “o Distrito Federal”
  • Menos previsível, mais variado

Com temperature = 2.0 (caótico):

  • Escolhe opções improváveis com frequência
  • Pode até escolher “São Paulo” ocasionalmente
  • Criativo demais = frequentemente errado

Por que ajustar parâmetros ao invés de aceitar padrões

Padrões são genéricos, não otimizados para seu caso:

APIs de LLM vêm com valores padrão que tentam agradar maioria dos casos. Mas “maioria” não é “seu caso específico”.

Exemplo: OpenAI GPT-4 (padrões):

  • temperature = 1.0
  • top_p = 1.0
  • frequency_penalty = 0
  • presence_penalty = 0

Esses valores são OK para:

  • Conversação geral
  • Brainstorming
  • Escrita criativa

Mas ruins para:

  • Extração de dados estruturados
  • Classificação consistente
  • Respostas factuais precisas
  • Geração de código

Impacto de não ajustar:

Caso real: Startup de RH automatizando screening de currículos

Com padrões (temperature = 1.0):

  • Mesmo currículo, avaliações diferentes a cada execução
  • Candidato rejeitado hoje, aprovado amanhã
  • Inconsistência inaceitável
  • Compliance em risco

Com temperature = 0.2:

  • Avaliações consistentes
  • Mesmo currículo = mesma decisão
  • Problema resolvido

Ajuste de 5 minutos salvou o produto.

Temperature: o parâmetro mais importante

O que é e como funciona

Definição técnica: Temperature controla a aleatoriedade da seleção de palavras (tokens) durante a geração.

Definição prática: Temperature controla o quanto a IA “arrisca” vs “joga seguro”.

Range típico: 0 a 2

  • 0: determinístico, sempre a opção mais provável
  • 1: balanceado (padrão na maioria das APIs)
  • 2: muito criativo/aleatório (raramente útil)

Como impacta a escolha:

Imagine que o modelo está escolhendo próxima palavra após “A capital da França é”:

PalavraProbabilidade baseCom temp=0Com temp=0.5Com temp=1.0Com temp=2.0
Paris98%100%~99%~90%~60%
paris1,5%0%~1%~8%~20%
Lyon0,3%0%~0%~1,5%~12%
Marseille0,1%0%~0%~0,4%~6%
Londres0,05%0%~0%~0,1%~2%

Nota: números ilustrativos, não exatos

Observações:

  • temp=0: sempre “Paris” (mais provável)
  • temp=0.5: quase sempre “Paris”, raramente “paris”
  • temp=1.0: geralmente “Paris”, às vezes variações
  • temp=2.0: frequentemente “Paris”, mas pode escolher opções improváveis como “Lyon” ou até erros como “Londres”

Quando usar temperature baixo (0 - 0.3)

Use quando precisar de:

  • Consistência
  • Precisão factual
  • Respostas determinísticas
  • Conformidade/compliance

Casos de uso ideais:

  1. Extração de dados estruturados
# Exemplo: extrair dados de nota fiscal
prompt = """
Extraia os seguintes dados da nota fiscal:
- Valor total
- Data de emissão
- CNPJ do emissor

Nota fiscal: [texto]

Retorne em JSON.
"""
# Use temperature = 0
# Mesmo documento = sempre mesmo JSON
  1. Classificação de conteúdo
# Exemplo: categorizar tickets de suporte
prompt = """
Classifique o ticket em uma das categorias:
- Técnico
- Financeiro
- Comercial
- Outro

Ticket: [texto]
"""
# Use temperature = 0.2
# Consistência é crítica
  1. Respostas factuais
# Exemplo: FAQ automático
prompt = """
Responda a pergunta do cliente baseado apenas
na documentação fornecida.

Documentação: [...]
Pergunta: [...]
"""
# Use temperature = 0.3
# Fatos, não criatividade
  1. Geração de código
# Exemplo: gerar função Python
prompt = """
Crie uma função Python que:
- Receba lista de números
- Retorne média e mediana

Código limpo, type hints, docstring.
"""
# Use temperature = 0
# Código deve ser correto, não "criativo"

Desvantagens de temperature muito baixo:

  • Respostas podem ser “robóticas”
  • Menos variação (pode ser monótono)
  • Em tarefas criativas, resultados pobres

Quando usar temperature médio (0.4 - 0.7)

Use quando precisar de:

  • Equilíbrio entre consistência e variação
  • Respostas naturais mas não aleatórias
  • Múltiplas execuções com variações controladas

Casos de uso ideais:

  1. Assistentes conversacionais
# Chatbot de atendimento
# temperature = 0.5
# Respostas naturais mas consistentes
  1. Sumarização de textos
# Resumir artigos, documentos
# temperature = 0.6
# Variação no estilo, mas mantém precisão factual
  1. Tradução com contexto
# Traduzir textos considerando tom
# temperature = 0.5
# Alguma liberdade criativa, mas fiel ao original
  1. Reescrita/paráfrase
# Reescrever textos mantendo sentido
# temperature = 0.6
# Variação de estilo, preserva conteúdo

Quando usar temperature alto (0.8 - 1.5)

Use quando precisar de:

  • Criatividade
  • Variação máxima
  • Brainstorming
  • Evitar repetição

Casos de uso ideais:

  1. Geração de conteúdo criativo
# Criar posts de LinkedIn, títulos, slogans
# temperature = 0.9
# Criatividade é desejada
  1. Brainstorming de ideias
# Gerar 20 ideias de features para produto
# temperature = 1.2
# Quanto mais variado, melhor
  1. Criação de histórias/narrativas
# Escrever casos de uso fictícios
# temperature = 1.0
# Criatividade + variação
  1. Geração de alternativas
# "Me dê 10 formas diferentes de explicar X"
# temperature = 1.1
# Quer respostas bem diferentes

Desvantagens de temperature muito alto:

  • Pode “alucinar” (inventar fatos)
  • Inconsistência (problema para tarefas repetitivas)
  • Às vezes gera respostas nonsense

Valores práticos recomendados por caso de uso

Caso de usoTemperature recomendadoJustificativa
Extração de dados0 - 0.1Máxima consistência
Classificação0.2 - 0.3Consistente mas não robótico
FAQ/Respostas factuais0.3 - 0.5Preciso mas natural
Chatbot atendimento0.5 - 0.7Natural e consistente
Sumarização0.5 - 0.7Variação controlada
Tradução0.3 - 0.5Fiel mas natural
Reescrita0.6 - 0.8Variação de estilo
Geração de código0 - 0.2Correto > criativo
Email drafting0.7 - 0.9Natural e variado
Marketing copy0.8 - 1.2Criativo
Brainstorming1.0 - 1.5Máxima variação

Top-p (nucleus sampling): alternativa ao temperature

O que é e diferença para temperature

Definição técnica: Top-p (também chamado nucleus sampling) limita a escolha às palavras cuja probabilidade acumulada soma até p%.

Definição prática: Ao invés de mexer nas probabilidades (como temperature faz), top-p limita as opções consideradas.

Exemplo concreto:

Modelo está escolhendo próxima palavra. Probabilidades:

  • “importante” = 40%
  • “relevante” = 30%
  • “crucial” = 15%
  • “essencial” = 10%
  • “fundamental” = 3%
  • “significativo” = 1,5%
  • “vital” = 0,5%

Com top-p = 0.9 (90%):

Soma acumulada:

  • “importante” = 40% (total: 40%)
  • “relevante” = 30% (total: 70%)
  • “crucial” = 15% (total: 85%)
  • “essencial” = 10% (total: 95%) → passa de 90%, para aqui

Modelo só pode escolher entre: importante, relevante, crucial, essencial (as 4 palavras que somam ~90% de probabilidade)

Com top-p = 0.5 (50%):

Soma acumulada:

  • “importante” = 40% (total: 40%)
  • “relevante” = 30% (total: 70%) → passa de 50%, para aqui

Modelo só pode escolher entre: importante, relevante

Temperature vs Top-p: qual usar?

Recomendação geral:

Use UM dos dois, não ambos simultaneamente.

Por quê?

Ambos controlam aleatoriedade/criatividade, mas de formas diferentes. Usar os dois cria interação complexa e imprevisível.

Quando preferir temperature:

  • Mais intuitivo (0 = determinístico, 2 = caótico)
  • Amplamente documentado (mais exemplos)
  • Funciona bem na maioria dos casos
  • Padrão na maioria dos tutoriais

Use: temperature (mantenha top-p = 1.0)

Quando preferir top-p:

  • Quer criatividade mas evitando opções muito improváveis
  • Geração de texto longo (top-p mantém qualidade mais consistente)
  • Casos onde temperature alto causa problemas mas baixo é muito restritivo

Use: top-p (mantenha temperature = 1.0)

Valores típicos de top-p:

ValorEfeitoQuando usar
0.1 - 0.3Muito conservadorTarefas factuais, extração
0.5 - 0.7BalanceadoUso geral
0.9 - 0.95PadrãoMaioria dos casos
1.0Sem limitaçãoMáxima criatividade

Regra prática:

Se você não sabe qual usar: ajuste temperature, deixe top-p = 1.0

Frequency penalty e presence penalty: controlando repetição

Frequency penalty: penalizar palavras muito usadas

O que faz:

Reduz probabilidade de palavras que já apareceram muito no texto gerado.

Range: -2.0 a 2.0 (tipicamente usa-se 0 a 1.0)

  • 0: sem penalidade (padrão)
  • 0.5: penalidade moderada
  • 1.0+: penalidade forte

Exemplo prático:

Sem frequency penalty (0):

Nossa plataforma oferece integração com diversas ferramentas.
A plataforma permite que você conecte sua plataforma com
outras plataformas facilmente. A plataforma é...

↑ “plataforma” repete excessivamente

Com frequency penalty (0.6):

Nossa plataforma oferece integração com diversas ferramentas.
O sistema permite que você conecte sua solução com
outros produtos facilmente. A ferramenta é...

↑ variação de vocabulário

Quando usar:

  • Geração de textos longos (artigos, posts)
  • Quando repetição excessiva é problema
  • Descrições de produtos (evitar palavras-chave repetidas)
  • Conteúdo de marketing

Valores recomendados:

  • 0.0: tarefas técnicas (repetição OK)
  • 0.3-0.5: textos gerais (reduz repetição moderadamente)
  • 0.6-0.9: textos criativos (força variação)
  • 1.0+: raramente necessário (pode prejudicar coerência)

Presence penalty: incentivar novos tópicos

O que faz:

Penaliza palavras que já apareceram, independente de quantas vezes.

Diferença para frequency penalty:

  • Frequency: quanto mais usou a palavra, maior a penalidade
  • Presence: penaliza igualmente se usou 1x ou 10x

Range: -2.0 a 2.0 (tipicamente usa-se 0 a 1.0)

Efeito:

Incentiva o modelo a introduzir novos tópicos/conceitos ao invés de continuar desenvolvendo os mesmos.

Exemplo prático:

Prompt: “Escreva sobre benefícios de automação”

Sem presence penalty (0):

Automação reduz custos operacionais significativamente.
A redução de custos vem da eficiência. Com automação,
custos caem porque processos são mais eficientes...

↑ continua no mesmo tópico (custos/eficiência)

Com presence penalty (0.6):

Automação reduz custos operacionais. Além disso, melhora
a satisfação da equipe ao eliminar tarefas repetitivas.
Outro benefício é a redução de erros humanos...

↑ introduz novos tópicos (satisfação, erros)

Quando usar:

  • Brainstorming (quer diversidade de ideias)
  • Textos explorando múltiplos ângulos
  • Geração de listas de benefícios/features
  • Quando modelo “trava” no mesmo tópico

Valores recomendados:

  • 0.0: quando foco em um tópico é desejado
  • 0.3-0.5: explorar tópico mas com variação
  • 0.6-0.9: forçar diversidade de tópicos
  • 1.0+: raramente útil

Quando combinar frequency + presence penalties

Combinação típica:

Para textos longos que precisam:

  • Variação de vocabulário (frequency)
  • Explorar múltiplos aspectos (presence)

Exemplo: gerar artigo de blog

response = openai.chat.completions.create(
    model="gpt-4",
    messages=[...],
    temperature=0.7,           # criatividade moderada
    frequency_penalty=0.5,     # evita repetir mesmas palavras
    presence_penalty=0.4       # incentiva novos tópicos
)

Resultado:

  • Texto flui naturalmente
  • Não repete palavras-chave excessivamente
  • Explora múltiplos ângulos do tópico

Quando NÃO usar penalties:

  • Extração de dados (repetição é esperada)
  • Código (variáveis/funções repetem naturalmente)
  • Tarefas altamente estruturadas
  • Respostas curtas (1-2 parágrafos)

Max tokens: controlando tamanho da resposta

O que são tokens

Token: unidade básica que LLMs processam. Aproximadamente:

  • 1 token ≈ 0,75 palavras (inglês)
  • 1 token ≈ 0,5-0,6 palavras (português - palavras mais longas)

Exemplos:

  • “Olá, como vai?” ≈ 6 tokens
  • “A capital do Brasil é Brasília” ≈ 8 tokens

Max tokens: limite máximo de tokens que o modelo pode gerar na resposta.

Como definir max tokens apropriadamente

Regra prática:

Estime quantas palavras você quer na resposta e multiplique por 2 (para português).

Exemplos:

Tipo de respostaPalavras estimadasMax tokens
Sim/não + justificativa curta20-3060
Parágrafo curto50-100200
Parágrafo longo150-250500
Múltiplos parágrafos300-5001000
Artigo curto500-8001500
Artigo médio1000-15003000

Consequências de max tokens muito baixo:

Resposta é cortada no meio:

"A automação oferece três benefícios principais:
1. Redução de custos através de...
2. Aumento de eficiência eliminando...
3. Melhora de" [CORTADO]

Consequências de max tokens muito alto:

  • Custo desnecessário (você paga por tokens gerados)
  • Modelo pode “enrolar” para preencher espaço
  • Respostas verbosas

Recomendação:

Defina max tokens ~20% acima do esperado:

  • Se espera ~200 palavras (400 tokens), use max_tokens=500
  • Margem de segurança sem desperdiçar

Trade-off entre custo e completude

Custo é proporcional a tokens:

APIs de LLM cobram por token (input + output).

Exemplo OpenAI GPT-4 (preços abril 2026):

  • Input: $0,03 / 1K tokens
  • Output: $0,06 / 1K tokens

Cenário:

  • 1.000 chamadas/dia
  • Média de 500 tokens de input
  • Média de 800 tokens de output

Custo mensal:

  • Input: 1.000 × 30 × 0,5K × $0,03 = $450
  • Output: 1.000 × 30 × 0,8K × $0,06 = $1.440
  • Total: $1.890/mês

Se reduzir output médio de 800 para 400 tokens:

  • Output: 1.000 × 30 × 0,4K × $0,06 = $720
  • Total: $1.170/mês
  • Economia: 38%

Como otimizar:

  1. Defina max tokens o mais precisamente possível
  2. Instrua o modelo a ser conciso:
    Responda em no máximo 100 palavras.
  3. Use modelos menores quando apropriado (GPT-3.5 vs GPT-4)
  4. Cache respostas comuns (evita regenerar)

Outros parâmetros menos comuns mas úteis

Stop sequences: quando parar a geração

O que faz:

Define strings que, quando geradas, param a geração imediatamente.

Exemplo:

response = openai.chat.completions.create(
    model="gpt-4",
    messages=[...],
    stop=["###", "FIM", "\n\n\n"]  # para se gerar qualquer um destes
)

Quando usar:

  1. Formatos estruturados:
# Gerar apenas uma seção de documento
stop=["## Próxima Seção"]
  1. Evitar continuação indesejada:
# Parar após gerar resposta, antes de exemplos adicionais
stop=["Exemplo:", "Por exemplo"]
  1. Controle fino de formato:
# Gerar lista até certo ponto
stop=["---", "TOTAL:"]

N: gerar múltiplas alternativas

O que faz:

Gera N respostas diferentes para o mesmo prompt (em uma única chamada).

Exemplo:

response = openai.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "Crie slogan para app de produtividade"}],
    n=5,  # gera 5 slogans diferentes
    temperature=0.9
)

# Retorna 5 opções
for choice in response.choices:
    print(choice.message.content)

Quando usar:

  • Brainstorming (gerar múltiplas ideias de uma vez)
  • A/B testing (gerar variações para testar)
  • Escolher melhor opção (gerar 5, humano escolhe melhor)

Cuidado:

Gerar N=5 custa 5x mais (você paga por cada resposta gerada).

Seed: reproduzir resultados idênticos

O que faz:

Define uma “semente” que torna geração reproduzível.

Exemplo:

# Primeira chamada
response1 = openai.chat.completions.create(
    model="gpt-4",
    messages=[...],
    seed=42,
    temperature=0.7
)

# Segunda chamada (mesmo seed)
response2 = openai.chat.completions.create(
    model="gpt-4",
    messages=[...],
    seed=42,  # mesmo valor
    temperature=0.7
)

# response1 == response2 (idênticos)

Quando usar:

  • Testes automatizados (garantir mesma saída)
  • Debugging (reproduzir problema exato)
  • Demonstrações (garantir exemplo funciona)

Limitação:

Nem todas as APIs suportam (OpenAI suporta desde nov/2023).

Caso real: ContentHub otimiza parâmetros e economiza 43%

Problema inicial

Contexto:

  • ContentHub: plataforma de marketing de conteúdo
  • Feature: gerar rascunhos de posts LinkedIn
  • Volume: 15.000 posts/mês
  • Custo: R$ 6.200/mês em APIs

Problemas relatados:

  1. Inconsistência de tom:

    • Mesmo cliente, posts com tons radicalmente diferentes
    • Reclamação: “parece escrito por pessoas diferentes”
  2. Verbosidade:

    • Posts eram longos demais
    • LinkedIn funciona melhor com 150-200 palavras
    • Modelo gerava 300-400 palavras
  3. Repetição de palavras-chave:

    • “Nossa plataforma… a plataforma… na plataforma…”
    • Parecia spam
  4. Custo alto:

    • R$ 6.200/mês só para esta feature
    • Estava comendo margem do produto

Análise e ajustes realizados

Passo 1: Auditoria dos parâmetros (1 dia)

Marina analisou configuração atual:

# Configuração original (padrões)
{
    "model": "gpt-4",
    "temperature": 1.0,      # padrão, muito criativo
    "max_tokens": 2048,      # muito alto para post
    "top_p": 1.0,
    "frequency_penalty": 0,  # sem controle de repetição
    "presence_penalty": 0
}

Problemas identificados:

  1. temperature=1.0 causava inconsistência

    • Posts muito variados
    • Sem controle de tom
  2. max_tokens=2048 desperdiçava tokens

    • Posts raramente passavam de 600 tokens
    • Pagando por margem desnecessária
  3. Sem penalidades → repetição

    • Palavras-chave repetiam excessivamente

Passo 2: Teste A/B com variações (1 semana)

Marina criou 5 configurações diferentes e testou com 100 posts cada:

Config A (conservadora):

{
    "temperature": 0.3,
    "max_tokens": 400,
    "frequency_penalty": 0.5,
    "presence_penalty": 0.3
}

Resultado: Muito robótico, sem personalidade

Config B (criativa controlada):

{
    "temperature": 0.7,
    "max_tokens": 600,
    "frequency_penalty": 0.6,
    "presence_penalty": 0.4
}

Resultado: Melhor equilíbrio, ainda alguma inconsistência

Config C (otimizada):

{
    "temperature": 0.6,
    "max_tokens": 500,
    "frequency_penalty": 0.7,
    "presence_penalty": 0.3
}

Resultado: Perfeito para LinkedIn, consistente

Config D (experimental):

{
    "temperature": 0.9,
    "max_tokens": 400,
    "frequency_penalty": 0.9,
    "presence_penalty": 0.6
}

Resultado: Criativo mas penalties muito altos causaram problemas

Config E (econômica):

{
    "model": "gpt-3.5-turbo",  # modelo mais barato
    "temperature": 0.6,
    "max_tokens": 500,
    "frequency_penalty": 0.6
}

Resultado: 80% da qualidade, 1/10 do custo

Passo 3: Validação com clientes (2 semanas)

Testaram Config C e Config E com 50 clientes:

Feedback Config C (GPT-4 otimizado):

  • 92% aprovação
  • “Finalmente consistente!”
  • “Tom perfeito, tamanho ideal”

Feedback Config E (GPT-3.5):

  • 78% aprovação
  • “Bom, mas às vezes genérico”
  • “Prefiro pagar mais pelo GPT-4”

Decisão:

  • Plano básico: Config E (GPT-3.5)
  • Plano premium: Config C (GPT-4)
  • Clientes escolhem (upsell opportunity!)

Resultados e economia gerada

Impacto operacional:

Antes:

  • Temperature: 1.0 → tom inconsistente
  • Max tokens: 2048 → desperdício
  • Sem penalties → repetição
  • Modelo: apenas GPT-4

Depois:

  • Temperature: 0.6 → tom consistente
  • Max tokens: 500 → tamanho ideal
  • Frequency penalty: 0.7 → sem repetição
  • Modelos: GPT-3.5 (básico) + GPT-4 (premium)

Impacto financeiro:

MétricaAntesDepoisVariação
Custo/post (GPT-4)R$ 0,41R$ 0,23-44%
Posts GPT-4/mês15.0006.000-60%
Posts GPT-3.5/mês09.000novo
Custo total/mêsR$ 6.200R$ 3.510-43%

Economia anual: R$ 32.280

Investimento para otimizar:

  • 3 dias de trabalho de Marina
  • R$ 180 em testes (APIs)
  • Total: ~R$ 5.000

ROI: 546% no primeiro ano

Benefícios qualitativos:

  • Churn de clientes: 11%/mês → 5%/mês
  • NPS: 42 → 68
  • Tickets de reclamação: -78%
  • Oportunidade de upsell (plano premium)

Lição principal:

Ajustar parâmetros levou 3 dias e economizou R$ 32k/ano. ROI absurdo.

Checklist: otimizando parâmetros para seu caso de uso

Perguntas para definir temperature

1. Qual é a natureza da tarefa?

  • Factual/técnica (extração, classificação) → 0 - 0.3
  • Conversacional (chatbot, FAQ) → 0.5 - 0.7
  • Criativa (marketing, brainstorm) → 0.8 - 1.2

2. Consistência é crítica?

  • Sim (compliance, análise financeira) → 0 - 0.2
  • Moderadamente (atendimento) → 0.3 - 0.5
  • Não (ideação, variação desejada) → 0.8+

3. Mesmo input deve gerar mesmo output?

  • Sempre → temperature = 0
  • Geralmente → temperature = 0.2 - 0.4
  • Não importa → temperature = 0.7+

4. Risco de erro é alto?

  • Muito alto (legal, médico) → 0 - 0.2
  • Moderado (negócios) → 0.3 - 0.5
  • Baixo (marketing) → 0.7+

Perguntas para definir max tokens

1. Qual tamanho ideal de resposta?

  • Curta (1 frase) → 50-100 tokens
  • Parágrafo → 200-300 tokens
  • Múltiplos parágrafos → 500-1000 tokens
  • Documento → 1500+ tokens

2. Custo é preocupação?

  • Sim, minimizar → definir o menor viável
  • Balanceado → +20% de margem sobre o esperado
  • Não é problema → limite alto para garantia

3. Resposta pode ser cortada?

  • Nunca (dados estruturados) → margem de 50%
  • Raramente (textos) → margem de 20%
  • OK (brainstorm) → limite justo

Perguntas para definir penalties

1. Repetição de palavras é problema?

  • Sim, muito (marketing copy) → frequency_penalty = 0.6-0.9
  • Moderadamente (textos gerais) → 0.3-0.5
  • Não (código, dados) → 0

2. Quer explorar múltiplos ângulos?

  • Sim (análises, artigos) → presence_penalty = 0.4-0.7
  • Não necessariamente → 0-0.3
  • Não (foco único) → 0

3. Texto é longo?

  • Sim (500+ palavras) → considere ambos penalties
  • Moderado (100-500 palavras) → frequency_penalty apenas
  • Curto (menos de 100 palavras) → sem penalties

Template de configuração por tipo de aplicação

Extração de dados:

{
    "temperature": 0,
    "max_tokens": 500,  # ajustar conforme dados
    "top_p": 1.0,
    "frequency_penalty": 0,
    "presence_penalty": 0
}

Chatbot de atendimento:

{
    "temperature": 0.6,
    "max_tokens": 300,
    "top_p": 1.0,
    "frequency_penalty": 0.3,
    "presence_penalty": 0.2
}

Geração de conteúdo marketing:

{
    "temperature": 0.8,
    "max_tokens": 800,
    "top_p": 1.0,
    "frequency_penalty": 0.7,
    "presence_penalty": 0.4
}

Sumarização:

{
    "temperature": 0.5,
    "max_tokens": 400,
    "top_p": 1.0,
    "frequency_penalty": 0.5,
    "presence_penalty": 0.3
}

Classificação/Categorização:

{
    "temperature": 0.2,
    "max_tokens": 50,
    "top_p": 1.0,
    "frequency_penalty": 0,
    "presence_penalty": 0
}

Código:

{
    "temperature": 0,
    "max_tokens": 2000,  # código pode ser longo
    "top_p": 1.0,
    "frequency_penalty": 0,
    "presence_penalty": 0
}

Conclusão: parâmetros são a diferença entre “funciona mais ou menos” e “funciona bem”

Ajustar parâmetros de LLM parece detalhe técnico menor, mas o impacto é enorme:

Três aprendizados principais:

  1. Padrões são genéricos, não otimizados

    • APIs vêm com valores “médios”
    • Seu caso de uso é específico
    • 30 minutos ajustando pode economizar milhares/ano
  2. Temperature é o mais importante, mas não é o único

    • Temperature: criatividade vs consistência
    • Max tokens: custo vs completude
    • Penalties: controle de repetição/variação
    • Cada um tem impacto significativo
  3. Teste sistemáticamente, não no feeling

    • Crie dataset de validação (50-100 exemplos)
    • Teste múltiplas configurações
    • Meça objetivamente (não apenas “parece melhor”)
    • Uma semana de testes pode salvar meses de problemas

Framework mental:

  • Precisa de consistência? → temperature baixo (0-0.3)
  • Precisa de criatividade? → temperature alto (0.8-1.2)
  • Custo é problema? → reduza max_tokens ao mínimo viável
  • Repetição incomoda? → adicione frequency_penalty
  • Quer explorar ângulos? → adicione presence_penalty

O que fazer agora:

Se você está usando LLMs em produção:

  1. Audite seus parâmetros atuais (10 minutos)
  2. Identifique problemas (inconsistência? verbosidade? repetição?)
  3. Teste configurações alternativas (1 dia)
  4. Meça impacto (qualidade + custo)
  5. Implemente a melhor configuração

Casos reais que vimos:

  • Economia de 30-50% em custos é comum
  • Melhora de 20-40% em satisfação com qualidade
  • ROI típico: 300-800% no primeiro ano

Ajustar parâmetros é um dos investimentos com melhor ROI em IA.

Precisa de ajuda para otimizar seus parâmetros?

Na Orient.me, fazemos auditorias de configuração de LLM:

  • Analisamos seu caso de uso
  • Testamos 10-15 configurações diferentes
  • Medimos impacto em qualidade e custo
  • Recomendamos configuração ótima

Tempo típico: 1 semana ROI médio: 450% no primeiro ano

Agende uma conversa gratuita para avaliar seu caso.

Pronto para sair do manual?

Agende o diagnóstico gratuito. Vamos mapear o gargalo, estimar o impacto e definir o primeiro resultado mensurável.

Você sai com clareza — não com um pitch de vendas.