¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Temperatura y límite de tokens

Después de esta lección: Puedo decir qué cambian la temperatura, el límite de tokens y el texto de parada en una llamada a un modelo.

Lección de 60 min3 comandosLaboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

Tres ajustes que cambian una respuesta

La temperatura, el límite de tokens y el texto de parada son los tres ajustes de una llamada que más cambian la respuesta. Cada uno va en el cuerpo de la petición, junto a los mensajes.

Importan porque una llamada con los valores por defecto puede ser demasiado aleatoria para trabajar con datos, o demasiado larga para una pantalla. Conocerlos te permite elegir a propósito.

Al final de esta lección

Nota

Puedo decir qué cambian la temperatura, el límite de tokens y el texto de parada en una llamada a un modelo.

Palabras clave

PalabraQué significaEjemplo
Temperaturaun ajuste de lo variadas que son las respuestas0
Tokenun trozo pequeño de texto que el modelo lee y escribe
Límite de tokensel máximo de tokens que puede escribir una respuestamax_tokens
Texto de paradaun texto que termina la respuesta cuando el modelo lo alcanza
Motivo de finla razón por la que terminó la respuestalength

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

La temperatura fija la variedad de respuestas

Un modelo elige cada token siguiente de una lista de tokens probables. Una temperatura baja toma casi siempre el más probable. Una temperatura alta deja entrar tokens menos probables.

Elige un valor bajo, cercano a 0, para un trabajo con una única respuesta, como sacar una fecha de un texto. Elige un valor más alto para ideas o nombres.

Ejemplo resuelto: la temperatura de tres tareas

TareaTemperaturaPor qué
Sacar un número de pedido de un correo0Solo hay una respuesta correcta
Responder a la pregunta de un cliente0.7Natural, pero sin exceso
Proponer diez nombres para una tienda1.2Quieres variedad

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Pregunta tres veces con dos temperaturas

Comando
docker exec -w /home/node/project agent node -e 'const lab = require("./lab.js"); const question = [{ role: "user", content: "Propón un nombre para un pez dorado. Responde con una sola palabra." }]; const samples = { 0: ["Burbuja", "Burbuja", "Burbuja"], 1.2: ["Nemo", "Capitán Salpicón", "Burbuja"] }; (async () => { for (const temperature of [0, 1.2]) { const found = []; let label = ""; for (let i = 0; i < 3; i++) { const got = await lab.ask({ max_tokens: 8, temperature: temperature, messages: question }, samples[temperature][i]); found.push(got.text.trim()); label = got.label; } console.log("temperatura " + temperature + " (" + label + "): " + found.join(" | ")); } })();'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

El límite de tokens es un tope estricto

Un token es un trozo pequeño de texto, a menudo una palabra corta o parte de una larga. max_tokens es el máximo de tokens que el modelo puede escribir. Cuando se alcanza, la respuesta se detiene, incluso a mitad de frase.

La respuesta lleva un motivo de fin. La palabra stop significa que el modelo terminó. La palabra length significa que el tope la cortó.

Corta una respuesta a propósito

Comando
docker exec -w /home/node/project agent node -e 'const lab = require("./lab.js"); const question = [{ role: "user", content: "Explica qué es una API en dos frases." }]; const sample = { short: "Una API es una forma de que un programa pida", long: "Una API es un conjunto de reglas que permite a un programa pedir algo a otro. Quien llama envía una petición y recibe una respuesta." }; (async () => { for (const limit of [12, 80]) { const got = await lab.ask({ max_tokens: limit, messages: question }, limit === 12 ? sample.short : sample.long); const why = got.data ? got.data.choices[0].finish_reason : (limit === 12 ? "length" : "stop"); console.log("max_tokens " + limit + " (" + got.label + "), finish_reason " + why + ":"); console.log("  " + got.text.trim()); } })();'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que un max_tokens pequeño hace que el modelo escriba más corto. No: corta la respuesta, a menudo a mitad de frase. Para una respuesta más corta, pídela en la instrucción. Deja el tope como medida de seguridad, por encima de lo que esperas.

El texto de parada termina antes la respuesta

Un texto de parada es un texto que eliges tú. Cuando el modelo va a escribirlo, la respuesta termina en su lugar, y el propio texto de parada no aparece en ella.

Úsalo para mantener una respuesta en una línea o en un elemento de lista. La mayoría de las API de modelos admiten varios textos de parada a la vez.

Detén una lista antes del punto tres

Comando
docker exec -w /home/node/project agent node -e 'const lab = require("./lab.js"); const question = [{ role: "user", content: "Escribe los números del uno al cinco en letras, uno por línea, cada línea empezando por 1. 2. 3. y así hasta el final." }]; (async () => { const got = await lab.ask({ max_tokens: 60, stop: ["3."], messages: question }, "1. uno\n2. dos\n"); console.log("Respuesta (" + got.label + "): " + JSON.stringify(got.text)); console.log("¿Contiene 3.? " + got.text.includes("3.")); })();'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Para ir más lejos: prueba tus ajustes

En el Run de la longitud, cambia la pregunta por una tuya y prueba un max_tokens de 5, de 30 y de 200. Anota cada vez el motivo de fin.

Después di qué valor pondrías en un programa real. Di también por qué un tope demasiado pequeño cuesta más que uno demasiado grande.

Sobre este laboratorio y su código: Laboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.