Clasificar costó 44 céntimos. Transcribir, cero. Juntas, las cifras de un proyecto así cambian bastante la idea de dónde está el gasto.
Cómo se cobra
Las APIs de modelos no cobran por llamada, cobran por token: los trozos en los que el modelo parte el texto, de unos tres cuartos de palabra de media en español. Se cuentan por separado los de entrada — todo lo que le mandas, instrucciones incluidas — y los de salida, que es lo que responde. La salida cuesta bastante más que la entrada.
De ahí salen dos consecuencias muy prácticas:
- El prompt del sistema se paga en cada llamada. Es la razón de fondo de la decisión de la etapa 7: mandar lotes de 25 frases en vez de una llamada por frase no era solo ahorrar latencia, era no pagar 63 copias de las mismas instrucciones.
- Pedir menos salida es la palanca más directa. Un veredicto de una palabra con un motivo de una línea cuesta una fracción de lo que cuesta un párrafo razonando en voz alta.
En qué se va el dinero
| Trabajo | Volumen | Coste |
|---|---|---|
| Transcribir con Whisper en local | 36,7 h de audio | 0 $, y 6 h de máquina desatendida |
| Clasificar el conjunto de referencia | 63 frases | 0,44 $ |
| Segmentar el corpus | ~400.000 palabras | ~13 $ |
Esa tabla dice una cosa concreta y solo esa: ejecutar el pipeline entero cuesta menos de veinte dólares. No dice lo que cuesta construirlo.
Lo que no aparece ahí es el diseño, la depuración y las mediciones, que son de largo la partida más grande. Aquí salieron de un agente trabajando junto a una persona durante sesiones largas, sobre una suscripción que no figura en ninguna factura de API — son productos distintos, como se explica un poco más abajo. Hacer esto sin un agente cuesta los mismos dólares de pipeline y bastantes más horas propias; hacerlo con uno, la suscripción además.
Conviene tenerlo claro antes de comparar cifras con nadie: la factura de la API es la parte pequeña y visible de lo que cuesta un proyecto así, y saber qué parte estás mirando es lo que hace que el número sirva para algo.
Dentro ya de esa parte visible, dos observaciones. Una, que el trabajo pesado en dinero y el trabajo pesado en tiempo no son el mismo: Whisper no cuesta un céntimo y se lleva seis horas de máquina, mientras que segmentar cuesta trece dólares y se resuelve mientras haces otra cosa.
Y dos: los 0,44 $ son el coste de desarrollar el clasificador y los 13 $ el de ejecutarlo sobre todo el corpus. Esa proporción no es casualidad, es el diseño.
El modelo caro salió peor
La única comparación que se hizo en este proyecto está en la etapa 7, y salió al revés de lo que se esperaba:
| Modelo | Acuerdo con la referencia | Coste |
|---|---|---|
| Sonnet 5 | 78% | 0,10 $ |
| Opus 5 | 71% | 0,21 $ |
El doble de precio para acertar menos. Y lo que después subió el acierto al 100% no fue cambiar de modelo: fue mandarle el contexto que le faltaba y quitar del prompt una instrucción mal escrita.
No es que el modelo grande sea peor — es que el modelo casi nunca es la variable que hay que tocar primero. Antes están los datos que le mandas y las instrucciones que le das, y las dos salen gratis de arreglar. Empieza por el barato, mide, y sube de modelo solo cuando tengas una medición que diga que el problema es ese.
Media tarifa por esperar
Casi todas las APIs de modelos tienen una modalidad por lotes — la Batch API — donde mandas el trabajo entero de golpe y la respuesta llega cuando llega, dentro de un plazo de horas en vez de segundos. A cambio, cuesta la mitad.
La pregunta para decidir si te sirve es siempre la misma: ¿hay alguien esperando delante de una pantalla? La latencia —lo que tarda una respuesta en llegar— solo importa cuando la respuesta la está esperando una persona.
| Trabajo | ¿Alguien esperando? | Lotes |
|---|---|---|
| Segmentar 400.000 palabras | No, es trabajo de fondo | Sí, a mitad de precio |
| Generar las paráfrasis del corpus | No, se hace una vez | Sí, a mitad de precio |
| Traducir lo que acaba de escribir un usuario | Sí, y mirando | No |
Los dos trabajos grandes que quedan por delante caen del lado barato. No es una optimización que dejar para luego: es la mitad de la factura de las dos etapas más caras del proyecto.
Lo que más ahorra no es elegir modelo
El clasificador de la etapa 7 se construyó contra 63 frases. No por comodidad: porque 63 son pocas para poder comprobar cada respuesta a mano.
Mira lo que eso compra. Cada vuelta de tuerca —cambiar el prompt, meter contexto, probar el otro modelo— costaba céntimos y quince minutos de revisión. Desarrollarlo directamente contra el corpus entero habría costado unos 13 $ por intento, habría tardado horas, y sobre todo no habrías sabido si había mejorado, porque nadie revisa 400.000 palabras a mano.
Ese es el ahorro grande, y no aparece en ninguna tabla de precios:
Trabaja siempre sobre un trozo tan pequeño que puedas verificarlo entero tú mismo. Itera ahí, donde equivocarse cuesta céntimos. Suelta el proceso sobre el volumen completo solo cuando la medición te convenza.
Es a la vez lo más barato y lo único que te deja afirmar que funciona. Al revés —construir sobre el conjunto grande y confiar en que va bien— es caro y además no se puede comprobar.
Epílogo: el modelo barato, medido en serio
Semanas después, con la app funcionando, el dueño del proyecto lo planteó de nuevo: usemos el modelo más barato que haya. Haiku 4.5 cuesta la mitad por token que Sonnet 5, 1 $ por millón de entrada frente a 2, y 5 de salida frente a 10.
Para entonces había cuatro pruebas automáticas, así que la pregunta se podía contestar en veinte minutos:
| Medida | Sonnet 5 | Haiku 4.5 |
|---|---|---|
| Fidelidad al texto | 69 % | 78 % |
| Palabras distintas | 241 | 276 |
| Parecido entre dos traducciones | 1,3 % | 2,3 % |
| Coletillas atragantadas | 0 % | 0 % |
| Longitud de una frase | ×3,4 | ×4,1 |
| Solapamiento | +6,6 | +5,6 |
Haiku no era peor. Ganaba en fidelidad y vocabulario. Y sin embargo ninguna de esas cuatro medidas contesta a la única pregunta que importa aquí: si sigue sonando a Perico.
Así que se escribió una quinta prueba, un duelo a ciegas: el mismo texto, las mismas frases recuperadas, los mismos ejemplos sorteados, y lo único distinto el modelo. Un juez ve las dos respuestas en orden aleatorio, sin saber cuál es cuál, y puede declarar empate.
Sobre 40 textos: Sonnet 28, Haiku 12, ningún empate, p = 0,017. Diferencia real.
El juez es Sonnet. Está juzgando entre sí mismo y otro modelo, y nadie ha comprobado que sea imparcial en esa situación. Un resultado ajustado a su favor habría que mirarlo con lupa; este no lo es, pero la salvedad queda.
Cero empates en 40, con un juez al que se le dice que el empate es válido y esperado. Es exactamente el patrón que en la etapa 14 se marcó como sospechoso: un juez que siempre encuentra ganador está encontrando diferencias que a lo mejor no existen.
Con las dos salvedades, el resultado se acepta porque va en la misma dirección que la única lectura a ojo disponible, y porque la decisión que provoca —no cambiar nada— es la barata de revertir.
Y el precio se dio la vuelta
Lo más instructivo vino después. El coste del duelo, medido petición a petición:
| Coste por traducción | Palabras por respuesta | |
|---|---|---|
| Sonnet 5 | 0,389 cént. | 26 |
| Haiku 4.5 | 0,479 cént. | 31 |
El modelo barato salió más caro. Dos motivos que se suman:
- La caché. Sonnet lee el bloque de estilo, 1.141 tokens, de la caché en cada petición seguida. Haiku no puede cachearlo: su mínimo son 4.096 tokens y el bloque no llega. La mitad de precio por token no sirve de nada si pagas todos los tokens siempre.
- Se enrolla más. 31 palabras por respuesta frente a 26, y la salida es la parte cara de la factura.
La medición anterior, la que decía que Haiku costaba la mitad, se hizo con peticiones sueltas y la caché fría. Era correcta y era engañosa: describía un uso que no es el de la app.
La tabla de precios dice cuánto cuesta un token. No dice cuántos tokens vas a pagar, ni cuántos vas a poder cachear, ni cuánto va a escribir cada modelo. Esas tres cosas cambian el resultado y ninguna está en la tabla.
Aquí la conclusión se invirtió dos veces: «Haiku cuesta la mitad» (tarifa), «Haiku cuesta la mitad de verdad» (una petición fría), «Haiku cuesta un 23% más» (cuarenta peticiones seguidas, que es lo que hace la app). Solo la tercera describe el programa que existe.
Lo que se lleva uno de esta etapa
- El modelo es la última variable, no la primera. Aquí el caro rindió peor, y lo que arregló la calidad fueron los datos y el prompt.
- Sé claro sobre qué coste estás dando. Los veinte dólares son de ejecutar el pipeline; construirlo cuesta muchísimo más y no llega en forma de factura.
- Separa el coste de desarrollar del de ejecutar. Que uno sea treinta veces el otro es la señal de que lo estás haciendo bien.
- Todo lo que no tenga a alguien esperando va por lotes, y cuesta la mitad.
- Lo que corre en tu máquina es gratis en dinero y caro en tiempo. Elige a sabiendas cuál de los dos te sobra.
- La suscripción y los créditos de API son cosas distintas. Compruébalo antes de depurar tu primer script durante media hora.