Para entender la temperature, necesitas saber que sucede justo antes de que un modelo produzca un token. El modelo produce un vector de puntuaciones crudas (llamadas logits) — una puntuación por cada token en su vocabulario, que podría tener de 32,000 a 128,000 entradas. Estos logits se dividen por el valor de temperature y se pasan por una función softmax, que los convierte en una distribución de probabilidad. Cuando la temperature es 1.0, el softmax opera sobre los logits crudos tal cual. Cuando la temperature es 0.5, los logits se duplican efectivamente antes del softmax, lo que hace la distribución de probabilidad más aguda — el token más probable obtiene una porción aun mayor de la probabilidad. Cuando la temperature es 2.0, los logits se reducen a la mitad, lo que aplana la distribución y le da a los tokens menos probables una mejor oportunidad de ser seleccionados.
Temperature 0 es un caso especial que la mayoría de los proveedores de API implementan como decodificación greedy — siempre elegir el token con mayor probabilidad, sin muestreo involucrado. Esto hace la salida determinista (o casi; algunos proveedores agregan ruido minusculo de punto flotante). Es la opción correcta cuando quieres resultados reproducibles: extracción de datos estructurados, tareas de clasificación, preguntas y respuestas factuales, o cualquier cosa donde la "creatividad" es un problema. Un patrón común en producción es usar temperature 0 para todos los pipelines automatizados y reservar temperatures más altas para funcionalidades creativas orientadas al usuario.
La temperature interactua con otro parámetro de muestreo llamado top-p (muestreo por núcleo) de formas que confunden a la gente. Top-p limita la selección de tokens al conjunto más pequeño de tokens cuya probabilidad acumulada supera el umbral p. Establecer temperature en 0.7 con top-p en 0.9 es diferente de temperature 1.0 con top-p en 0.7, aunque ambos buscan "aleatoriedad moderada". La mayoría de los profesionales recomiendan ajustar uno u otro, no ambos simultáneamente, porque la interacción es difícil de razonar. La API de Anthropic tiene como valor predeterminado temperature 1.0 con top-p 1.0 para Claude. OpenAI tiene como predeterminado temperature 1.0 con top-p 1.0 para los modelos GPT. Si estas ajustando ambos a la vez, probablemente estas complicando las cosas de más.
La temperature correcta depende de la tarea, y el consejo de "0.7 es bueno para todo" es una simplificación excesiva. Para generación de código, la mayoría de los desarrolladores encuentran que 0–0.3 produce los resultados más confiables. Para asistentes conversacionales, 0.5–0.8 da variedad que suena natural sin descarrilarse. Para escritura creativa, lluvia de ideas o generar opciones diversas, 0.9–1.2 funciona bien. Ir por encima de 1.5 produce salidas cada vez más incoherentes que rara vez son útiles en la práctica. Algunos modelos soportan temperatures por encima de 2.0 técnicamente, pero la calidad de la salida se degrada rápido — empieza a parecerse a una sopa de tokens aleatorios en lugar de texto creativo.
Un punto sutil pero importante: la temperature afecta la aleatoriedad a nivel de token, no la creatividad a nivel de ideas. Una temperature más alta no hace que el modelo "piense de forma más creativa" en ningún sentido significativo — lo hace más propenso a elegir palabras inesperadas. A veces eso produce combinaciones genuinamente novedosas. Otras veces solo produce errores gramaticales, non sequiturs o alucinaciones. Si quieres enfoques genuinamente diferentes a un problema, frecuentemente es mejor ejecutar el mismo prompt múltiples veces a temperature moderada (digamos 0.8) y comparar los resultados, que subir la temperature a 1.5 y esperar lo mejor. Este es el principio detrás de técnicas como auto-consistencia y muestreo best-of-N, que usan temperature moderada con múltiples muestras para obtener tanto diversidad como calidad.