FinOps de GPU/LLM: frameworks, métricas y estado del arte (ficha a ficha)

Notación: importes en euros (N €), decimales con coma. Las referencias son europeas (proveedores y precios de FR/DE/ES), por tratarse de una propuesta soberana; cuando una fuente cita dólares se indica “USD”. No se usa el símbolo de dólar (en este sitio es delimitador de fórmula).

Qué cubre esta introducción

Segundo artículo de la serie de datos, y primer deep dive de pilar. Aquí se inventaría el tooling de FinOps para infraestructura GPU/LLM con el detalle que necesita una decisión de arquitectura: qué métricas maneja cada herramienta, cómo asigna el coste por dentro, qué soporte de GPU tiene, bajo qué licencia y modelo de precio opera, y dónde están sus límites. Es la continuación natural del artículo de apertura, donde se fijó que el coste por token es la unidad que permite comparar on-prem vs cloud. Sin recomendaciones: la elección final se decide en el artículo de síntesis con la tabla de Pareto; aquí solo están los hechos y la metodología.


Por qué el FinOps de GPU es un problema distinto

El FinOps clásico de cloud nació para repartir CPU, memoria y almacenamiento, recursos baratos y elásticos. La GPU rompe tres supuestos a la vez, y por eso necesita su propio tratamiento:

  1. Es cara y discreta. Una H100 cuesta del orden de 2,7 a 7 €/hora en cloud europeo (Scaleway desde 2,73 €/h; OVHcloud algo más), o su capex amortizado on-prem; no es un recurso que se reparta en fracciones triviales. Un error de asignación de un 10 % sobre una flota de GPU es dinero real.
  2. Se infrautiliza con facilidad. A diferencia de la CPU, una GPU consume su potencia aunque esté ociosa, y la ocupación media en clusters sin gobierno es notoriamente baja. El coste del idle —la GPU encendida sin trabajar— es el desperdicio número uno, y es invisible si no se mide.
  3. Es difícil de atribuir. ¿De quién es el coste de una GPU compartida por time-slicing o MIG entre varios pods de varios equipos? Sin una capa de asignación, el gasto de GPU es un agujero negro que nadie reclama y nadie optimiza.

El objetivo del FinOps de GPU es convertir ese agujero negro en una factura atribuida, medida y accionable: saber qué cuesta cada equipo, cada modelo y, al final, cada token.


Las métricas de FinOps

MétricaDefiniciónUnidad
CPM (coste/1M tokens)coste del cluster ÷ tokens producidos€ / 1M tok
Coste por peticióncoste imputado a una request completa€ / req
€/GPU-horacoste horario de una GPU (amortizado o alquiler)€/h
Utilizaciónfracción de la GPU realmente usada% (MFU, GPU-hour util)
Coste del idleGPU encendida sin trabajo útil€/h desperdiciados
Showbackreportar el coste a cada equipo (sin cobrar)€ / equipo
Chargebackimputar/cobrar el coste a cada equipo€ / equipo
Eficiencia de costecoste real ÷ coste si estuviera al 100 %%

La métrica que cierra el círculo con el negocio es el coste por token (o por petición): es la única que se puede comparar entre proveedores, entre modelos y contra el precio de una API externa. Todo el tooling de FinOps de GPU existe para llegar, de una forma u otra, a ese número.


Las tres fases de FinOps (FinOps Foundation)

El marco de la FinOps Foundation organiza el trabajo en un ciclo de tres fases. Aplicado a GPU:

FaseObjetivoAcción típica en GPU
Informvisibilidad y asignaciónmedir coste por namespace/equipo/modelo/token
Optimizereducir el gastorightsizing, spot, cuotas, apagar lo ocioso, cuantizar
Operategobierno continuopresupuestos, alertas de idle, chargeback automatizado

El error habitual es saltar a Optimize sin haber hecho Inform: se compran GPUs o se ajustan réplicas sin saber dónde se va realmente el dinero. La asignación (fase Inform) es el prerrequisito de todo lo demás, y es donde entra el tooling.


Cómo se asigna el coste en Kubernetes: la mecánica de OpenCost

OpenCost es el estándar de facto, así que conviene entender cómo asigna el coste, porque define lo que cualquier herramienta encima puede y no puede hacer. Es un proyecto vendor-neutral, Apache 2.0, originalmente construido por Kubecost y donado a la CNCF (proyecto en incubación) (OpenCost · GitHub).

