¿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

¿Alojar un modelo o alquilarlo?

Después de esta lección: Puedo decidir si ejecutar un modelo por mi cuenta.

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

Tener el equipo o pagar por llamada

Alojar un modelo es ejecutarlo en equipos que cuidas tú. Alquilar es pagar a otra empresa por cada llamada. Cada opción tiene un coste que sube de forma distinta.

Importa porque la opción más barata cambia con el número de llamadas. Una cuenta te dice dónde está la frontera, y una lista te dice lo que la cuenta olvidó.

Al final de esta lección

Nota

Puedo decidir si ejecutar un modelo por mi cuenta.

Palabras clave

PalabraQué significa
Alojarejecutar el modelo en equipos propios
Alquilarpagar a otra empresa por cada llamada
Punto de equilibrioel volumen en que dos costes se igualan
Capacidadlas llamadas que un equipo atiende al mes
Caídaun periodo en que el servicio no funciona

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

Dos costes que suben de forma distinta

Alquilar cuesta lo mismo por cada llamada, así que sube en línea recta. Alojar es un coste escalonado: cada equipo atiende un número fijo de llamadas y pagas un equipo entero cada vez. Pagas también al personal que lo cuida.

El punto de equilibrio es el volumen en que los dos costes se igualan. Por encima de él, alojar sale más barato.

Precios inventados, euros al mes

Llamadas al mesAlquilarAlojar
300 0009002400
1 000 00030003300
1 200 00036003300
2 000 00060005100

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

Lo que la cuenta deja fuera

Una cuenta de precios no es una decisión. Deja fuera la caída cuando el equipo falla de noche. Deja fuera el tiempo de actualizar el programa y el equipo que está parado. Deja fuera también el coste de un error con datos privados.

Deja fuera además el otro lado: puede que unos datos no puedan salir de tu edificio, y entonces alquilar no se permite a ningún precio.

Un error frecuente

Advertencia

Mucha gente cree que, cuando el equipo es suyo, cada llamada sale gratis. El equipo, el personal y las caídas se siguen pagando cada mes. Calcula el punto de equilibrio con los escalones y el personal incluidos, y lista después lo que aún queda fuera.

Escribe el ayudante del modelo, parte 1

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const base = process.env.AI_URL || \"http://ai:4000\";' '// Los tokens de una respuesta, o null si no trae ninguno.' 'function count(data, name) {' '  return data.usage && typeof data.usage[name] === \"number\" ? data.usage[name] : null;' '}' > model.js"

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

Escribe el ayudante del modelo, parte 2

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function ask(messages, sample, max) {' '  try {' '    const res = await fetch(base + \"/v1/chat/completions\", {' '      method: \"POST\",' '      headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' '      body: JSON.stringify({ model: \"lab\", messages: messages, max_tokens: max || 100 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"estado \" + res.status);' '    const d = await res.json();' '    return { text: d.choices[0].message.content, inTokens: count(d, \"prompt_tokens\"), outTokens: count(d, \"completion_tokens\"), recorded: false };' '  } catch (error) {' '    console.log(\"Muestra grabada: ningún modelo respondió (\" + error.message + \").\");' '    return { text: sample, inTokens: null, outTokens: null, recorded: true };' '  }' '}' 'module.exports = { ask };' >> model.js"

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

Escribe la cuenta de costes, parte 1

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { ask } = require(\"./model\");' 'const price = 3;' 'const machine = 900;' 'const capacity = 600000;' 'const people = 1500;' 'function rent(calls) {' '  return Math.floor(calls * price / 1000);' '}' 'function host(calls) {' '  return Math.ceil(calls / capacity) * machine + people;' '}' > host.js"

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

Escribe la cuenta de costes, parte 2

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  console.log(\"llamadas al mes | alquilar | alojar | sale mejor\");' '  for (const calls of [300000, 600000, 1000000, 1200000, 2000000]) {' '    const pick = host(calls) < rent(calls) ? \"alojar\" : \"alquilar\";' '    console.log(calls + \" | \" + rent(calls) + \" | \" + host(calls) + \" | \" + pick);' '  }' '  console.log(\"equilibrio simple: \" + Math.ceil((machine + people) * 1000 / price) + \" llamadas\");' >> host.js"

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

Escribe la cuenta de costes, parte 3

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' '  const q = \"En una frase corta, nombra un coste de ejecutar tu propio modelo que el precio por llamada no incluye.\";' '  const sample = \"Alguien tiene que estar de guardia cuando falla el equipo, y su tiempo no está en el precio por llamada.\";' '  const reply = await ask([{ role: \"user\", content: q }], sample, 60);' '  console.log(\"el modelo dijo: \" + reply.text);' '}' 'main();' >> host.js"

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

Ejecuta la cuenta de costes

Comando
docker exec -w /home/node/project agent node host.js

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

Qué imprime el Run

LíneaQué muestra
300000 | 900 | 2400 | alquilarCon poco volumen gana alquilar
1000000 | 3000 | 3300 | alquilarSe compra el segundo equipo y alojar da un salto
1200000 | 3600 | 3300 | alojarAhora gana alojar
equilibrio simple: 800000 llamadasDemasiado pronto: ignora los escalones
el modelo dijo: ...Una frase. Las palabras cambian en cada ejecución

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

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.