Información acerca de la inferencia de modelos de IA/AA en GKE


En esta página, se describen los conceptos clave, los beneficios y los pasos para ejecutar cargas de trabajo de inferencia de modelos de IA/AA generativa en Google Kubernetes Engine (GKE) con las capacidades de IA generativa de GKE.

La entrega de inferencias es fundamental para implementar tus modelos de IA generativa en aplicaciones del mundo real. GKE proporciona una plataforma sólida y escalable para administrar tus cargas de trabajo alojadas en contenedores, lo que la convierte en una opción atractiva para publicar tus modelos en desarrollo o producción. Con GKE, puedes usar las capacidades de Kubernetes para la organización, el ajuste de escala y la alta disponibilidad para implementar y administrar de manera eficiente tus servicios de inferencia.

Para satisfacer las demandas específicas de la inferencia de IA/AA, Google Cloud presentó las capacidades de IA generativa de GKE, un conjunto de funciones diseñadas específicamente para mejorar y optimizar la entrega de inferencias en GKE. Para obtener más información sobre las funciones específicas, consulta Capacidades de IA generativa de GKE.

Comienza a usar la inferencia de modelos de IA/AA en GKE

Puedes comenzar a explorar la inferencia de modelos de AA/ML en GKE en minutos. Puedes usar el nivel gratuito de GKE, que te permite comenzar a usar Kubernetes sin incurrir en costos por la administración de clústeres.

  1. Ir a la página de IA/AA de GKE en la Google Cloud consola

  2. Prueba los pasos de Deploy Models para implementar un modelo y un servidor de modelos alojados en contenedores.
  3. Lee Planificación de la inferencia, que tiene orientación 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: Es el proceso de ejecutar un modelo de IA generativa, como un modelo de lenguaje grande o un modelo de difusión, dentro de un clúster de GKE para generar texto, incorporaciones o cualquier otro resultado a partir de datos de entrada. La inferencia del modelo en GKE aprovecha los aceleradores para controlar de manera eficiente los cálculos complejos para el procesamiento por lotes o en tiempo real.
  • Modelo: Es un modelo de IA generativa que aprendió patrones a partir de los datos y se usa para la inferencia. Los modelos varían en tamaño y arquitectura, desde modelos más pequeños específicos del dominio hasta redes neuronales masivas con miles de millones de parámetros que se optimizan para diversas tareas de lenguaje.
  • Servidor de modelos: Es un servicio en contenedores responsable de recibir solicitudes de inferencia y devolver inferencias. Este servicio puede ser una app de 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 los aceleradores para devolver inferencias de manera eficiente.
  • Acelerador: Es un hardware especializado, como las unidades de procesamiento gráfico (GPU) de NVIDIA y las unidades de procesamiento tensorial (TPU) de Google, que se puede conectar a los nodos de GKE para acelerar los cálculos, en especial para las tareas de entrenamiento y de inferencia.

Beneficios de GKE para la inferencia

La publicación de inferencias en GKE ofrece varios beneficios:

  • Relación precio-rendimiento eficiente: Obtén valor y velocidad para tus necesidades de servicio de inferencia. GKE te permite elegir entre una variedad de aceleradores potentes (GPU y TPU), por lo que solo pagas por el rendimiento que necesitas.
  • Implementación más rápida: Acelera tu tiempo de lanzamiento al mercado con prácticas recomendadas, calificaciones y prácticas recomendadas personalizadas que proporcionan las capacidades de IA generativa de GKE.
  • Rendimiento escalable: Amplía el rendimiento con la supervisión prediseñada usando GKE Inference Gateway, el escalador automático horizontal de Pods (HPA) y las métricas personalizadas. Puedes ejecutar una variedad de modelos personalizados o previamente entrenados, desde 8,000 millones hasta 671,000 millones de parámetros.
  • Portabilidad total: Aprovecha la portabilidad total con estándares abiertos. Google contribuye a las APIs clave de Kubernetes, incluidas Gateway y LeaderWorkerSet, y todas las APIs son portátiles con las distribuciones de Kubernetes.
  • Compatibilidad con el ecosistema: Aprovecha el sólido ecosistema de GKE, que admite herramientas como Kueue para la administración y la puesta en cola avanzadas de recursos, y Ray para la computación distribuida, para facilitar la inferencia y el entrenamiento de modelos eficientes y escalables.

