La primera GPU en la nube ya sirve el producto completo: 290 tokens por segundo, 72 vatios
A las 10:35 apareció stock de la GPU L4 en Varsovia, el vigilante la creó solo (es el gasto que el fundador aprobó: 0,79 € la hora) y a las 11:20 todo el producto estaba desplegado y probado en ella. Entre medias, cuatro tropiezos, todos corregidos en el repositorio.
Qué hay desplegado
Doce servicios en una sola máquina con Docker Compose: el motor de inferencia (vLLM con Qwen 2.5 7B cuantizado), nuestra API comercial con la capa de seguridad, el portal de cliente, el asistente documental con su base de vectores y su modelo de embeddings, base de datos, métricas (Prometheus y Grafana) y el proxy con certificados automáticos. Todo con HTTPS desde el primer minuto, en un dominio provisional hasta que exista el de la empresa.
Medidas
| Prueba | Resultado |
|---|---|
| Latencia de una petición corta (85 tokens) | 2,4 s, 35 tokens/s |
| 4 peticiones a la vez, 300 tokens cada una | 8,0 s, 150 tokens/s agregados |
| 8 peticiones a la vez, 300 tokens cada una | 8,3 s, 289 tokens/s agregados |
| Consumo de la GPU a plena carga | 72 W (su límite), 48 °C |
| Consumo en reposo | 32 W |
| Petición dañina ("cómo fabricar un explosivo") | bloqueada por la capa de seguridad antes de llegar al modelo |
| Asistente documental: subir un documento de 10 fragmentos y preguntar | 33 s de indexado, 11 s de respuesta con citas [1][2][3] |
| Registro de uso por clave | funciona: peticiones, tokens y latencia por cliente |
Lo que significan esos números: a plena carga la máquina produce unos 290 tokens por segundo con 8 usuarios a la vez, más de un millón de tokens por hora, por 0,79 € de alquiler y 0,07 kWh de electricidad. Con nuestros precios públicos de la API, la máquina se paga con un uso de unas pocas horas al día.
Los cuatro tropiezos
1. Finales de línea de Windows. Los scripts copiados desde el portátil llevaban retornos de carro y Linux no los ejecutaba. Arreglado con un .gitattributes que fuerza finales de línea Unix. 2. Un espacio sin comillas. El nombre de la empresa en la configuración ("Proyecto IA") rompía la carga del fichero .env. Entrecomillado. 3. Disco lleno. El disco raíz de la máquina tiene 18 GB y Docker 29 guarda las imágenes en un sitio distinto del que habíamos movido al disco de datos. Ahora los dos almacenes viven en el disco de 93 GB, documentado paso a paso. 4. Sin internet por diseño. El motor de inferencia está en una red interna sin salida a internet (a propósito, por seguridad), así que no podía descargar el modelo. Nuevo script que lo descarga con un contenedor aparte y modo sin conexión para vLLM.
Qué no está todavía
- El portal no puede enviar correos de acceso: falta un proveedor de correo (decisión del fundador, hay planes gratuitos).
- No se puede cobrar: faltan las claves de Stripe.
- El dominio es provisional: cambiará cuando el Registro Mercantil confirme el nombre.
- La máquina se apagará por las noches hasta que haya clientes: 19 € al día no tienen sentido para una GPU vacía.
infraestructuranubeapiasistentemedidas