El modelo trabaja a nivel de nodo: parte de la capacidad de recursos del nodo (CPU, RAM, GPU, almacenamiento) y de su precio total, y reparte ese precio entre los recursos. Cuando el proveedor no da precios explícitos de CPU/GPU/RAM, OpenCost usa la ratio de unos precios base (las tarifas marginales del proveedor, personalizables) y los normaliza para que la suma de los componentes iguale el precio total del nodo (OpenCost · on-prem). Esto es clave en on-premise: tú defines el coste del nodo (capex amortizado + opex) y OpenCost lo reparte.

La utilización la obtiene scrapeando Prometheus: kube-state-metrics, node-exporter y cAdvisor le dan el consumo real por pod, y con eso asigna el coste por cluster, nodo, namespace, controlador, servicio o pod (OpenCost · exporter). Para la GPU, la señal viene de DCGM (vía el NVIDIA GPU Operator) exportado a Prometheus —la misma base que la observabilidad GPU—. Un patrón habitual de detección de idle: una alerta cuando DCGM_FI_DEV_GPU_UTIL < 10 durante más de 15 minutos, enrutada al equipo dueño del namespace.

Métricas de utilización (Prometheus)kube-state-metricsnode-exporter · cAdvisorDCGM (GPU, vía GPU Operator)uso por podModelo de precio (por nodo)precio total del nodo repartidoentre CPU/GPU/RAM/disconormalizado a la suma = totalAsignaciónpor cluster / nodo / namespacecontrolador / servicio / pod→ coste por equipoEn on-premise tú defines el coste del nodo (capex amortizado + opex); OpenCost solo lo reparte.Idle de GPU: alerta si DCGM_FI_DEV_GPU_UTIL < 10 durante >15 min → enrutar al dueño del namespace.Lo que OpenCost asigna por recurso, las capas de arriba lo enriquecen hasta coste por token.

Frameworks, ficha a ficha

OpenCost — el estándar de asignación (CNCF, Apache 2.0)

Qué mide: coste asignado de los recursos in-cluster (CPU, GPU, memoria, volúmenes) por cualquier dimensión de Kubernetes. Método: modelo de precio a nivel de nodo + scraping de Prometheus (arriba). GPU: sí, vía DCGM. Licencia: Apache 2.0, gratis. Puede correr como exportador de métricas a Prometheus sin más dependencias. Límite: es la capa de asignación, no trae optimización, gobierno ni unit economics de producto; para eso se le pone algo encima.

Kubecost — el comercial sobre OpenCost (IBM)

Qué mide: lo de OpenCost (está construido sobre él) más capacidades enterprise. Kubecost 3.0 (2025) añadió monitorización de GPU vía NVIDIA DCGM e integración con IBM Turbonomic para rightsizing automático, y amplió el alcance de Kubernetes a coste de servicios cloud. IBM adquirió Kubecost e integró Kubecost/OpenCost en su FinOps Suite junto a Cloudability y Turbonomic (CloudZero · Kubecost vs OpenCost). Diferenciador: rightsizing, gobierno, soporte. Límite: producto comercial; el grueso del valor sobre lo gratis de OpenCost es la capa de optimización y enterprise.

CloudZero — unit economics y coste a producto

Qué mide: mapea el coste cloud a features, productos, equipos y clientes, no solo a recursos. Método: ingiere facturación multi-cloud y la modela en dimensiones de negocio. Diferenciador: la asignación más profunda y el enfoque de unit economics (coste por unidad de negocio). Límite: menos centrado en la mecánica intra-Kubernetes que OpenCost/Kubecost; es la capa de “coste a negocio”.

Vantage — multi-cloud con muchas integraciones

Qué mide: coste multi-cloud con más de 20 integraciones nativas (AWS, Azure, GCP, Kubernetes, Snowflake, Datadog, OpenAI, etc.). Diferenciador: amplitud de fuentes, incluida la factura de proveedores de LLM (OpenAI), lo que lo acerca al coste de IA de extremo a extremo. Límite: la profundidad de asignación intra-cluster es menor que la de herramientas K8s-nativas.

Finout — virtual tagging, despliegue rápido

Qué mide: coste multi-cloud con virtual tagging: aplica etiquetas de coste sin modificar los recursos reales, lo que permite asignar gasto que no estaba bien etiquetado de origen. Diferenciador: despliegue rápido y reasignación flexible sin tocar la infra. Límite: como las otras de su categoría, depende de la calidad de los datos de facturación que ingiere.

