Información sobre la inferencia de modelos de IA y aprendizaje automático en GKE

En esta página se describen los conceptos clave, las ventajas y los pasos para ejecutar cargas de trabajo de inferencia de modelos de IA y aprendizaje automático generativos en Google Kubernetes Engine (GKE) mediante las funciones de IA generativa de GKE.

El servicio de inferencia es fundamental para desplegar tus modelos de IA generativa en aplicaciones reales. GKE proporciona una plataforma robusta y escalable para gestionar tus cargas de trabajo en contenedores, lo que la convierte en una opción atractiva para servir tus modelos en desarrollo o producción. Con GKE, puedes usar las funciones de Kubernetes para la orquestación, el escalado y la alta disponibilidad con el fin de desplegar y gestionar tus servicios de inferencia de forma eficiente.

Para satisfacer las demandas específicas de la inferencia de IA y aprendizaje automático, Google Cloud ha presentado las funciones de IA generativa de GKE, un conjunto de funciones diseñadas específicamente para mejorar y optimizar el servicio de inferencia en GKE. Para obtener más información sobre funciones específicas, consulta las funciones de IA generativa de GKE.

Empezar a usar la inferencia de modelos de IA y aprendizaje automático en GKE

Puedes empezar a explorar la inferencia de modelos de IA y aprendizaje automático en GKE en cuestión de minutos. Puedes usar el nivel gratuito de GKE, que te permite empezar a usar Kubernetes sin incurrir en costes de gestión de clústeres.

  1. Ve a la página de IA y aprendizaje automático de GKE en la Google Cloud consola.

  2. Sigue los pasos de Desplegar modelos para desplegar un modelo en contenedor y un servidor de modelos.
  3. Consulta el resumen de las prácticas recomendadas de inferencia en GKE, que incluye directrices y recursos para planificar y ejecutar tus cargas de trabajo de inferencia en GKE.

Terminología

En esta página se usa la siguiente terminología relacionada con la inferencia en GKE:

  • Inferencia: proceso de ejecutar un modelo de IA generativa, como un modelo de lenguaje grande o un modelo de difusión, en un clúster de GKE para generar texto, inserciones u otros resultados a partir de datos de entrada. La inferencia de modelos en GKE aprovecha los aceleradores para gestionar de forma eficiente los cálculos complejos en el procesamiento en tiempo real o por lotes.
  • Modelo: modelo de IA generativa que ha aprendido patrones a partir de datos y se usa para la inferencia. Los modelos varían en tamaño y arquitectura, desde modelos más pequeños específicos de un dominio hasta redes neuronales masivas con miles de millones de parámetros que están optimizadas para diversas tareas de lenguaje.
  • Servidor de modelos: un servicio en contenedores responsable de recibir solicitudes de inferencia y devolver inferencias. Este servicio puede ser una aplicación Python o una solución más sólida, como vLLM, JetStream, TensorFlow Serving o Triton Inference Server. El servidor de modelos se encarga de cargar los modelos en la memoria y ejecuta los cálculos en aceleradores para devolver las inferencias de forma eficiente.
  • Acelerador: hardware especializado, como las unidades de procesamiento gráfico (GPUs) de NVIDIA y las unidades de procesamiento de tensores (TPUs) de Google, que se pueden conectar a los nodos de GKE para acelerar los cálculos, sobre todo en las tareas de entrenamiento e inferencia.
  • Cuantización: técnica que se usa para reducir el tamaño de los modelos de IA o aprendizaje automático y mejorar la velocidad de inferencia. Para ello, se convierten los pesos y las activaciones de los modelos de tipos de datos de mayor precisión a tipos de datos de menor precisión.

Ventajas de GKE para la inferencia

El servicio de inferencias en GKE ofrece varias ventajas:

  • Rentabilidad eficiente: consigue valor y velocidad para tus necesidades de servicio de inferencia. GKE te permite elegir entre una amplia gama de potentes aceleradores (GPUs y TPUs), por lo que solo pagas por el rendimiento que necesitas.
  • Despliegue más rápido: acelera el lanzamiento de tus productos con prácticas recomendadas, cualificaciones y prácticas recomendadas personalizadas que ofrecen las funciones de IA generativa de GKE.
  • Rendimiento escalable: aumenta el rendimiento con la monitorización precompilada mediante GKE Inference Gateway, autoescalado horizontal de pods (HPA) y métricas personalizadas. Puedes ejecutar una serie de modelos preentrenados o personalizados, desde 8000 millones de parámetros hasta 671.000 millones de parámetros.
  • Portabilidad total: disfruta de una portabilidad total con estándares abiertos. Google contribuye a las APIs clave de Kubernetes, como Gateway y LeaderWorkerSet, y todas las APIs se pueden usar con distribuciones de Kubernetes.
  • Compatibilidad con el ecosistema: aprovecha el sólido ecosistema de GKE, que admite herramientas como Kueue para la gestión y la cola de recursos avanzadas, y Ray para la computación distribuida, con el fin de facilitar el entrenamiento y la inferencia de modelos eficientes y escalables.

Cómo funciona la inferencia en GKE

