No contexto dos modelos de linguagem de grande porte, temperatura é um hiperparâmetro que controla a aleatoriedade do texto gerado. Ela é aplicada durante a fase de decodificação, após o modelo calcular uma distribuição de probabilidade sobre o próximo token possível, mas antes de o token final ser selecionado. Ao escalar os logits (as pontuações brutas e não normalizadas) antes de passá-los por uma função softmax, a temperatura remodela a distribuição de probabilidade, tornando-a mais concentrada (determinística) ou mais achatada (diversa). O parâmetro é tipicamente um número de ponto flutuante positivo, com um valor padrão de 1,0 representando a distribuição nativa do modelo. Valores abaixo de 1,0 afunilam a distribuição, favorecendo tokens de alta probabilidade, enquanto valores acima de 1,0 a achatam, dando aos tokens de menor probabilidade uma chance maior de serem selecionados. A temperatura é um controle central em sistemas de IA generativa, amplamente usado em APIs de provedores como OpenAI, Anthropic e Google DeepMind para ajustar saídas criativas versus factuais.
A temperatura é conceitualmente distinta de outras estratégias de amostragem, embora seja frequentemente combinada com elas. Enquanto a amostragem top-k restringe o conjunto de candidatos aos k tokens mais prováveis e a amostragem top-p (também chamada de amostragem por núcleo) seleciona o menor conjunto cuja probabilidade cumulativa excede um limite, a temperatura modifica toda a distribuição antes de qualquer truncamento ocorrer. Na prática, desenvolvedores frequentemente definem a temperatura junto com o top-p para equilibrar criatividade e coerência. Por exemplo, uma temperatura baixa (ex.: 0,2) com um top-p moderado (ex.: 0,9) é comum para tarefas factuais como sumarização, enquanto uma temperatura alta (ex.: 0,8) com um top-p mais alto (ex.: 0,95) é usada para escrita criativa ou brainstorming.
Formulação matemática
O efeito da temperatura é definido por uma operação de escalonamento nos logits. Dados os logits do modelo \( z_i \) para cada token \( i \) no vocabulário, a probabilidade escalada pela temperatura \( p_i \) é calculada como:
\[ p_i = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)} \]
onde \( T \) é o valor da temperatura. Quando \( T = 1 \), a expressão se reduz à softmax padrão. Conforme \( T \) se aproxima de 0, a distribuição converge para uma massa pontual no token com o maior logit, efetivamente tornando o modelo guloso e determinístico. Conforme \( T \) aumenta em direção ao infinito, a distribuição se aproxima de uma distribuição uniforme sobre todos os tokens, produzindo saídas maximamente aleatórias. Na prática, temperaturas raramente são definidas acima de 2,0 porque valores extremos geram texto sem sentido, e valores abaixo de 0,1 são frequentemente tratados como equivalentes à decodificação gulosa. O escalonamento é aplicado antes de qualquer método de amostragem, então a seleção final ainda pode usar amostragem estocástica a partir da distribuição modificada.
Origens históricas
O conceito de temperatura em modelos probabilísticos precede o aprendizado profundo moderno. Ele foi introduzido na física estatística, onde a temperatura controla a nitidez da distribuição de Boltzmann. No aprendizado de máquina, o escalonamento de temperatura foi popularizado no contexto de redes neurais para calibrar pontuações de confiança, notavelmente no artigo de 2017 "On Calibration of Modern Neural Networks" de Chuan Guo e colegas, que usou um único parâmetro de temperatura para reescalar logits e obter melhores estimativas de incerteza. A ideia foi rapidamente adotada na geração de sequências, particularmente para modelos sequência a sequência e transformers, como um controle prático para variabilidade de saída. A adoção inicial em bibliotecas de aprendizado de máquina, como TensorFlow e PyTorch, tornou a temperatura um argumento padrão em funções de amostragem, e ela se tornou um parâmetro padrão em muitas interfaces de geração de texto de inteligência artificial.
Papel na inferência de modelos de linguagem
Durante a inferência, um modelo de linguagem produz uma distribuição de probabilidade sobre seu vocabulário para cada posição na sequência de saída. Sem temperatura, o modelo sempre escolheria o token mais provável, levando a texto repetitivo e frequentemente monótono. A temperatura introduz estocasticidade, que é essencial para tarefas que exigem variedade, como diálogo, geração de histórias ou conclusão de código, onde múltiplas continuações válidas existem. Em frameworks de aprendizado profundo, a temperatura é aplicada na etapa de decodificação, não durante o treinamento, o que significa que ela não afeta os pesos aprendidos do modelo. Isso a torna um ajuste leve, apenas em tempo de execução, que pode ser alterado por solicitação sem retreinar.
Por exemplo, na API da OpenAI, o parâmetro temperature aceita valores de 0 a 2, com um padrão de 1,0. Um valor de 0 torna o modelo determinístico, sempre escolhendo o token de maior probabilidade, enquanto valores mais altos aumentam a diversidade. Da mesma forma, os modelos Claude da Anthropic expõem a temperatura em sua API, e os modelos Gemini da Google DeepMind a incluem como um parâmetro de geração. Esses provedores também documentam que a temperatura interage com outros parâmetros de amostragem, como top-p e top-k, e recomendam ajustá-los juntos, em vez de isoladamente.
Relação com outros métodos de amostragem
A temperatura é uma das várias técnicas usadas para moldar a distribuição de saída. A amostragem top-k limita o próximo token às k opções mais prováveis, o que impede que tokens de probabilidade muito baixa sejam escolhidos mesmo em temperaturas altas. A amostragem top-p seleciona dinamicamente o menor conjunto de tokens cuja probabilidade cumulativa excede um limite p, oferecendo um truncamento mais adaptativo do que um k fixo. A temperatura é ortogonal a esses métodos de truncamento: ela muda a forma da distribuição, enquanto top-k e top-p mudam o suporte. Na prática, eles são frequentemente usados juntos. Por exemplo, uma receita comum para tarefas criativas é temperatura 0,7 com top-p 0,9, enquanto para geração de código, temperatura 0,2 com top-p 0,1 é típica para minimizar erros.
Outro conceito relacionado é o escalonamento de temperatura no contexto de calibração de modelos, onde uma única temperatura é aprendida em um conjunto de validação para melhorar estimativas de confiança. Isso é distinto da temperatura de amostragem usada no momento da geração, embora ambos compartilhem a mesma operação matemática. A temperatura de calibração geralmente é próxima de 1,0 e é fixada após o treinamento, enquanto a temperatura de amostragem é um hiperparâmetro controlado pelo usuário.
Diretrizes práticas e trade-offs
Escolher a temperatura certa depende da aplicação. Para tarefas que exigem precisão factual, como resposta a perguntas, sumarização ou extração de dados, uma temperatura baixa (0,1 a 0,3) é recomendada para reduzir alucinações e produzir saídas consistentes. Para escrita criativa, brainstorming ou geração de múltiplas soluções candidatas, uma temperatura mais alta (0,7 a 1,0) incentiva novidade e variação. Temperaturas extremamente altas (acima de 1,5) frequentemente levam a texto incoerente, pois o modelo perde estrutura gramatical e coerência semântica. Os desenvolvedores também precisam considerar que a temperatura afeta a reprodutibilidade: definir temperatura como 0 produz saídas determinísticas, o que é útil para testes e depuração, mas a amostragem estocástica em temperaturas mais altas significa que o mesmo prompt pode produzir resultados diferentes entre execuções, o que pode ser indesejável em sistemas de produção que exigem saídas estáveis.
A temperatura também interage com a distribuição de treinamento do modelo. Modelos treinados em dados diversos podem tolerar temperaturas mais altas melhor do que aqueles treinados em domínios estreitos. Por exemplo, um modelo ajustado em documentos jurídicos pode produzir texto sem sentido na temperatura 1,0, enquanto um modelo de propósito geral lida com isso graciosamente. No início dos anos 2020, a maioria dos principais provedores de modelos de linguagem adotou a temperatura como um parâmetro padrão de API, e ela também é implementada em bibliotecas de código aberto como o Transformers da Hugging Face, onde é passada para funções de geração como generate().
Implementação em software
Na prática, a temperatura é implementada no loop de decodificação de um modelo de linguagem. Após a passagem direta do modelo produzir os logits, o código os divide pelo valor da temperatura, aplica a softmax e então amostra a partir da distribuição resultante. Muitos frameworks também suportam um sinalizador do_sample que, quando definido como True, habilita a amostragem estocástica com temperatura; quando False, o modelo usa decodificação gulosa independentemente da temperatura. Na biblioteca Transformers da Hugging Face, por exemplo, o argumento temperature é usado apenas quando do_sample=True. Esse design permite que os desenvolvedores alternem facilmente entre modos determinístico e estocástico.
Aceleradores de hardware como AWS Trainium e Groq frequentemente fornecem caminhos de inferência otimizados, mas o escalonamento de temperatura é uma operação aritmética simples que adiciona sobrecarga desprezível. O principal custo computacional permanece sendo a passagem direta do modelo, não a etapa de amostragem. Consequentemente, a temperatura pode ser ajustada em tempo real sem impacto significativo de latência, tornando-a uma ferramenta prática para aplicações interativas.
Limitações e críticas
A temperatura é um instrumento impreciso para controlar a qualidade da saída. Ela não garante coerência ou correção factual; apenas muda a distribuição de probabilidade. Uma temperatura alta pode produzir declarações criativas, mas falsas, enquanto uma temperatura baixa pode produzir texto repetitivo ou excessivamente conservador. Pesquisadores notaram que a temperatura não é um substituto para melhores estratégias de decodificação como busca em feixe ou decodificação restrita, que impõem restrições estruturais. Além disso, a temperatura é um parâmetro global aplicado uniformemente a todos os tokens, mas alguns contextos podem exigir diferentes níveis de aleatoriedade - por exemplo, ser determinístico para sintaxe de código, mas criativo para comentários. Em meados dos anos 2020, métodos mais avançados, como busca contrastiva ou ajuste dinâmico de temperatura, foram propostos, mas nenhum substituiu a temperatura como o controle padrão em APIs comerciais.
Direções futuras
A pesquisa continua em esquemas adaptativos de temperatura que ajustam o valor com base na incerteza prevista do token ou na tarefa em questão. Alguns trabalhos exploraram aprender um cronograma de temperatura durante o treinamento, embora isso ainda não seja padrão. No campo mais amplo da IA generativa, a temperatura permanece um parâmetro-chave voltado ao usuário, e sua simplicidade é tanto sua força quanto sua fraqueza. Conforme os modelos crescem em tamanho e capacidade, a necessidade de controle mais refinado pode levar a novos parâmetros, mas a temperatura provavelmente persistirá como um conceito fundamental na inferência de modelos de linguagem.