Tabla comparativa

HerramientaÁmbitoGPULicencia / modeloDiferenciadorCapa
OpenCostKubernetesSí (DCGM)Apache 2.0 (CNCF), gratisestándar de asignaciónrecurso
KubecostK8s + cloudSí (DCGM, 3.0)comercial (IBM)rightsizing, enterpriserecurso+optim
CloudZeromulti-cloudindirectocomercialunit economics a productonegocio
Vantagemulti-cloud (20+)vía K8s/proveedorcomercialamplitud (incl. OpenAI)negocio
Finoutmulti-cloudvía K8s/proveedorcomercialvirtual taggingnegocio

Modelos de precio del tooling comercial

Conviene conocerlos porque el coste de la herramienta de FinOps también es FinOps:

ModeloCómo cobraRango
Savings-based% de los ahorros entregados15–35 %
Fixed-fee% del gasto cloud anual1–3 %

(CloudZero · FinOps Tools). Implicación: en un gasto cloud grande, un fixed-fee del 1–3 % puede superar al savings-based; en uno pequeño con mucho desperdicio, el savings-based alinea incentivos. OpenCost, al ser gratis, cambia la ecuación para quien tiene equipo para operarlo.


FOCUS: el estándar de datos de coste

El problema transversal del FinOps multi-fuente es que cada proveedor factura en su propio formato. FOCUS (FinOps Open Cost and Usage Specification) es la especificación técnica abierta que define requisitos para que los proveedores produzcan datasets de facturación uniformes (FOCUS · FinOps Foundation). El comité ratificó FOCUS v1.3 el 4 de diciembre de 2025.

Lo relevante para esta serie: en FinOps X 2026 el foco se ha puesto en extender FOCUS a las cargas de IA, con la economía de tokens empujando la especificación —las peticiones de expansión incluyen workloads de IA, datacenter y SaaS/PaaS (SiliconANGLE). Es decir, el estándar que normaliza el coste cloud se está estirando para cubrir el coste de IA por token. Para una propuesta de arquitectura, apostar por herramientas que emiten y consumen FOCUS es apostar por interoperabilidad futura.


Del recurso al token: coste por token con gateway

La asignación por recurso (OpenCost) llega hasta “este pod de vLLM costó X €/hora”. Para llegar a “esta petición de este equipo costó Y” hace falta interceptar el tráfico de inferencia. Ahí entra el gateway.

Herramientas como LiteLLM se sitúan entre la aplicación y el proveedor/motor de LLM, e interceptan cada petición para registrar tokens, latencia y coste en tiempo real. Capas encima (p. ej. el AI Gateway de OpenLM) generan logs de uso compatibles con FOCUS (v1.0 a 1.3) y mapean el gasto a equipo, producto, cliente o feature, habilitando showback o chargeback (OpenLM · token attribution). Esto enlaza con FinOps y multi-tenancy del cluster GPU, donde el gateway es la pieza que reparte el coste entre inquilinos.

OpenCostcoste del pod vLLM (€/h)Gateway (LiteLLM)intercepta · cuenta tokensLogs FOCUStokens · latencia · costeShowbackpor equipoDos mitades que hay que unir: asignación por recurso (OpenCost) + medición por token (gateway).Sin el gateway sabes lo que cuesta el pod, no la petición. Sin OpenCost sabes los tokens, no el coste real del hierro.FOCUS es el formato común que permite cruzarlas con el resto del gasto cloud.

Ejemplo trabajado: chargeback de un cluster multi-tenant

Para ver las dos mitades unidas, un reparto sobre un nodo de ejemplo (4×H100, coste amortizado 12 €/hora) compartido por tres equipos vía namespaces y MIG:

EquipoGPU-horas asignadas (OpenCost)Coste hierro (€/h)Tokens/día (gateway)Coste/1M tok
A · producto chat50 %6,008M~0,75 €
B · batch nocturno30 %3,603M~1,20 €
C · experimentación20 %2,400,5M~4,80 €