En esta sección se describen, a grandes rasgos, los pasos para usar GKE en el servicio de inferencias:

  1. Crea un contenedor para tu modelo: crear un contenedor para una aplicación consiste en crear una imagen de contenedor, que es un paquete ejecutable que incluye todo lo necesario para ejecutar la aplicación: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema y ajustes. Una aplicación sencilla se puede contenerizar como una sola unidad, mientras que una aplicación más compleja se puede dividir en varios componentes contenerizados. Despliega un modelo creando un contenedor del servidor del modelo (como vLLM) y cargando los pesos del modelo desde Cloud Storage o un repositorio como Hugging Face. Cuando usas Inicio rápido de inferencia de GKE, la imagen en contenedor se gestiona automáticamente en el manifiesto.

  2. Crea un clúster de GKE: crea un clúster de GKE para alojar tu implementación. Elige Autopilot para disfrutar de una experiencia gestionada o Standard para personalizarla. Configura el tamaño del clúster, los tipos de nodos y los aceleradores. Para obtener una configuración optimizada, consulta la guía de inicio rápido de la inferencia.

  3. Despliega tu modelo como un despliegue de Kubernetes: crea un despliegue de Kubernetes para gestionar tu servicio de inferencia. Un Deployment es un objeto de la API de Kubernetes que te permite ejecutar varias réplicas de pods distribuidas entre los nodos de un clúster. Especifica la imagen de Docker, las réplicas y los ajustes. Kubernetes extrae la imagen y ejecuta los contenedores en los nodos del clúster de GKE. Configura los pods con tu servidor y modelo, incluidos los adaptadores LoRA si es necesario.

  4. Expón tu servicio de inferencia: haz que tu servicio de inferencia sea accesible creando un servicio de Kubernetes para proporcionar un punto de conexión de red a tu Deployment. Usa Inference Gateway para disfrutar de un balanceo de carga y un enrutamiento inteligentes diseñados específicamente para cargas de trabajo de inferencia de IA generativa. Usa Inference Gateway para disfrutar de un balanceo de carga inteligente adaptado a las cargas de trabajo de IA generativa o consulta la comparación de estrategias de balanceo de carga para elegir la opción que mejor se adapte a tus necesidades.

  5. Gestionar solicitudes de inferencia: envía datos de los clientes de tu aplicación al endpoint de tu servicio en el formato esperado (JSON o gRPC). Si usas un balanceador de carga, este distribuye las solicitudes a las réplicas del modelo. El servidor de modelos procesa la solicitud, ejecuta el modelo y devuelve la inferencia.

  6. Escala y monitoriza tu despliegue de inferencia: escala la inferencia con HPA para ajustar automáticamente las réplicas en función de la CPU o la latencia. El autoescalador de pods horizontal (HPA) es un controlador de Kubernetes que aumenta o reduce automáticamente el número de pods de una carga de trabajo (como un despliegue) en función de las métricas observadas, como el uso de CPU o las métricas personalizadas. Usa la guía de inicio rápido de inferencia para obtener recomendaciones de escalado generadas automáticamente. Para monitorizar el rendimiento, usa Cloud Monitoring y Cloud Logging con observabilidad precompilada, incluidos los paneles de control de servidores de modelos populares, como vLLM.

Para ver ejemplos detallados que usan modelos, servidores de modelos y aceleradores específicos, consulta Ejemplos de inferencia.

Funciones de IA generativa de GKE

Puedes usar estas funciones juntas o por separado para abordar los principales problemas a la hora de servir modelos de IA generativa y mejorar la utilización de los recursos en tu entorno de GKE, sin coste adicional.

Nombre Descripción Ventajas
Guía de inicio rápido de inferencia de GKE

Analiza el rendimiento y la rentabilidad de tus cargas de trabajo de inferencia. Especifica las necesidades de tu empresa y recibe las prácticas recomendadas personalizadas para la combinación de aceleradores, configuraciones de escalado y almacenamiento, y servidores de modelos que mejor se adapte a tus necesidades. Puedes acceder a este servicio con la CLI de gcloud y la Google Cloud consola.

Para obtener más información, consulta el artículo Analizar el rendimiento y los costes del servicio de modelos con GKE Inference Quickstart.

  • Ahorra tiempo automatizando los pasos iniciales de elección y configuración de tu infraestructura.
  • Te permite mantener el control total sobre tu configuración de Kubernetes para optimizarla aún más.
GKE Inference Gateway

Obtén el enrutamiento en función de métricas, como el uso de la caché de clave-valor, para mejorar la latencia.

Para obtener más información, consulta Acerca de GKE Inference Gateway.

  • Comparte modelos ajustados que usen archivos LoRA con selección de endpoints basada en la afinidad para optimizar los costes.
  • Consigue una alta disponibilidad accediendo de forma dinámica a la capacidad de GPU y TPU en diferentes regiones.
  • Mejora la seguridad de tus modelos con las políticas del complemento Model Armor.
Aceleradores de carga de peso del modelo