Cómo funciona la inferencia en GKE

En esta sección, se describen, a un nivel general, los pasos para usar GKE para la entrega de inferencias:

  1. Crea un contenedor para tu modelo: Implementa un modelo creando un contenedor para el servidor de modelos (como vLLM) y cargando los pesos del modelo desde Cloud Storage o un repositorio como Hugging Face. Cuando usas la Guía de inicio rápido de GKE Inference, la imagen en contenedor se administra 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 una experiencia administrada o Estándar 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. Implementa tu modelo como una implementación de Kubernetes: Crea una implementación de Kubernetes para administrar tu servicio de inferencia. Un Deployment es un objeto de la API de Kubernetes que te permite ejecutar varias réplicas de Pods que se distribuyen entre los nodos de un clúster. Especifica la imagen de Docker, las réplicas y la configuración. Kubernetes extrae la imagen y ejecuta tus contenedores en los nodos del clúster de GKE. Configura los Pods con tu servidor de modelos y tu modelo, incluidos los adaptadores de 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 extremo de red para tu Deployment. Usa Inference Gateway para el balanceo de cargas y el enrutamiento inteligentes que se adaptan específicamente a las cargas de trabajo de inferencia de IA generativa.

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

  6. Ajusta la escala y supervisa tu implementación de inferencia: Ajusta la escala de la inferencia con HPA para ajustar automáticamente las réplicas en función de la CPU o la latencia. Usa la Guía de inicio rápido de la inferencia para obtener recomendaciones de ajuste de escala generadas automáticamente. Para hacer un seguimiento del rendimiento, usa Cloud Monitoring y Cloud Logging con observabilidad prediseñada, incluidos los paneles para servidores de modelos populares, como vLLM.

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

Capacidades de IA generativa de GKE

Puedes usar estas capacidades juntas o por separado para abordar los desafíos clave relacionados con la publicación de modelos de IA generativa y la mejora de la utilización de recursos en tu entorno de GKE, sin costo adicional.

Nombre Descripción Beneficios
Guía de inicio rápido de GKE Inference (vista previa)

Especifica las necesidades de tu empresa y obtén prácticas recomendadas personalizadas para la combinación de aceleradores, configuraciones de escalamiento y servidores de modelos que mejor se adapte a tus necesidades. Puedes acceder a este servicio con la CLI de gcloud.

Para obtener más información, consulta Ejecuta la inferencia de prácticas recomendadas con las recetas de inicio rápido de GKE Inference.

  • Ahorra tiempo, ya que automatiza los pasos iniciales de la elección y la configuración de tu infraestructura.
  • Te permite mantener el control total de tu configuración de Kubernetes para realizar ajustes adicionales.
Puerta de enlace de inferencia de GKE (vista previa)

Obtén enrutamiento basado en métricas, como la utilización de la caché KV, para mejorar la latencia.

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

  • Compartir modelos ajustados que usan archivos LoRA, con selección de extremos basada en la afinidad para lograr eficiencia en costos
  • Logra una alta disponibilidad accediendo de forma dinámica a la capacidad de GPU y TPU en todas las regiones.
  • Mejora la seguridad de tus modelos con las políticas del complemento Model Armor.
Aceleradores de carga de pesos del modelo

Accede a los datos en Cloud Storage rápidamente con Cloud Storage FUSE con almacenamiento en caché y descargas paralelas.

Para las cargas de trabajo de inferencia que exigen un rendimiento de expansión coherente, Google Cloud Hyperdisk ML es un disco conectado a la red que se puede conectar a hasta 2,500 Pods.

  • Optimiza el tiempo de inicio de la inferencia minimizando la latencia del modelo de carga de pesos en GKE.
  • Para las implementaciones con un ajuste de escala de nodos limitado, considera usar Cloud Storage FUSE para activar los pesos del modelo.
  • Para situaciones a gran escala que exigen un acceso coherente y de baja latencia a pesos de modelos grandes, Google Cloud Hyperdisk ML ofrece una solución de almacenamiento en bloque dedicada.

