Volver al archivo
#ai#llm#glossary#aigen

Temperatura

El modelo suele elegir continuaciones parecidas y quieres regular la diversidad del muestreo. No cambias sus conocimientos ni sus pesos. Solo cambias cuánto influye la ventaja de los candidatos mejor puntuados en sus probabilidades.

Temperature es un parámetro que divide las puntuaciones de los candidatos, llamadas logits, antes de convertirlas mediante Softmax. Un valor positivo menor concentra la probabilidad en los primeros candidatos; uno mayor iguala las probabilidades.

En un ejemplo ilustrativo de dos candidatos, las probabilidades del 80% y el 20% con T=1 pasan a aproximadamente el 67% y el 33% con T=2. El segundo puede salir sorteado más a menudo, aunque siga en segundo lugar. Una temperatura positiva no cambia el orden de las puntuaciones fijadas.

Por eso, elegir únicamente el máximo, sin sortear, no cambia el ganador. La temperatura tampoco mide la creatividad ni la veracidad: aumenta la diversidad de los intentos, que puede producir tanto respuestas interesantes como desacertadas. La demostración muestra únicamente el cambio de las proporciones.

Mecanismo y detalles

pi(T)=exp⁡(zi/T)∑j=1nexp⁡(zj/T)p_i(T)=\frac{\exp(z_i/T)}{\sum_{j=1}^{n}\exp(z_j/T)}

ziz_i representa el logit del candidato ii, y nn el número de candidatos. Para T=1T=1 obtenemos el Softmax habitual. Un TT positivo menor refuerza la ventaja de los logits más altos, mientras que uno mayor aplana la distribución. Hinton, Vinyals y Dean, Distilling the Knowledge in a Neural Network, §2 presentan esta fórmula en el contexto del aprendizaje mediante destilación.

Ejemplo con dos candidatos

Tomemos los logits [ln⁡4;0][\ln 4;0]. Con T=1T=1, las probabilidades son [0,8;0,2][0{,}8;0{,}2]. Al aumentar TT a 2 obtenemos [2/3;1/3][2/3;1/3]. El segundo candidato tiene más posibilidades de salir en el muestreo, aunque sigue ocupando el segundo puesto. Es un ejemplo de cálculo propio.

En el modelado autorregresivo del lenguaje, este escalado se puede aplicar en cada paso de generación, después de que la cabeza del modelo de lenguaje calcule los logits. La documentación de Transformers: TemperatureLogitsWarper describe este mecanismo para el muestreo y señala que, en generate, requiere do_sample=True.

Para unos logits dados, dividirlos por un TT positivo mantiene su orden. Por tanto, elegir únicamente el máximo, sin muestrear, señalará el mismo candidato. La fórmula no está definida para T=0T=0; no debe sustituirse el denominador por cero.

Cambiar la temperatura durante la generación no entrena pesos nuevos ni comprueba la veracidad de lo dicho. Controla las probabilidades de la siguiente elección, por lo que una mayor diversidad de respuestas no demuestra por sí sola su calidad.