Accede rápidamente a los datos de Cloud Storage con Cloud Storage FUSE y descargas paralelas y almacenamiento en caché. Para obtener más información sobre cómo usar Cloud Storage FUSE en cargas de trabajo de IA y aprendizaje automático, consulta la arquitectura de referencia.

Managed Lustre de Google Cloud es un sistema de archivos paralelo de alto rendimiento y totalmente gestionado optimizado para la IA que se puede adjuntar a 10.000 pods o más. Para obtener más información sobre cómo usar Lustre gestionado en cargas de trabajo de IA o aprendizaje automático, consulta la arquitectura de referencia.

Google Cloud Hyperdisk ML es un disco conectado a la red que se puede asociar a un máximo de 2500 pods.

  • Optimiza el tiempo de inicio de la inferencia minimizando la latencia del modelo de carga de peso en GKE.
  • En las implementaciones con escalado de nodos limitado, puedes usar Cloud Storage FUSE para montar los pesos del modelo.
  • En el caso de las cargas de trabajo de inferencia que requieren un rendimiento de escalado horizontal constante, Google Cloud Managed Lustre admite el acceso a archivos de alto rendimiento y baja latencia desde varios pods simultáneamente.
  • Para escenarios a gran escala que exigen un acceso coherente y de baja latencia a grandes pesos de modelos, Hyperdisk ML de Google Cloud ofrece una solución de almacenamiento en bloques específica.

Métricas de rendimiento de la inferencia

Para optimizar tus cargas de trabajo de inferencia, es importante que sepas cómo medir su rendimiento. En la siguiente tabla se describen las métricas clave para comparar el rendimiento de la inferencia en GKE.

Indicadores de referencia Métrica (unidad) Descripción
Latencia Tiempo hasta el primer token (TTFT) (ms) Tiempo que se tarda en generar el primer token de una solicitud.
Tiempo normalizado por token de salida (NTPOT) (ms) Latencia de la solicitud normalizada por el número de tokens de salida, medida como request_latency / total_output_tokens.
Tiempo por token de salida (TPOT) (ms) Tiempo que se tarda en generar un token de salida, medido como (request_latency - time_to_first_token) / (total_output_tokens - 1).
Latencia entre tokens (ITL) (ms) Mide la latencia entre dos generaciones de tokens de salida. A diferencia de TPOT, que mide la latencia de toda la solicitud, ITL mide el tiempo que se tarda en generar cada token de salida. Estas mediciones individuales se agregan para obtener valores medios, medianas y percentiles, como el p90.
Latencia de solicitudes (ms) Tiempo total necesario para completar una solicitud.
Rendimiento Solicitudes por segundo Número total de solicitudes que sirves por segundo. Ten en cuenta que esta métrica puede no ser una forma fiable de medir el rendimiento de LLM, ya que puede variar mucho en función de la longitud del contexto.
Tokens de salida por segundo Métrica habitual que se mide como total_output_tokens_generated_by_server / elapsed_time_in_seconds.
Tokens de entrada por segundo Medida como total_input_tokens_generated_by_server / elapsed_time_in_seconds.
Tokens por segundo Medida como total_tokens_generated_by_server / elapsed_time_in_seconds. Esta métrica cuenta tanto los tokens de entrada como los de salida, lo que te ayuda a comparar cargas de trabajo con tiempos de prellenado altos y tiempos de decodificación altos.

Planificación de la inferencia

Para que una implementación de inferencia tenga éxito, es necesario planificar cuidadosamente varios aspectos clave, como la rentabilidad, el rendimiento y la disponibilidad de los recursos. Para obtener recomendaciones detalladas sobre cómo crear una plataforma de inferencia escalable, eficaz y rentable, consulta el artículo Descripción general de las prácticas recomendadas de inferencia en GKE.

Probar ejemplos de inferencia

Consulta ejemplos de despliegue de GKE para modelos de IA generativa, aceleradores y servidores de modelos. Si acabas de empezar, te recomendamos que consultes el tutorial Sirve modelos abiertos de Gemma con GPUs en GKE con vLLM.

También puedes buscar un tutorial por palabra clave:

Accelerator Servidor de modelos Tutorial
GPUs vLLM Servir LLMs como DeepSeek-R1 671B o Llama 3.1 405B en GKE
GPUs vLLM Sirve modelos abiertos de Gemma con GPUs en GKE con vLLM
GPUs vLLM Servir un LLM con GKE Inference Gateway
GPUs vLLM Servir LLMs abiertos en GKE con una arquitectura preconfigurada
GPUs Ray Serve Servir un LLM en GPUs L4 con Ray
GPUs TGI Servir un LLM con varias GPUs en GKE
GPUs TorchServe Servir T5 en GKE con TorchServe
TPUs vLLM Servir un LLM mediante TPU Trillium en GKE con vLLM
TPUs vLLM Servir un LLM mediante TPUs en GKE con KubeRay
TPUs MaxDiffusion Servir Stable Diffusion XL (SDXL) mediante TPUs en GKE con MaxDiffusion
TPUs vLLM Servir LLMs mediante TPUs de varios hosts
TPUs vLLM Servir LLMs abiertos en TPUs con una arquitectura preconfigurada

Siguientes pasos