¿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

Cómo elegir un modelo de lenguaje

Después de esta lección: Puedo elegir un modelo para una tarea y explicar por qué.

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

El modelo más grande no siempre es mejor

Elegir un modelo de lenguaje es hacer coincidir un modelo con una tarea. Los factores son el coste, la velocidad, el tamaño, cuánto texto puede leer y dónde se ejecuta.

Importa porque la elección se repite en cada llamada. Un modelo diez veces más caro de lo necesario, llamado un millón de veces, es una factura enorme sin ningún beneficio.

Al final de esta lección

Nota

Puedo elegir un modelo para una tarea y explicar por qué.

Palabras clave

PalabraQué significa
Ventana de contextolo más que un modelo puede leer en una llamada
Latenciacuánto esperas la respuesta
Precio por tokenlo que cuesta cada token, a menudo por millón
Alojadoejecutado por un proveedor, al que se llega por internet
Localejecutado en tu propia máquina

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

Cinco cosas que sopesar

Parte de la tarea. Una tarea tiene un tamaño, por ejemplo cuánto texto entra y cuánto sale. Tiene una espera que una persona acepta y un presupuesto.

Después hazle cinco preguntas a cada modelo, como muestra la tabla. Un modelo que falla en una se descarta, aunque sea excelente en las demás.

Las cinco preguntas

FactorLa pregunta que hacer
Coste¿Cuánto cuestan los tokens de esta tarea?
Velocidad¿La respuesta es lo bastante rápida para una persona?
Tamaño¿Lee todo el texto de la tarea?
Calidad¿Es lo bastante bueno con mis propios ejemplos?
Lugar¿Puede el texto salir de mi máquina?

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

Mide el modelo del laboratorio en dos tareas

Comando
docker exec -w /home/node/project agent node -e 'const lab = require("./lab.js"); const asks = [ { name: "corta", max: 10, text: "Di una fruta.", sample: "Una manzana." }, { name: "larga", max: 100, text: "Describe un día de lluvia en tres frases.", sample: "La lluvia golpea el cristal. La calle está gris." }, ]; (async () => { for (const one of asks) { const started = Date.now(); const got = await lab.ask({ max_tokens: one.max, messages: [{ role: "user", content: one.text }] }, one.sample); const ms = Date.now() - started; if (got.label === "Muestra grabada") { console.log(one.name + ": Muestra grabada, sin tiempo medido."); continue; } const used = got.data.usage ? got.data.usage.completion_tokens + " tokens escritos" : "sin cifra de tokens en la respuesta"; console.log(one.name + ": Respuesta del modelo, " + ms + " ms, " + got.text.length + " caracteres, " + used + "."); } })();'

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

Calcula el coste antes de llamar

Un precio se da por cada millón de tokens: un precio para los tokens de entrada y otro, más alto, para los de salida. El coste de una llamada son dos productos. Los tokens de entrada por el precio de entrada, más los tokens de salida por el precio de salida.

Cuenta los tokens de una tarea típica, calcula una llamada y multiplica por las llamadas que esperas. La lista de precios de aquí es inventada: solo el método es real.

Calcula una tarea con tres modelos inventados

Comando
docker exec -w /home/node/project agent node -e '/* Precios inventados, en unidades por cada millón de tokens. */ const models = [ { name: "Pequeño", inPrice: 20, outPrice: 80, delay: 600, context: 8000 }, { name: "Mediano", inPrice: 100, outPrice: 400, delay: 1500, context: 32000 }, { name: "Grande", inPrice: 500, outPrice: 2000, delay: 4000, context: 128000 }, ]; const job = { inTokens: 3000, outTokens: 300, maxDelay: 2000, budget: 0.5 }; console.log("La tarea: " + job.inTokens + " tokens de entrada, " + job.outTokens + " de salida, respuesta en menos de " + job.maxDelay + " ms, presupuesto de 0,5 unidades."); for (const m of models) { const cost = (job.inTokens * m.inPrice + job.outTokens * m.outPrice) / 1000000; const ok = job.inTokens + job.outTokens <= m.context && m.delay <= job.maxDelay && cost <= job.budget; console.log(m.name.padEnd(8) + "coste " + cost.toFixed(3).replace(".", ",") + " unidades, espera " + m.delay + " ms, " + (ok ? "sirve" : "no sirve")); }'

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

Ejemplo resuelto: una tarea, tres modelos

ModeloCoste por llamadaEspera¿Sirve?
Pequeño0,084 unidades600 msSí
Mediano0,420 unidades1500 msSí
Grande2,100 unidades4000 msNo: demasiado lento y demasiado caro (presupuesto de 0,5)

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

Un error frecuente

Advertencia

Mucha gente cree que el modelo más grande es siempre el mejor. Suele ser el más lento y el más caro, y uno pequeño puede valer para una tarea sencilla. Prueba cada modelo con tus propios ejemplos y toma el más barato que supere la prueba.

Dónde se ejecuta cambia las reglas

Un modelo alojado lo ejecuta un proveedor. Envías texto por internet y pagas por token. Un modelo local corre en tu máquina: el texto se queda contigo, pero necesitas el equipo y puede ser más lento.

Una tarea con texto privado puede tener que quedarse en local. Entonces la regla es: el más barato, entre los permitidos.

Para ir más lejos: calcula tu propia tarea

Cambia la tarea del script de costes por una que construirías tú. Indica cuántos tokens entran y salen, y cuánto espera una persona. Ejecútalo.

Escribe qué modelo elegirías y qué factor decidió. Di qué probarías después antes de fiarte de esa elección.

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.