Cómo sale: OpenCost reparte las 12 €/h del nodo según las GPU-horas que consume cada namespace (la mitad para A → 6 €/h). El gateway aporta los tokens por equipo. El coste por millón de tokens de cada uno es su coste de hierro dividido por su producción —y revela algo que ninguna de las dos mitades vería sola: el equipo C paga 6× más por token que A, no porque su modelo sea peor, sino porque su GPU está infrautilizada (mucha GPU-hora asignada para pocos tokens). Ese 4,80 €/1M es la señal de chargeback que dispara una conversación de optimización: o C sube su utilización, o libera la GPU. Sin cruzar asignación y tokens, ese desperdicio queda escondido en una media de cluster.


El coste oculto: la utilización

La palanca de optimización número uno no es cambiar de GPU, es dejar de pagar por GPU ociosa. Como se vio en el artículo de apertura, el coste eléctrico por token a 80 % de utilización es la cuarta parte que a 20 %, y la utilización reparte todo el coste fijo (capex + energía) sobre más tokens. Medir el idle es, por tanto, la acción de mayor retorno de la fase Optimize:

SeñalFuenteUmbral típico
GPU ociosaDCGM_FI_DEV_GPU_UTIL< 10 % durante > 15 min
Memoria GPU sin usoDCGM_FI_DEV_FB_USEDreservada pero no usada
Pods sin tráficométricas del gateway0 peticiones, GPU asignada

La asignación (OpenCost) localiza de quién es la GPU ociosa; el scheduling y la co-residencia (compartir GPU: time-slicing, MPS y MIG) la recuperan. FinOps cierra el bucle: medir → atribuir → optimizar → gobernar.


Optimize: las palancas de ahorro (con datos)

Una vez asignado el coste (Inform), la fase Optimize tiene un repertorio acotado de palancas. Ordenadas por retorno típico:

PalancaAhorro típicoMecanismoCoste/riesgo
Recuperar idleel mayorapagar/compartir GPU ociosarequiere medir utilización
Cuantización (FP8/INT4)sube throughput, baja VRAMmás tokens por GPU-horaposible coste de calidad
Compromiso reserved20–40 % sobre on-demandreservar capacidadmenos elasticidad
Spot/preemptibleel descuento más profundocapacidad interrumpiblehay que tolerar cortes
Rightsizingvariableajustar tipo/nº de GPU al SLOrequiere benchmarks
Autoscaling (HPA/KEDA)variableescalar réplicas con la demandatunear métricas

Sobre el compromiso, los datos de cloud de 2026 son contundentes: los planes reserved dan 20–40 % de ahorro frente a on-demand, y spot el descuento más profundo a cambio de interrumpibilidad; el precio de la H100 cayó 64–75 % entre Q4 2024 y principios de 2026 (Spheron · GPU Cloud Pricing). El rightsizing y el autoscaling conectan con el scheduling del cluster: encajar la carga en la GPU correcta y escalar réplicas con la demanda son, a la vez, palancas de rendimiento y de coste. La cuantización aparece aquí porque sube el throughput —y, por la identidad del artículo de apertura, baja el coste y la energía por token al mismo tiempo.


Madurez del FinOps de GPU

Un modelo simple para situar dónde está una organización, y qué le falta:

NivelEstadoLo que falta para subir
0 · ciegofactura agregada, sin atribucióninstrumentar OpenCost + DCGM
1 · visibilidadcoste por namespace/equipomedición por token (gateway)
2 · unit economicscoste por token y por productoalertas de idle y presupuestos
3 · optimizaciónidle recuperado, commitment, rightsizingchargeback automatizado
4 · gobiernochargeback + presupuestos + FOCUSmejora continua

La mayoría de las organizaciones con GPU están en el nivel 0 o 1: ven una factura grande pero no saben de quién es cada euro. El salto de valor está en llegar al nivel 2 —el coste por token y por producto—, que es justo donde el tooling de este artículo deja de ser opcional. El track de FinOps de la serie recorre esa escalera hasta el modelo TCO completo y el coste/token comparable que sostiene la propuesta de arquitectura.


El stack mínimo para llegar al nivel 2

Reunir las piezas anteriores en un toolchain concreto, todo open source, que lleva de la ceguera (nivel 0) al coste por token y por producto (nivel 2):

PiezaFunciónAlternativa
NVIDIA GPU Operator + DCGMexporta métricas de GPU (uso, memoria, potencia)
Prometheusalmacena las series de uso y costeVictoriaMetrics
OpenCostasigna el coste por recurso y dimensiónKubecost (comercial)
Gateway (LiteLLM)cuenta tokens por equipo/modeloOpenLM AI Gateway
Grafanapaneles de coste, utilización e idle

