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 IA/AA 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.
- Sigue los pasos de Deploy Models para implementar un modelo y un servidor de modelos alojados en contenedores.
- Lee la Descripción general de las prácticas recomendadas de inferencia en GKE, que incluye 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 de modelos 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 hardware especializado, como las unidades de procesamiento gráfico (GPU) de NVIDIA y las unidades de procesamiento tensorial (TPU) de Google, que se pueden conectar a los nodos de GKE para acelerar los cálculos, en especial para las tareas de entrenamiento y de inferencia.
- Cuantización: Es una técnica que se usa para reducir el tamaño de los modelos de IA/AA y mejorar la velocidad de inferencia convirtiendo los pesos y las activaciones del modelo de tipos de datos de mayor precisión a tipos de datos de menor precisión.
Beneficios de GKE para la inferencia
La publicación de inferencias en GKE ofrece varios beneficios:
- Relación rendimiento-precio 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, lo que facilita 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:
Coloca tu modelo en un contenedor: Colocar en un contenedor una aplicación es crear una imagen de contenedor, que es un paquete ejecutable que incluye todo lo necesario para ejecutar la aplicación: código, entorno de ejecución, herramientas del sistema, bibliotecas del sistema y configuración. Una aplicación simple se puede contener en un solo contenedor, mientras que una aplicación más compleja se puede dividir en varios componentes contenidos. 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.
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.
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 LoRA si es necesario.
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. Usa Inference Gateway para el balanceo de cargas inteligente diseñado para cargas de trabajo de IA generativa o consulta la comparación de estrategias de balanceo de cargas para elegir la mejor opción según tus necesidades.
Controla las solicitudes de inferencia: Envía datos de 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.
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. El Horizontal Pod Autoscaler (HPA) es un controlador de Kubernetes que aumenta o disminuye automáticamente la cantidad de Pods en una carga de trabajo (como una Deployment) según las métricas observadas, como el uso de CPU o las métricas personalizadas. 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 |
Analiza el rendimiento y la rentabilidad de tus cargas de trabajo de inferencia. Especifica las necesidades de tu empresa y obtén prácticas recomendadas personalizadas para la combinación de aceleradores, configuraciones de escalamiento y almacenamiento, y servidores de modelos que mejor satisfagan tus necesidades. Puedes acceder a este servicio con la CLI de gcloud y la consola de Google Cloud . Para obtener más información, consulta la guía de inicio rápido para analizar el rendimiento y los costos de la entrega de modelos con GKE Inference. |
|
| GKE Inference Gateway | Obtén enrutamiento basado en métricas, como el uso de la caché KV, para mejorar la latencia. Para obtener más información, consulta Acerca de GKE Inference Gateway. |
|
| 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 obtener más información sobre el uso de Cloud Storage FUSE para cargas de trabajo de AA/ML, consulta la arquitectura de referencia. Google Cloud Managed Lustre es un sistema de archivos paralelo completamente administrado y de alto rendimiento optimizado para la IA que se puede adjuntar a 10,000 o más Pods. Para obtener más información sobre el uso de Lustre administrado para cargas de trabajo de AA/ML, consulta la arquitectura de referencia. Google Cloud Hyperdisk ML es un disco conectado a la red que se puede adjuntar a hasta 2,500 Pods. |
|
Métricas de rendimiento de la inferencia
Para optimizar tus cargas de trabajo de inferencia, es importante que comprendas 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 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 de los 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. |
Planificación de la inferencia
Una implementación exitosa de la inferencia requiere una planificación cuidadosa en varias áreas clave, como la rentabilidad, el rendimiento y la disponibilidad de recursos. Para obtener recomendaciones detalladas sobre cómo compilar una plataforma de inferencia escalable, eficaz y rentable, consulta la Descripción general de las prácticas recomendadas de inferencia en GKE.
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 abiertos de Gemma con GPUs en GKE con vLLM |
| GPU | vLLM | Entrega un LLM con la puerta de enlace de inferencia de GKE |
| GPU | vLLM | Entrega LLMs abiertos en GKE con una arquitectura preconfigurada |
| GPU | Ray Serve | Entrega un LLM en GPU L4 con Ray |
| GPU | TGI | Entrega un LLM con varias GPUs en GKE |
| GPU | TorchServe | Entrega T5 en GKE con TorchServe |
| TPU | vLLM | Entrega un LLM con TPU Trillium en GKE con vLLM |
| TPU | vLLM | Entrega un LLM con TPU en GKE con KubeRay |
| TPU | MaxDiffusion | Entrega Stable Diffusion XL (SDXL) con TPU en GKE con MaxDiffusion |
| TPU | vLLM | Entrega LLMs con TPU de varios hosts |
| TPU | vLLM | Entrega LLMs abiertos en TPU con una arquitectura preconfigurada |
¿Qué sigue?
- Visita el portal de organización de IA/AA en GKE para explorar nuestras guías, instructivos y casos de uso oficiales para ejecutar cargas de trabajo de IA/AA en GKE.
- Explora muestras experimentales para aprovechar GKE y acelerar tus iniciativas de IA/AA en GKE AI Labs.