Planificación de la inferencia

En esta sección, se abordan algunas de las consideraciones clave que debes tener en cuenta para tus cargas de trabajo de inferencia en GKE.

Rentabilidad

Publicar grandes modelos de IA generativa puede ser costoso debido al uso de aceleradores, por lo que debes enfocarte en la utilización eficiente de los recursos. Seleccionar el tipo de máquina y el acelerador adecuados es fundamental para garantizar que la memoria del acelerador coincida con el tamaño del modelo y el nivel de cuantificación. Por ejemplo, las instancias G2 con GPU NVIDIA L4 pueden ser rentables para modelos más pequeños, mientras que las instancias A3 son más adecuadas para los más grandes.

Sigue estas sugerencias y recomendaciones para maximizar la rentabilidad:

Rendimiento

Para optimizar el rendimiento de la inferencia en GKE, enfócate en las siguientes métricas de comparativas:

Indicadores de comparativas Métrica (unidad) Descripción
Latencia Tiempo hasta el primer token (TTFT) (ms) Es el tiempo que tarda en generarse el primer token para una solicitud.
Tiempo normalizado por token de salida (NTPOT) (ms) Es la latencia de solicitud normalizada por la cantidad 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 en toda la solicitud, ITL mide el tiempo que se tarda en generar cada token de salida individual. Luego, estas mediciones individuales se agregan para producir valores medios, medianos y de percentiles, como el p90.
Latencia de la solicitud (ms) Tiempo de extremo a extremo para completar una solicitud.
Capacidad de procesamiento Solicitudes por segundo Es la cantidad total de solicitudes que publicas por segundo. Ten en cuenta que esta métrica podría no ser una forma confiable de medir el rendimiento del LLM, ya que puede variar mucho para diferentes longitudes de contexto.
Tokens de salida por segundo Es una métrica común que se mide como total_output_tokens_generated_by_server / elapsed_time_in_seconds.
Tokens de entrada por segundo Se mide como total_input_tokens_generated_by_server / elapsed_time_in_seconds.
Tokens por segundo Se mide como total_tokens_generated_by_server / elapsed_time_in_seconds. Esta métrica cuenta los tokens de entrada y salida, lo que te ayuda a comparar cargas de trabajo con tiempos de prefill altos en comparación con tiempos de decodificación altos.

Ten en cuenta estas sugerencias y recomendaciones adicionales para mejorar el rendimiento:

  • Para obtener los aceleradores recomendados según tus necesidades de rendimiento, usa la Guía de inicio rápido de la inferencia.
  • Para mejorar el rendimiento, usa técnicas de optimización del servidor de modelos, como el procesamiento por lotes y PagedAttention, que se encuentran en nuestra guía de prácticas recomendadas. Además, prioriza la administración eficiente de la memoria y el cálculo de la atención para lograr latencias entre tokens constantemente bajas.
  • Usa métricas estandarizadas en todos los servidores de modelos (como Hugging Face TGI, vLLM o NVIDIA Triton) para mejorar el ajuste de escala automático y el balanceo de cargas, lo que puede ayudarte a lograr una mayor capacidad de procesamiento con la latencia que elijas. GKE proporciona supervisión automática de aplicaciones para varios servidores de modelos.
  • Usa las funciones de infraestructura de red de GKE, como Inference Gateway, para minimizar la latencia.
  • Usa Cloud Storage FUSE con descargas paralelas y almacenamiento en caché, o Hyperdisk ML para acelerar la carga de pesos del modelo desde el almacenamiento persistente.

  • Para el entrenamiento o la inferencia a gran escala, usa Pathways. Pathways simplifica los cálculos de aprendizaje automático a gran escala, ya que permite que un solo cliente de JAX organice cargas de trabajo en varias porciones de TPU grandes. Para obtener más información, consulta Rutas de aprendizaje.

Capacidad de obtención

