Temperatura, top-p, top-k: os parâmetros
O top-p (amostragem por núcleo) mantém apenas os tokens mais prováveis cuja probabilidade acumulada atinge p, por exemplo 0,9. O top-k mantém um número fixo de candidatos, por exemplo 40. A temperatura regula o nível de aleatoriedade na escolha: perto de 0, o modelo escolhe quase sempre o token mais provável. Ollama inicia com temperatura 0,8, top-k 40 e top-p 0,9.
Três números aparecem em todos os ajustes de um modelo local: temperatura, top-p e top-k. Este guia explica o que cada um remove ou reposiciona na lista de palavras possíveis, com um exemplo numérico, os valores padrão de Ollama e de llama.cpp, as recomendações publicadas pelos responsáveis pelos modelos e a forma de aplicar esses ajustes.
#Top-p, top-k, temperatura: a definição em uma tabela
Para cada palavra gerada, um modelo calcula uma probabilidade para cada token de seu vocabulário. Os parâmetros de amostragem decidem então qual sortear. Top-p e top-k reduzem a lista de candidatos; a temperatura modifica a diferença entre os prováveis e os improváveis. Nenhum deles adiciona conhecimento ao modelo: eles apenas regulam a variedade e o risco.
| Parâmetro | Sobre o que ele atua | Valor baixo | Valor alto | Valor padrão do Ollama |
|---|---|---|---|---|
| temperature | Diferença entre tokens prováveis e improváveis | Respostas mais determinísticas | Mais variedade, mais erros | 0,8 |
| top_p | Tamanho da lista, definido pela probabilidade acumulada | Lista curta, saída conservadora | Lista ampla, com mais diversidade | 0,9 |
| top_k | Número máximo de candidatos | Poucos candidatos | Muitos candidatos | 40 |
| min_p | Limiar relativo à maior probabilidade | Filtragem leve | Filtragem forte | 0,0 (desativado) |
| repeat_penalty | Penalização dos tokens usados recentemente | Mais repetições | Menos repetições, risco de resultados estranhos | 1,0 (desativado) |
Esses valores padrão vêm da referência do Modelfile do Ollama. Muitos modelos fornecem seus próprios valores no arquivo de configuração, que então substituem esses padrões: daí a importância de ler a ficha do modelo, como veremos mais abaixo.
#Como um LLM escolhe a próxima palavra
Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.
- Espaço online vitalício
- PDF + arquivos
- Atualizações vitalícias
O modelo gera, para cada posição, uma distribuição de probabilidades sobre todo o seu vocabulário. Escolher sempre o token mais provável, o que é chamado de decodificação gulosa, resulta em textos sem graça, repetitivos e, às vezes, presos em um loop. Introduz-se, portanto, um sorteio aleatório, controlado pelos parâmetros de amostragem. Uma semente fixa (seed) torna esse sorteio reprodutível: a documentação do Ollama especifica que uma determinada semente produz o mesmo texto para o mesmo prompt.
A ordem em que os filtros são aplicados importa. No llama.cpp, o motor de inferência GGUF usado, entre outros, pelo LM Studio, a ordem padrão é: penalidades, DRY, top-n sigma, top-k, typical-p, top-p, min-p, XTC e, por último, temperatura. Ou seja, top-k e top-p atuam sobre as probabilidades originais, e a temperatura serve apenas para amostrar o que resta. Muitos tutoriais afirmam o contrário; a ordem real pode variar de um motor para outro e é configurada no llama.cpp pelo parâmetro --samplers.
#Um exemplo numérico: o que cada configuração retém
Vamos considerar sete candidatos para a próxima palavra, com suas probabilidades: 0,45 ; 0,25 ; 0,12 ; 0,08 ; 0,05 ; 0,03 ; 0,02. Esta tabela é um cálculo ilustrativo, não uma medição em um modelo real.
| Filtro | Regra | Candidatos mantidos | Cobertura de probabilidade |
|---|---|---|---|
| Nenhum | Todo o vocabulário | 7 | 100 % |
| top_k = 3 | Os 3 melhores | 3 | 82 % |
| top_p = 0,9 | Paramos quando o acumulado atinge 0,90 | 4 (0,45 + 0,25 + 0,12 + 0,08) | 90 % |
| top_p = 0,7 | Total acumulado de 0,70 | 2 | 70 % |
| min_p = 0,1 | Manter os tokens com probabilidade superior a 10% da probabilidade do melhor token, ou seja, um limiar de 0,045 | 5 | 95 % |
O ponto a lembrar: o top-k sempre mantém o mesmo número de candidatos, independentemente da situação; top-p e min-p se adaptam. Quando o modelo está muito seguro (um token com 0,95), o top-p pode manter apenas um ou dois candidatos; quando hesita entre dez palavras, mantém mais. Por isso, o top-p é frequentemente preferido ao top-k.
#1. Temperatura: o botão do acaso
Antes do sorteio, a temperatura divide os logits do modelo. Com temperatura baixa, a diferença entre os tokens aumenta: o mais provável domina os outros. Com temperatura alta, a diferença diminui. A 0, o modelo escolhe sempre o token mais provável e produz saídas idênticas em cada tentativa, o que a documentação do llama.cpp confirma.
| Candidato | Probabilidade original | T = 0,5 | T = 1,5 |
|---|---|---|---|
| 1er | 45 % | 70 % | 34 % |
| 2e | 25 % | 22 % | 23 % |
| 3e | 12 % | 5 % | 14 % |
| 4e | 8 % | 2 % | 11 % |
| 5e à 7e | 10 % ao todo | 1,3 % | 17,8 % |
- 0 à 0,3
- Extração, classificação e resumo fiel: você quer a mesma resposta em cada tentativa.
- 0,4 à 0,7
- Redação técnica, tradução, suporte: variedade sem desvios.
- 0,8
- Valor padrão de Ollama e de llama.cpp: conversa geral.
- 1 ou mais
- Criatividade, brainstorming; mais riscos de erros e de digressões.
#2. Top-p: o filtro adaptativo
Top-p, ou amostragem por núcleo, retém os tokens mais prováveis até que sua probabilidade acumulada atinja p. Com 0,9, descarta a cauda de 10% de probabilidade; com 1,0, não filtra nada. A documentação de Ollama lembra que um valor mais alto, por exemplo 0,95, gera um texto mais variado, e um valor mais baixo, por exemplo 0,5, um texto mais focado e conservador.
- 0,5 à 0,7
- Muito conservador: respostas seguras, às vezes monótonas.
- 0,9
- Valor padrão do Ollama: corta a cauda sem sufocar a variedade.
- 0,95
- Valor padrão do llama-server, e valor recomendado por várias fichas de modelos.
- 1,0
- Filtro desativado: a temperatura continua atuando sozinha.
#3. Top-k: limite fixo
Top-k conserva apenas os k tokens mais prováveis. A documentação do Ollama descreve esse parâmetro como um meio de reduzir a probabilidade de gerar conteúdo sem sentido: valores mais altos (100) produzem respostas mais variadas; valores mais baixos (10), mais conservadoras. Seu valor padrão é 40, como no llama.cpp, onde 0 o desativa.
| Filtro | Vantagem | Limite | Quando usar |
|---|---|---|---|
| top_k | Simples, limita o cálculo | Ignora a forma da distribuição: candidatos demais quando o modelo está confiante, candidatos de menos quando hesita | Limite de proteção amplo (20 a 100) |
| top_p | Ajusta-se à confiança do modelo | Pode deixar passar uma cauda longa se a distribuição for plana | Ajuste principal de diversidade |
| min_p | Limiar relativo à maior probabilidade, estável mesmo em temperaturas elevadas | Menos conhecido, não ativo por padrão em Ollama | Alternativa a top_p, geralmente com temperatura mais alta |
Para a consulta « top p vs top k »: use o top-p como configuração principal, mantenha o top-k como mecanismo de proteção e não ajuste os dois no mesmo teste, caso contrário, você não saberá qual produziu a diferença.
#Valores padrão e recomendações dos desenvolvedores
Os valores padrão de um motor representam uma solução de compromisso genérica. Os fornecedores de modelos costumam publicar valores adaptados aos seus modelos, que podem diferir dos valores padrão. Veja o que a ficha do Qwen3.5 recomenda para seus modelos e compare com os valores padrão do Ollama (temperatura 0,8, top-p 0,9, top-k 40).
| Modo | Temperatura | top_p | top_k | presence_penalty |
|---|---|---|---|---|
| Raciocínio, tarefas gerais | 1,0 | 0,95 | 20 | 1,5 |
| Raciocínio, código preciso | 0,6 | 0,95 | 20 | 0,0 |
| Sem raciocínio, tarefas gerais | 0,7 | 0,8 | 20 | 1,5 |
Esses valores se aplicam a essa família de modelos, não a todos. As fichas de outros editores apresentam outros valores: procure a seção sobre os parâmetros de amostragem recomendados na ficha do Hugging Face ou na página do modelo na biblioteca Ollama. A ficha do Qwen também especifica que o suporte a esses parâmetros varia conforme o motor de inferência.
#Penalidades: repetição, frequência, presença
Modelos locais, especialmente os pequenos ou fortemente quantizados, às vezes ficam repetindo as mesmas frases. As penalidades são a solução, mas seus valores padrão muitas vezes são pouco conhecidos. No Ollama, repeat_penalty tem o valor padrão de 1,0, o que desativa a penalidade; a documentação apresenta 1,5 como exemplo de um valor que penaliza mais fortemente. O valor 1,1 frequentemente citado é uma opção a escolher, não o valor padrão.
- repeat_penalty
- Penaliza os tokens vistos recentemente; repeat_last_n (64 por padrão) define a janela considerada.
- frequency_penalty
- Penalidade proporcional ao número de ocorrências, para gerações longas.
- presence_penalty
- Penalidade aplicada assim que um token já apareceu, para incentivar um vocabulário mais variado; Qwen recomenda 1,5 em vários de seus modos, com o risco de mistura de idiomas se o valor for muito alto.
#Aplicar essas configurações no Ollama
Existem dois métodos: um Modelfile, que define valores para um modelo nomeado, ou o campo options de uma requisição à API, que aceita os mesmos parâmetros do Modelfile. O Modelfile é adequado para uso diário, e a API, para um programa.
Para saber mais sobre os Modelfile (prompt de sistema, contexto, template), consulte o guia de personalização. No LM Studio e no Jan, os mesmos parâmetros são ajustados no painel de configuração do modelo.
#Modelos de raciocínio: não ajustar tudo pela temperatura
Os modelos de raciocínio produzem primeiro um registro de reflexão antes de responder. No Ollama, esses modelos expõem um campo de reflexão separado, e os comandos disponíveis variam conforme o modelo: a documentação recomenda consultar a API show para conhecer os valores aceitos e o valor padrão. Para o gpt-oss, por exemplo, os níveis são low, medium e high, com medium como padrão.
Para reduzir os lançamentos desnecessários em uma pergunta simples, atue primeiro neste nível de reflexão, quando existir, em vez da temperatura. A temperatura, por sua vez, deve seguir a ficha do modelo: um raciocínio muito frio pode se travar, um raciocínio muito quente pode se dispersar.
#Predefinições iniciais por uso
| Uso | Temperatura | top_p | Outras configurações |
|---|---|---|---|
| Extração, classificação, JSON | 0 à 0,2 | 0,9 | Formato estrito exigido no prompt |
| Resumo fiel | 0,2 à 0,3 | 0,9 | repeat_penalty ligeiramente acima de 1 |
| Conversa geral | 0,7 à 0,8 | 0,9 | Valores padrão do motor |
| Redação, ideias | 0,8 à 1,0 | 0,95 | presence_penalty moderada |
| Ficção, criatividade | 1,0 | 0,95 | Controlar as digressões |
Esses presets são pontos de partida, não medições. Mude um parâmetro de cada vez, execute novamente o mesmo prompt três vezes e compare: se três tentativas produzirem a mesma resposta quando você espera variedade, a temperatura está muito baixa ou a semente está fixa.
#Sintomas e ajustes a testar
- O modelo repete a mesma frase
- Ative repeat_penalty com um valor em torno de 1,1 ou ative presence_penalty, ou encurte a geração com num_predict.
- Respostas sem graça e genéricas
- Aumente a temperatura um passo (de 0,7 para 0,9) ou flexibilize a restrição de top_p.
- O modelo inventa fatos
- Reduza a temperatura, mas saiba que isso não é suficiente: consultar o guia sobre alucinações.
- JSON quebrado
- Temperatura baixa e formato solicitado explicitamente; use o modo de saída estruturada do Ollama quando estiver disponível.
- Mistura de línguas ou palavras estranhas
- Reduza presence_penalty ou repeat_penalty, ou aumente levemente a quantização do modelo.
O que é o top-p em um LLM?+
Qual a diferença entre top-p e top-k?+
É necessário ajustar a temperatura e o top-p ao mesmo tempo?+
Qual temperatura para código?+
Quais são os valores padrão no Ollama?+
O que é min-p e é necessário usá-lo?+
- Ollama Modelfile: personalizar um modelo
- Fundamentos de prompting
- Dominar os system prompts
- Compreender a janela de contexto
- Limitar as alucinações de um LLM local
- Fonte: referência do Modelfile Ollama
- Fonte: ficha Qwen3.5-9B
- Fonte: llama.cpp, opções do llama-server
- Fonte: Ollama, modelos com reflexão
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.