Temperatura y Top_p en el Playground
Comparar cómo temperature, top_p y frequency_penalty cambian la salida de un modelo real, y separar lo que es efecto del muestreo de lo que es un hábito aprendido del modelo.
Producto: Auriculares inalámbricos Sony WH-1000XM5
Modelo: Qwen3-14B, local vía LM Studio
Prompt: descripción persuasiva de e-commerce, 100-150 palabras, público profesional en oficinas ruidosas, tono profesional-cercano.
Similitud: muy alta — la frase de apertura es prácticamente idéntica entre la Ejecución 1 y la 3.
Estructura: las tres siguen el mismo orden de contenido (ruido → batería/carga → Bluetooth → controles → cierre inspiracional).
Tic del modelo: las tres ejecuciones añaden un comentario meta no solicitado al final — pero con una sorpresa: dos usan la etiqueta "Nota:" y la tercera usa "Tono:" / "Destacado:". Incluso a temperature 0.1, hubo un punto de la generación donde dos o tres tokens candidatos debían tener probabilidad muy similar entre sí, y "ganó" uno distinto en esa ejecución.
// lectura: temperature baja hace muy probable repetir el mismo patrón, pero no lo garantiza al 100% — es una garantía estadística, no absoluta.Similitud: el contenido (ruido, batería, carga, Bluetooth) se mantiene estable en las tres, pero la redacción varía mucho más que en A — cambia cómo lo dice, no qué dice.
Cierre forzado: sí, en la Ejecución 3 — mezcla "el alivio en el último minuto" con "¿Listo para transformar el ruido en productividad?" en el mismo párrafo, un salto de registro que suena a copy sobreescrito.
Tic del modelo: la "Nota:" desaparece por completo. En su lugar, las tres arrancan con un titular/eslogan no solicitado ("Tu escudo contra el ruido...", "Tu aliado silencioso en medio del caos...").
// a top_p=1.0 con temperature alta, la cola de tokens improbables gana peso — la "Nota:" deja de ser la continuación más probable, así que puede que no se muestree.Estructura: estable en las tres, igual que en A (una ejecución añade una mención extra sobre comodidad — variación menor).
Cierre-eslogan: reaparece en 2 de 3, y con una plantilla casi calcada entre ellas:
"¡Haz de tu oficina un refugio de enfoque y eficiencia!" — Exec 2
La Exec 3 rompe el patrón con un cierre sobrio: "Tu productividad, sin distracciones."
Longitud: las tres dentro de 100-150 palabras.
| Test A (0.1/1.0/0) | Test B (1.2/1.0/0) | Test C (0.7/0.8/0) | |
|---|---|---|---|
| Similitud entre ejecuciones | Muy alta — frase casi idéntica | Baja en redacción, estructura estable | Intermedia — cuerpo estable, cierre variable |
| Vocabulario | Repetido, poco variado | Variado, algo arriesgado | Punto medio |
| ¿Suena forzado? | No | Sí (cierre Exec 3) | Ocasional, menos que B |
| Tic del modelo | "Nota:" de autoanálisis en las 3 | Desaparece; titular/eslogan no pedido | Cierre-eslogan en 2 de 3 |
- Temperature 0.7
- creatividad controlada sin arriesgar que el modelo invente especificaciones del producto (alucinación).
- Top_p 0.8
- recorta la cola de tokens menos probables para evitar cierres tan forzados como los de Test B, sin perder toda la variedad léxica.
- Freq. penalty 0.0
- en un texto de <150 palabras, forzar sinónimos para evitar repetir una palabra suena más artificial que dejarla repetir de forma natural.
El cierre-eslogan no pedido apareció en los tres tests — a 0.1, a 0.7 y a 1.2. Si dependiera de temperature, debería haber desaparecido casi del todo en el test más determinista, y no fue así. Es la prueba de que es un hábito aprendido en el fine-tuning/RLHF, con probabilidad alta en la distribución del modelo — temperature solo controla cuánto te alejas del token más probable, no qué patrones existen.
"Poco probable" no es "cero": a escala de producción (p. ej. las 2.000 reuniones/mes del Ejercicio 1), un evento del 1% son ~100 outputs al mes con el problema colándose igual. La mitigación combina dos capas complementarias — instrucción explícita en el prompt (cubre variaciones de fraseo, pero depende de que el prompt se mantenga) y stop-sequence (garantía dura, pero solo detecta una cadena literal exacta — si el modelo frasea "Resumen:" en vez de "Nota:", no lo detiene). Ninguna sustituye a la otra.
¿Qué cambia temperature realmente: el contenido que el modelo puede generar, o la forma en que se muestrea el siguiente token?
Cambia cómo se muestrea el siguiente token (redistribuye la probabilidad entre las opciones existentes) — no decide qué contenido existe en la distribución. Por eso un hábito muy reforzado en fine-tuning puede seguir apareciendo incluso a temperature muy baja.
Al bajar top_p de 1.0 a 0.8, ¿amplías o recortas las opciones de tokens disponibles?
Las recortas — cortas la "cola" de tokens menos probables, dejando solo los que juntos suman el 80% de probabilidad más alta. Bajar top_p es más conservador, no más creativo.
Si un comportamiento del modelo aparece igual a temperature 0.1, 0.7 y 1.2, ¿qué te dice eso sobre su origen?
Que es un hábito aprendido durante el fine-tuning/RLHF, no un efecto de los parámetros de muestreo — hay que corregirlo a nivel de prompt o con un stop-sequence, no ajustando temperature/top_p.
¿Por qué conviene combinar instrucción explícita en el prompt Y un stop-sequence, en vez de confiar solo en uno de los dos?
Son defensas complementarias: el prompt cubre variaciones de fraseo pero puede perderse si nadie lo mantiene; el stop-sequence da una garantía dura pero solo detecta una cadena literal exacta. Juntos cubren más casos que cualquiera por separado (defensa en profundidad).