Temperature es un hiperparámetro en large language models (LLMs) que controla la aleatoriedad y creatividad de outputs del modelo. Los valores de temperature van de 0 a 2, donde valores más bajos producen respuestas determinísticas y enfocadas, y valores más altos generan outputs más diversos y creativos.
Cómo funciona Temperature
Temperature escala los logits (scores de predicción no normalizados) antes de aplicar softmax para generar distribuciones de probabilidad sobre tokens de vocabulario. Temperature más baja (menor a 1.0) amplifica diferencias entre probabilidades de tokens, haciendo más probable que el modelo seleccione el token de mayor probabilidad. Temperature más alta (> 1.0) aplana la distribución de probabilidad, incrementando chances de seleccionar tokens de menor probabilidad.
Cuando temperature = 0, el modelo siempre selecciona el token más probable (greedy decoding), produciendo outputs determinísticos. Conforme temperature incrementa, el modelo explora opciones de tokens más diversas, llevando a outputs creativos pero potencialmente menos coherentes. Temperature = 1.0 usa la distribución de probabilidad original del modelo sin escalar.
Temperature afecta selección de tokens a través de todo el vocabulario. Un token con 80% de probabilidad en temperature = 0.0 podría caer a 60% en temperature = 1.0, dando más oportunidad a tokens competidores. Esta aleatoriedad permite outputs diversos de prompts idénticos.
Cuándo usar diferentes valores de Temperature
Usa temperature baja (0.0 - 0.3) cuando necesitas:
- Respuestas factuales y precisas (coding, documentación técnica)
- Outputs determinísticos para testing y debugging
- Respuestas consistentes para la misma pregunta
- Tareas de razonamiento lógico que requieren precisión
- Generación de contenido profesional (comunicaciones de negocio)
Usa temperature media (0.4 - 0.7) cuando necesitas:
- Balance entre creatividad y coherencia
- Chat y conversación de propósito general
- Creación de contenido con algo de variación
- Borradores de email y escritura de negocio
- Brainstorming balanceado
Usa temperature alta (0.8 - 1.5) cuando necesitas:
- Escritura creativa (historias, poesía, scripts)
- Brainstorming e ideación
- Generar variaciones diversas
- Contenido artístico y experimental
- Novedad y sorpresa en outputs
Usa temperature muy alta (1.5 - 2.0) cuando necesitas:
- Máxima aleatoriedad y creatividad
- Explorar edge cases y outputs inusuales
- Aplicaciones experimentales
- Brainstorming altamente divergente
Señales que necesitas ajustar Temperature
- Outputs muy repetitivos o predecibles (incrementar temperature)
- Outputs muy aleatorios o incoherentes (reducir temperature)
- Necesitas resultados consistentes para mismo prompt (usar temperature = 0)
- Bloques creativos que requieren ideas novedosas (incrementar temperature)
- Accuracy factual sufriendo de alucinación (reducir temperature)
- Testing requiere comportamiento determinístico (usar temperature = 0)
Métricas y medición
Métricas de calidad de output:
- Score de coherencia: Ratings humanos de flujo lógico y legibilidad de output (mayor a temperature baja)
- Score de creatividad: Ratings humanos de novedad y originalidad (mayor a temperature alta)
- Accuracy factual: Porcentaje de claims factuales que son correctos (mayor a temperature baja para tareas de conocimiento)
- Diversidad: Número de outputs únicos a través de múltiples generaciones (mayor a temperature alta)
Métricas de generación:
- Tasa de repetición: Porcentaje de frases o conceptos repetidos (varía por temperature)
- Perplexity: Confianza del modelo en sus outputs (menor a temperature baja)
- Distribución de probabilidad de tokens: Spread de probabilidades a través de tokens de vocabulario
Según investigación de OpenAI, temperature 0.0-0.3 es óptima para tareas de coding con 90%+ accuracy. Temperature 0.7-1.0 produce el mejor balance para AI conversacional. Escritura creativa se beneficia de temperature 0.9-1.2 para novedad mientras mantiene coherencia.
Temperature vs otros parámetros
Temperature vs. Top-p (Nucleus Sampling)
Temperature escala todas las probabilidades de tokens. Top-p trunca el vocabulario a tokens top que representan cumulativamente probabilidad p (típicamente 0.9-0.95). Usar ambos juntos: top-p filtra tokens improbables, temperature da forma a la distribución. Recomendado: top-p = 0.9, temperature = 0.7 para outputs balanceados.
Temperature vs. Top-k
Top-k restringe sampling a los top k tokens más probables. Temperature escala probabilidades. Top-k proporciona cutoff hard, temperature proporciona escalamiento soft. Top-k típicamente configurado a 40-50 para outputs diversos.
Temperature vs. Frequency/Presence Penalty
Frequency penalty reduce repetición de tokens proporcional a frecuencia. Presence penalty reduce likelihood de cualquier token ya presente. Estos abordan repetición; temperature aborda aleatoriedad. Usar juntos: temperature controla creatividad, penalties controlan repetición.
Casos de uso reales
Generación de código (Temperature 0.0 - 0.3):
- Completado de código determinístico
- Bug fixing con soluciones consistentes
- Generación de documentación de API
- Generación de unit tests
Escritura técnica (Temperature 0.2 - 0.5):
- Generación de documentación
- Posts de blog técnicos
- Artículos de base de conocimiento
- Documentación de procesos
Soporte al cliente (Temperature 0.3 - 0.6):
- Respuestas de soporte consistentes
- Generación de FAQ
- Comunicación compliant con políticas
- Mantenimiento de tono profesional
Copy de marketing (Temperature 0.6 - 0.9):
- Variaciones de copy de anuncios
- Contenido de campaña de email
- Posts de redes sociales
- Storytelling de marca
Escritura creativa (Temperature 0.8 - 1.2):
- Ficción y storytelling
- Generación de poesía
- Escritura de scripts
- Brainstorming creativo
Ideación (Temperature 1.0 - 1.5):
- Sesiones de brainstorming
- Exploración de alternativas
- Generación de variaciones
- Design thinking
Errores comunes y soluciones
Error: Usar misma temperature para todas las tareas Solución: Ajustar temperature basándose en requerimientos de tarea. Usar temperature baja para tareas factuales, alta para tareas creativas. Experimentar con diferentes valores para tu caso de uso.
Error: Temperature = 0 para tareas creativas Solución: Temperature = 0 produce outputs determinísticos, previniendo exploración creativa. Usar temperature > 0.7 para tareas creativas. Incluso temperature = 0.3 proporciona algo de variación.
Error: Temperature muy alta para contenido profesional Solución: Temperature > 1.0 produce outputs aleatorios, potencialmente incoherentes. Mantener contenido profesional a temperature menor a 0.8. Revisar outputs por calidad.
Error: No probar temperature a través de casos de uso Solución: A/B testear diferentes valores de temperature con usuarios reales. Medir calidad, satisfacción, y éxito de tarea. Optimizar temperature por caso de uso, no globalmente.
Error: Ignorar otros parámetros de sampling Solución: Temperature interactúa con top-p, top-k, y frequency/presence penalties. Ajustar parámetros juntos. Empezar con top-p = 0.9, ajustar temperature y penalties.
Error: Usar temperature para controlar longitud de output Solución: Temperature afecta aleatoriedad, no longitud de output. Usar parámetro max_tokens para control de longitud. Temperature puede indirectamente afectar longitud a través de selección de tokens.
Preguntas frecuentes
¿Cuál es la mejor temperature para coding? Usar temperature 0.0-0.3 para generación de código. Temperature más baja produce código más preciso y determinístico. Temperature 0.0 asegura outputs idénticos para mismo prompt, útil para testing. Incrementar a 0.2-0.3 para algo de variación mientras se mantiene accuracy.
¿Qué temperature usa ChatGPT? Temperature default de ChatGPT es aproximadamente 0.7-0.9 para conversación balanceada. Esto proporciona variación natural mientras mantiene coherencia. Usuarios de API pueden especificar temperature; interfaz web usa configuraciones default.
¿Temperature = 0 garantiza mismo output cada vez? Sí, temperature = 0 con misma seed produce outputs idénticos (greedy decoding). Sin embargo, diferentes API calls pueden tener variaciones ligeras debido a precisión de punto flotante. Para reproducibilidad exacta, configurar parámetro seed y temperature = 0.
¿Qué pasa si temperature es muy alta? Temperature > 1.5 produce outputs cada vez más aleatorios, potencialmente incoherentes. Los modelos pueden generar nonsense, cambiar topics inesperadamente, o producir texto gramaticalmente incorrecto. Temperature muy alta (acercándose a 2.0) degrada a selección de palabras aleatoria.
¿Cómo elijo entre temperature y top-p? Usar ambos juntos. Top-p filtra tokens improbables (típicamente top-p = 0.9). Temperature da forma a distribución de probabilidad. Para mayoría de casos de uso: top-p = 0.9, temperature = 0.7. Ajustar temperature para creatividad, top-p para control de calidad.
¿Puede temperature arreglar alucinaciones? Temperature más baja (0.0-0.3) reduce alucinaciones al favorecer tokens de alta probabilidad. Sin embargo, temperature no arregla gaps de conocimiento subyacentes. Usar RAG para fundamentación factual, temperature para control de aleatoriedad. Temperature más baja complementa, no reemplaza, verificación factual.
¿Qué temperature para JSON o output estructurado? Usar temperature 0.0-0.2 para outputs estructurados (JSON, XML, código). Temperature más alta puede producir sintaxis inválida. Combinar con parámetro response_format (donde esté disponible) para hacer cumplir estructura. Temperature más baja asegura compliance de formato.
Cómo aplica en la práctica
Temperature es un control crítico para comportamiento de output LLM. Las organizaciones ajustan temperature basándose en requerimientos de tarea, probando a través de casos de uso para optimizar calidad y creatividad.
Estrategia de implementación:
- Empezar con temperature 0.7 para chat general
- Usar temperature 0.0-0.3 para tareas factuales/técnicas
- Usar temperature 0.8-1.2 para tareas creativas
- A/B testear valores de temperature con usuarios reales
- Combinar con top-p, frequency/presence penalties
Consideraciones de producción:
- Documentar configuraciones de temperature por caso de uso
- Implementar controles de usuario para ajuste de temperature
- Monitorear calidad de output a través de configuraciones de temperature
- Establecer loops de feedback para optimización de temperature
- Considerar temperature como hiperparámetro en evaluación
Workflow de debugging:
- Si outputs muy aleatorios: reducir temperature
- Si outputs muy repetitivos: incrementar temperature
- Si errores factuales: reducir temperature + verificar con RAG
- Si no es suficientemente creativo: incrementar temperature
- Probar en extremos (0.0, 0.7, 1.2) para entender comportamiento
Temperature en Azion
Azion Functions permite inferencia LLM controlada por temperature en el edge:
- Configurar parámetro temperature en API calls de LLM desde Functions
- Ajustar temperature dinámicamente basándose en contexto de usuario y tipo de tarea
- Implementar temperature controlado por usuario para experiencias personalizadas
- Monitorear calidad de output a través de configuraciones de temperature vía Métricas en Tiempo Real
- A/B testear valores de temperature desplegados globalmente en edge
- Inferencia de baja latencia con deployment edge más cerca de usuarios
La red distribuida de Azion permite aplicaciones AI controladas por temperature con latencia mínima worldwide.
Conoce más sobre Functions y AI Inference.
Fuentes:
- OpenAI. “API Reference: Temperature.” https://platform.openai.com/docs/api-reference/completions/create#completions-create-temperature
- Anthropic. “Claude API Parameters.” https://docs.anthropic.com/claude/reference/complete
- Ackerman et al. “Controlling Language Generation with Temperature.” ACL 2020.
- Holtzman et al. “The Curious Case of Neural Text Degeneration.” ICLR 2020.