La temperatura es un hiperparámetro utilizado en los modelos de lenguaje grandes para controlar la aleatoriedad de la salida del modelo durante la generación de texto. Es un factor de escala aplicado a los logits (las puntuaciones crudas y no normalizadas) producidos por la capa final del modelo antes de que la función softmax los convierta en una distribución de probabilidad sobre el vocabulario. Al ajustar la temperatura, los desarrolladores y usuarios pueden influir en el equilibrio entre creatividad y previsibilidad en el texto generado.
El concepto se origina en la mecánica estadística, donde la temperatura gobierna la entropía de un sistema. En el aprendizaje automático, la temperatura se introdujo como una modificación de la función softmax, a veces llamada 'temperatura softmax', para afilar o aplanar la distribución de salida. Una temperatura de 1.0 deja la distribución sin cambios. Los valores mayores que 1.0 aumentan la entropía, haciendo que la distribución sea más uniforme y, por tanto, más aleatoria. Los valores menores que 1.0 disminuyen la entropía, haciendo que la distribución sea más pronunciada y, por tanto, más determinista. Una temperatura de 0.0 (o cercana a cero) selecciona efectivamente el token con mayor probabilidad, lo que resulta en un decodificado voraz.
La temperatura es una de varias estrategias de muestreo utilizadas en la inferencia de LLM, junto con el muestreo top-k y el muestreo de núcleo (top-p). Estos métodos se utilizan a menudo juntos para controlar la calidad y diversidad del texto generado. En la práctica, la temperatura se establece según la aplicación deseada: temperaturas más bajas para tareas que requieren precisión factual o generación de código, y temperaturas más altas para escritura creativa o lluvia de ideas.
Papel en la Inferencia de LLM
Durante la inferencia, un LLM predice el siguiente token calculando una distribución de probabilidad sobre todo su vocabulario. El parámetro de temperatura modifica esta distribución antes del muestreo. Para un conjunto dado de logits z, la probabilidad del token i se calcula como softmax(z_i / T), donde T es la temperatura. Cuando T es baja, las diferencias entre los logits se amplifican, haciendo que el token más probable domine. Cuando T es alta, las diferencias se disminuyen, dando a los tokens menos probables una mayor oportunidad de ser seleccionados.
Este mecanismo permite que un solo modelo produzca salidas variadas para el mismo prompt. Por ejemplo, una temperatura de 0.2 podría usarse para un chatbot de atención al cliente para garantizar respuestas consistentes y fiables, mientras que una temperatura de 0.8 podría usarse para un asistente de escritura creativa para generar prosa más imaginativa. Muchas APIs de LLM, como las de OpenAI, Anthropic y Google DeepMind, exponen la temperatura como un parámetro configurable.
Efecto en la Calidad de la Salida
La temperatura tiene un impacto directo en la calidad y coherencia del texto generado. Las temperaturas bajas tienden a producir salidas repetitivas y seguras, pero también pueden llevar a un 'colapso de modo' donde el modelo se queda atascado en un bucle. Las temperaturas altas pueden introducir errores gramaticales, inconsistencias lógicas o contenido sin sentido, ya que el modelo puede seleccionar tokens improbables. Encontrar la temperatura óptima a menudo requiere experimentación y depende de la tarea y el modelo específicos.
La investigación y la experiencia práctica han demostrado que las temperaturas moderadas (por ejemplo, 0.7 a 0.9) a menudo logran un buen equilibrio para la generación de texto de propósito general. Sin embargo, para tareas como la generación de código, se recomiendan temperaturas más bajas (por ejemplo, 0.1 a 0.3) para reducir errores de sintaxis y mejorar la corrección. Por el contrario, para tareas como la generación de historias o el diálogo, temperaturas más altas pueden producir respuestas más atractivas y variadas.
Relación con Otros Métodos de Muestreo
La temperatura se utiliza a menudo junto con otras técnicas de muestreo. El muestreo top-k restringe el grupo de muestreo a los k tokens siguientes más probables, mientras que el muestreo de núcleo (top-p) selecciona del conjunto más pequeño de tokens cuya probabilidad acumulada supera un umbral p. Estos métodos pueden combinarse con la temperatura para controlar aún más la aleatoriedad. Por ejemplo, un modelo podría usar temperatura 0.8 con top-p 0.9, lo que significa que la temperatura se aplica primero, y luego el filtro de núcleo selecciona los tokens más probables que juntos representan el 90% de la masa de probabilidad.
En algunas implementaciones, la temperatura se aplica antes del filtrado top-k o top-p, mientras que en otras se aplica después. El orden exacto puede afectar la distribución resultante, pero el principio general permanece: la temperatura ajusta la aleatoriedad general, mientras que top-k y top-p se centran en los tokens más probables.
Consideraciones Prácticas
Al implementar LLMs en producción, la temperatura es un parámetro crítico a ajustar. Afecta no solo la calidad de las salidas, sino también el costo y la latencia, ya que temperaturas más altas pueden llevar a una generación más larga si el modelo explora caminos más diversos. Algunos marcos de trabajo, como la biblioteca Hugging Face Transformers, proporcionan soporte integrado para la temperatura y otros parámetros de muestreo.
La temperatura también es relevante en el ajuste fino y el aprendizaje por refuerzo. Durante el entrenamiento, una técnica llamada destilación de conocimiento utiliza una temperatura para suavizar las distribuciones de salida de un modelo profesor, permitiendo que un modelo estudiante aprenda de las salidas probabilísticas del profesor. En este contexto, la temperatura se utiliza para controlar la 'suavidad' de las etiquetas, lo que puede mejorar la generalización del estudiante.
Contexto Histórico
El uso de la temperatura en funciones softmax precede a los LLM modernos. Se introdujo en el contexto de las redes neuronales en los años 1980 y 1990, notablemente por investigadores como Geoffrey Hinton y otros que trabajaban en máquinas de Boltzmann y entrenamiento de redes neuronales. El concepto fue adoptado posteriormente en modelos de secuencia a secuencia y eventualmente se convirtió en una característica estándar en los LLM basados en transformadores. A partir de principios de la década de 2020, la temperatura es un parámetro omnipresente en las APIs de LLM y las implementaciones de código abierto.
Véase También
- Top-P (Nucleus) Sampling
- Top-K Sampling
- softmax
- logits