Es, deliberadamente, infraestructura que muchos clusters ya tienen para observabilidad (DCGM, Prometheus, Grafana); el FinOps de GPU reutiliza esa base y le añade OpenCost y el gateway. No es un producto nuevo, es una capa sobre lo existente.

KPIs a vigilar

KPIQué indicaObjetivo típico
Utilización media de GPUdesperdicio>70–80 % sostenido
Coste por 1M tokens (por modelo)eficiencia económicacomparar vs alquiler cloud
% de GPU-horas en idledinero tiradominimizar (<10–15 %)
Coste por equipo/productoatribuciónreparto justo, sin sorpresas
Desviación sobre presupuestogobiernoalertar antes de superarlo

Estos cinco KPIs son los que convierten el FinOps de GPU de un panel bonito en una herramienta de decisión: si los vigilas, sabes en todo momento qué cuesta cada cosa y dónde está el desperdicio.


Estado del arte 2026

  • Consolidación en Kubernetes: OpenCost es el estándar CNCF de asignación; Kubecost (IBM) el comercial de referencia, ya con GPU vía DCGM y rightsizing por Turbonomic.
  • Del recurso al token: las plataformas fuertes de 2026 trackean el coste a nivel de token y de GPU, combinando asignación por recurso (OpenCost) con medición por gateway (LiteLLM); es la única vía para un coste/token comparable on-prem vs cloud.
  • FOCUS v1.3 (dic-2025) como capa de interoperabilidad, extendiéndose a IA en FinOps X 2026: el estándar de coste cloud absorbe la economía de tokens.
  • GPU FinOps maduro: la instrumentación se apoya en DCGM (misma base que la observabilidad), y la detección de idle por umbral de utilización es práctica común.

Coste por token: el puente con la decisión de negocio

Todo el tooling anterior existe para producir un número que el negocio entienda: el coste por token (o por petición). Es el que permite responder a las tres preguntas que sostienen una propuesta de arquitectura:

  1. ¿Construir o comprar? El coste/token on-prem (capex amortizado + opex, a la utilización real) frente al precio de una API externa o de alquiler cloud. Por debajo del umbral de volumen (~2M tokens/día) suele ganar comprar; por encima, construir.
  2. ¿Cómo poner precio a un producto? Si una feature consume N tokens por uso y cada millón cuesta C, el coste marginal por uso es N·C/10⁶ — la base de cualquier margen.
  3. ¿Dónde está el desperdicio? El coste/token por equipo (el ejemplo de chargeback) señala quién infrautiliza la GPU antes de que la factura agregada lo esconda.

La trampa: comparar coste/token entre escenarios sin fijar los supuestos (utilización, precisión, modelo de propiedad). Un coste/token on-prem calculado al 80 % de utilización no es comparable con uno al 20 %, ni un FP16 con un FP8. Por eso la asignación (Inform) no es un fin en sí mismo: es la materia prima de un modelo de coste con supuestos explícitos, que es lo que el artículo de síntesis convierte en el argumento de “construir vs comprar” con números defendibles. El FinOps de GPU no es contabilidad; es la base cuantitativa de la decisión de arquitectura.


Límites y trampas (data-driven)

  1. Asignación ≠ medición por token. OpenCost reparte el coste del recurso; sin gateway no llegas a la petición. Son dos mitades que hay que unir explícitamente.
  2. Precios base mal puestos = asignación mal puesta. En on-prem, OpenCost reparte el coste que tú declaras del nodo; si el capex/opex amortizado está mal, todo el reparto lo está. La calidad del dato de entrada manda.
  3. Idle invisible. Sin DCGM exportado a Prometheus y sin alertas de utilización, el desperdicio número uno no aparece en ningún panel.
  4. Coste de la herramienta. Un fixed-fee del 1–3 % sobre un gasto grande es dinero; compara el coste del tooling con el ahorro que entrega (es FinOps sobre el FinOps).
  5. Formatos propietarios. Herramientas que no emiten/consumen FOCUS te atan a su modelo de datos; en 2026 la apuesta robusta es la interoperabilidad FOCUS.

El siguiente artículo de la serie (A2) entra en OpenCost a fondo; este fija el mapa. Con la asignación resuelta, el resto del track de FinOps construye el modelo TCO y el coste/token que la propuesta necesita.

Fuentes