Garantizar la disponibilidad de los recursos (CPU, GPU y TPU) es fundamental para mantener el rendimiento, la disponibilidad y la rentabilidad de tus cargas de trabajo de inferencia. Las cargas de trabajo de inferencia suelen mostrar patrones de tráfico impredecibles y con ráfagas, lo que puede poner a prueba la capacidad del hardware. GKE aborda estos desafíos con funciones como las siguientes:

  • Opciones de consumo de recursos: Elige entre opciones como reservas para capacidad garantizada, escalamiento rentable, programador dinámico de cargas de trabajo y VMs Spot para la optimización de costos y el acceso a pedido para la disponibilidad inmediata.
  • Ajuste del tamaño de los recursos: Por ejemplo, Google Cloud ofrece VMs A3 High más pequeñas con GPU NVIDIA H100 (1 g, 2 g o 4 g) para un ajuste rentable de la inferencia de IA generativa que admite VMs Spot.
  • Clases de procesamiento para aceleradores: Puedes usar clases de procesamiento personalizadas para tener un control más detallado, evitar el aprovisionamiento excesivo y maximizar la disponibilidad de recursos con opciones automáticas de respaldo.

Actualizaciones de nodos

GKE automatiza gran parte del proceso de actualización, pero debes tener en cuenta las estrategias de actualización, en especial para la compatibilidad y las pruebas. Para las actualizaciones manuales, puedes elegir entre actualizaciones de aumento o azul-verde según la tolerancia a las interrupciones de tu carga de trabajo de inferencia. Las actualizaciones de aumento son rápidas, pero pueden afectar brevemente los servicios. Las actualizaciones azul-verde ofrecen un tiempo de inactividad casi nulo, lo que es fundamental para la inferencia en tiempo real. Para obtener más información, consulta Estrategias de actualización de nodos.

Las GPU y las TPU no admiten la migración en vivo, por lo que el mantenimiento requiere reiniciar los Pods. Usa las notificaciones de GKE para prepararte ante interrupciones. Te recomendamos que uses presupuestos de interrupción de Pods (PDB) para garantizar que siga disponible una cantidad mínima de Pods. Asegúrate de que tus Pods puedan controlar la finalización de forma correcta. Los eventos de host único pueden interrumpir las porciones de TPU, por lo que debes planificar la redundancia. Para conocer más prácticas recomendadas, consulta Administra la interrupción de nodos de GKE para GPUs y TPUs.

Prueba ejemplos de inferencia

Encuentra ejemplos de implementación de GKE para modelos de IA generativa, aceleradores y servidores de modelos. Si recién comienzas, te recomendamos que explores el instructivo Entrega modelos abiertos de Gemma con GPUs en GKE con vLLM.

También puedes buscar un instructivo por palabra clave:

Accelerator Servidor de modelos Instructivo
GPU vLLM Entrega LLMs como DeepSeek-R1 671B o Llama 3.1 405B en GKE
GPU vLLM Entrega modelos de Llama con GPUs en GKE con vLLM
GPU vLLM Entrega modelos abiertos de Gemma con GPUs en GKE con vLLM
GPU vLLM Entrega un LLM con GKE Inference Gateway
GPU NVIDIA Triton Entrega un modelo con una sola GPU en GKE
GPU Ray Serve Entrega un LLM en GPU L4 con Ray
GPU TGI Entrega un LLM con varias GPUs en GKE
GPU NVIDIA Triton Entrega modelos abiertos de Gemma con GPUs en GKE con Triton y TensorRT-LLM
GPU TGI de Hugging Face Entrega modelos abiertos de Gemma mediante GPUs en GKE con Hugging Face TGI
GPU TensorFlow Serving Entrega un modelo con una sola GPU en GKE
TPU vLLM Entrega un LLM con TPU Trillium en GKE con vLLM
TPU vLLM Entrega un LLM con TPU en GKE con KubeRay
TPU JetStream Entrega un LLM con TPU en GKE con JetStream y PyTorch
TPU JetStream Entrega Gemma con TPU en GKE con JetStream
TPU MaxDiffusion Entrega Stable Diffusion XL (SDXL) con TPU en GKE con MaxDiffusion
TPU Optimum TPU Entrega modelos de código abierto con TPUs en GKE con Optimum TPU

¿Qué sigue?