Temperatura = 0. Desactivar la creatividad de los modelos de lenguaje para obtener mejores respuestas.

Los modelos de lenguaje pueden tener muchos parámetros diferentes, sin embargo hay uno que todos comparten. La temperatura.

Sin usar matemáticas podríamos definir la temperatura como un indicador de lo «creativo» que es un modelo a la hora de responder. A mayor temperatura mayor creatividad. Generalmente se mantiene en valores entre 0 y 1 ya que valores superiores hacen que las respuestas pierdan coherencia y sentido.

Desde un punto de vista más técnico y matemático, un modelo de lenguaje no genera palabras, sino una especie de pesos asignados a cada token (si no sabes que es un token piénsalo como si fuera una palabra). A mayor peso más adecuado es ese token para completar la frase. Pero ahora hay que pasar esos tokens a probabilidades y elegir uno en base a estas probabilidades. Para convertir estos «pesos» a probabilidad se usa la función softmax con temperatura.

Al aumentar la temperatura las probabilidades entre diferentes tokens se reparten de forma más uniforme y se reduce la distancia entre ellas. Esto hace que sea más probable que se elijan otros tokens. Cuando la temperatura se reduce los tokens de mayor peso concentran mayor probabilidades. Sin embargo cuando la temperatura es 0 el token de mayor peso acumula el 100% de la probabilidades.

Sin embargo, no siempre queremos esta creatividad. En mi caso, encontré problemas con la generación de código por parte de un modelo de lenguaje, a veces le daba por improvisar y usar nombres «muy creativos» para variables o funciones. Y si, es cierto que programar es una actividad creativa…pero no precisamente en su sintaxis. Al contrario suele ser muy estricta siguiendo normas muy claras. Eso te ahorra tiempo y esfuerzo de buscar como se llama cierta función. Si quiere recuperar el valor de la variable limite llama a la función getLimite. Si, usando su creatividad, la IA la ha llamado getLim voy a tener problemas y confusiones. Para resolver esto baje la temperatura a 0 y aumentó la fiabilidad del código generado.

Y es que nos hemos acostumbrado a usar los modelos de lenguaje para «conversar» con ellos, sin embargo, hay casos como la generación de código o de textos con sintaxis o estructuras muy estrictas donde la creatividad puede ser un problema.

Puedes ver una explicación más completa en el siguiente vídeo de mi canal:

Haz click para ver en Youtube