En el contexto de los modelos de lenguaje grandes, la temperatura es un hiperparámetro que controla la aleatoriedad del texto generado. Se aplica durante la fase de decodificación, después de que el modelo calcula una distribución de probabilidad sobre el siguiente token posible, pero antes de que se seleccione el token final. Al escalar los logits (las puntuaciones crudas y no normalizadas) antes de pasarlos por una función softmax, la temperatura remodela la distribución de probabilidad, haciéndola más pronunciada (determinista) o más plana (diversa). El parámetro suele ser un número de punto flotante positivo, con un valor predeterminado de 1.0 que representa la distribución nativa del modelo. Los valores por debajo de 1.0 afinan la distribución, favoreciendo tokens de alta probabilidad, mientras que los valores por encima de 1.0 la aplastan, dando a los tokens de menor probabilidad una mayor oportunidad de ser seleccionados. La temperatura es un control central en los sistemas de IA generativa, ampliamente utilizado en APIs de proveedores como OpenAI, Anthropic y Google DeepMind para ajustar resultados creativos frente a factuales.
La temperatura es conceptualmente distinta de otras estrategias de muestreo, aunque a menudo se combina con ellas. Mientras que el muestreo top-k restringe el conjunto de candidatos a los k tokens más probables y el muestreo top-p (también llamado muestreo de núcleo) selecciona del conjunto más pequeño cuya probabilidad acumulada supera un umbral, la temperatura modifica toda la distribución antes de que ocurra cualquier truncamiento. En la práctica, los desarrolladores suelen establecer la temperatura junto con top-p para equilibrar creatividad y coherencia. Por ejemplo, una temperatura baja (p. ej., 0.2) con un top-p moderado (p. ej., 0.9) es común para tareas factuales como el resumen, mientras que una temperatura alta (p. ej., 0.8) con un top-p más alto (p. ej., 0.95) se usa para escritura creativa o lluvia de ideas.
Formulación matemática
El efecto de la temperatura se define mediante una operación de escalado sobre los logits. Dados los logits del modelo \( z_i \) para cada token \( i \) en el vocabulario, la probabilidad escalada por temperatura \( p_i \) se calcula como:
\[ p_i = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)} \]
donde \( T \) es el valor de temperatura. Cuando \( T = 1 \), la expresión se reduce al softmax estándar. A medida que \( T \) se acerca a 0, la distribución converge a una masa puntual en el token con el logit más alto, haciendo efectivamente al modelo codicioso y determinista. A medida que \( T \) aumenta hacia el infinito, la distribución se aproxima a una distribución uniforme sobre todos los tokens, produciendo salidas máximamente aleatorias. En la práctica, las temperaturas rara vez se establecen por encima de 2.0 porque los valores extremos producen texto sin sentido, y los valores por debajo de 0.1 a menudo se tratan como equivalentes a la decodificación codiciosa. El escalado se aplica antes de cualquier método de muestreo, por lo que la selección final aún puede usar muestreo estocástico de la distribución modificada.
Orígenes históricos
El concepto de temperatura en modelos probabilísticos precede al aprendizaje profundo moderno. Fue introducido en la física estadística, donde la temperatura controla la nitidez de la distribución de Boltzmann. En el aprendizaje automático, el escalado de temperatura se popularizó en el contexto de las redes neuronales para calibrar puntuaciones de confianza, notablemente en el artículo de 2017 "On Calibration of Modern Neural Networks" de Chuan Guo y colegas, que usó un único parámetro de temperatura para reescalar logits y mejorar las estimaciones de incertidumbre. La idea fue rápidamente adoptada en la generación de secuencias, particularmente para modelos secuencia a secuencia y transformadores, como un control práctico para la variabilidad de salida. La adopción temprana en bibliotecas de aprendizaje automático, como TensorFlow y PyTorch, hizo de la temperatura un argumento estándar en funciones de muestreo, y se convirtió en un parámetro predeterminado en muchas interfaces de generación de texto de IA.
Papel en la inferencia de modelos de lenguaje
Durante la inferencia, un modelo de lenguaje produce una distribución de probabilidad sobre su vocabulario para cada posición en la secuencia de salida. Sin temperatura, el modelo siempre elegiría el token más probable, lo que lleva a texto repetitivo y a menudo insípido. La temperatura introduce estocasticidad, que es esencial para tareas que requieren variedad, como diálogo, generación de historias o completado de código donde existen múltiples continuaciones válidas. En los marcos de aprendizaje profundo, la temperatura se aplica en el paso de decodificación, no durante el entrenamiento, lo que significa que no afecta los pesos aprendidos del modelo. Esto la convierte en un ajuste ligero, solo en tiempo de ejecución, que puede cambiarse por solicitud sin reentrenar.
Por ejemplo, en la API de OpenAI, el parámetro temperature acepta valores de 0 a 2, con un valor predeterminado de 1.0. Un valor de 0 hace al modelo determinista, eligiendo siempre el token de mayor probabilidad, mientras que valores más altos aumentan la diversidad. De manera similar, los modelos Claude de Anthropic exponen la temperatura en su API, y los modelos Gemini de Google DeepMind la incluyen como parámetro de generación. Estos proveedores también documentan que la temperatura interactúa con otros parámetros de muestreo, como top-p y top-k, y recomiendan ajustarlos juntos en lugar de de forma aislada.
Relación con otros métodos de muestreo
La temperatura es una de varias técnicas utilizadas para dar forma a la distribución de salida. El muestreo top-k limita el siguiente token a las k opciones más probables, lo que evita que tokens de muy baja probabilidad sean elegidos incluso a temperaturas altas. El muestreo top-p selecciona dinámicamente el conjunto más pequeño de tokens cuya probabilidad acumulada supera un umbral p, ofreciendo un truncamiento más adaptativo que un k fijo. La temperatura es ortogonal a estos métodos de truncamiento: cambia la forma de la distribución, mientras que top-k y top-p cambian el soporte. En la práctica, a menudo se usan juntos. Por ejemplo, una receta común para tareas creativas es temperatura 0.7 con top-p 0.9, mientras que para generación de código, temperatura 0.2 con top-p 0.1 es típica para minimizar errores.
Otro concepto relacionado es el escalado de temperatura en el contexto de calibración de modelos, donde se aprende una única temperatura en un conjunto de validación para mejorar las estimaciones de confianza. Esto es distinto de la temperatura de muestreo usada en el tiempo de generación, aunque ambos comparten la misma operación matemática. La temperatura de calibración suele estar cerca de 1.0 y se fija después del entrenamiento, mientras que la temperatura de muestreo es un hiperparámetro controlado por el usuario.
Guías prácticas y compensaciones
Elegir la temperatura correcta depende de la aplicación. Para tareas que requieren precisión factual, como respuesta a preguntas, resumen o extracción de datos, se recomienda una temperatura baja (0.1 a 0.3) para reducir alucinaciones y producir salidas consistentes. Para escritura creativa, lluvia de ideas o generación de múltiples soluciones candidatas, una temperatura más alta (0.7 a 1.0) fomenta la novedad y la variación. Temperaturas extremadamente altas (por encima de 1.5) a menudo llevan a texto incoherente, ya que el modelo pierde estructura gramatical y coherencia semántica. Los desarrolladores también deben considerar que la temperatura afecta la reproducibilidad: establecer temperatura en 0 produce salidas deterministas, útil para pruebas y depuración, pero el muestreo estocástico a temperaturas más altas significa que el mismo prompt puede producir resultados diferentes entre ejecuciones, lo que puede ser indeseable en sistemas de producción que requieren salidas estables.
La temperatura también interactúa con la distribución de entrenamiento del modelo. Los modelos entrenados en datos diversos pueden tolerar temperaturas más altas mejor que aquellos entrenados en dominios estrechos. Por ejemplo, un modelo afinado en documentos legales podría producir texto sin sentido a temperatura 1.0, mientras que un modelo de propósito general lo maneja con gracia. A partir de principios de la década de 2020, la mayoría de los principales proveedores de modelos de lenguaje han adoptado la temperatura como parámetro estándar de API, y también está implementada en bibliotecas de código abierto como Transformers de Hugging Face, donde se pasa a funciones de generación como generate().
Implementación en software
En la práctica, la temperatura se implementa en el bucle de decodificación de un modelo de lenguaje. Después de que el pase hacia adelante del modelo produce logits, el código los divide por el valor de temperatura, aplica softmax y luego muestrea de la distribución resultante. Muchos marcos también soportan una bandera do_sample que, cuando se establece en True, habilita el muestreo estocástico con temperatura; cuando es False, el modelo usa decodificación codiciosa independientemente de la temperatura. En la biblioteca Transformers de Hugging Face, por ejemplo, el argumento temperature se usa solo cuando do_sample=True. Este diseño permite a los desarrolladores cambiar fácilmente entre modos determinista y estocástico.
Aceleradores de hardware como AWS Trainium y Groq a menudo proporcionan rutas de inferencia optimizadas, pero el escalado de temperatura es una operación aritmética simple que añade una sobrecarga insignificante. El costo computacional principal sigue siendo el pase hacia adelante del modelo, no el paso de muestreo. En consecuencia, la temperatura puede ajustarse sobre la marcha sin un impacto significativo en la latencia, lo que la convierte en una herramienta práctica para aplicaciones interactivas.
Limitaciones y críticas
La temperatura es un instrumento contundente para controlar la calidad de la salida. No garantiza coherencia ni corrección factual; solo cambia la distribución de probabilidad. Una temperatura alta puede producir declaraciones creativas pero falsas, mientras que una temperatura baja puede producir texto repetitivo o excesivamente conservador. Los investigadores han señalado que la temperatura no es un sustituto de mejores estrategias de decodificación como la búsqueda de haz o la decodificación restringida, que imponen restricciones estructurales. Además, la temperatura es un parámetro global aplicado uniformemente a todos los tokens, pero algunos contextos pueden requerir diferentes niveles de aleatoriedad - por ejemplo, ser determinista para la sintaxis de código pero creativo para comentarios. A partir de mediados de la década de 2020, se han propuesto métodos más avanzados como la búsqueda contrastiva o el ajuste dinámico de temperatura, pero ninguno ha reemplazado a la temperatura como control predeterminado en APIs comerciales.
Direcciones futuras
La investigación continúa en esquemas de temperatura adaptativa que ajustan el valor según la incertidumbre predicha del token o la tarea en cuestión. Algunos trabajos han explorado aprender un programa de temperatura durante el entrenamiento, aunque esto aún no es estándar. En el campo más amplio de la IA generativa, la temperatura sigue siendo un parámetro clave orientado al usuario, y su simplicidad es tanto su fortaleza como su debilidad. A medida que los modelos crecen en tamaño y capacidad, la necesidad de un control más fino puede llevar a nuevos parámetros, pero es probable que la temperatura persista como un concepto fundamental en la inferencia de modelos de lenguaje.