Este documento es la primera parte de una serie dirigida a ingenieros de aprendizaje automático (AA) que no tienen experiencia en el uso de GKE y desean comenzar a ejecutar cargas de trabajo de inferencia en GKE lo más rápido posible.
En esta serie, no intentaremos enseñarte todas las opciones disponibles de GKE. En cambio, te proporcionamos la información básica que necesitas saber para ejecutar tus cargas de trabajo en GKE. Esta serie incluye los siguientes documentos:
- Por qué usar GKE para la inferencia de IA/AA (este documento)
- Acerca de la inferencia de modelos de IA/AA en GKE
- Conceptos simplificados del ajuste de escala automático para cargas de trabajo de IA/AA en GKE
Como profesional de la IA/AA, puedes usar Google Kubernetes Engine (GKE) para administrar las implementaciones de tus modelos. GKE es un servicio que te permite automatizar la implementación, el ajuste de escala y la supervisión de tus cargas de trabajo de inferencia basadas en Kubernetes y la infraestructura de procesamiento en la que se ejecutan tus cargas de trabajo. En este documento, se describen algunos de los beneficios clave de usar GKE para la inferencia de modelos, incluidos los siguientes:
- Rendimiento coherente de la aplicación
- Acceso optimizado a hardware de inferencia especializado
- Ajuste de escala automático de tus cargas de trabajo de inferencia
- Supervisión y registro automatizados del rendimiento y el estado de la carga de trabajo
- Portabilidad y flexibilidad del uso de estándares abiertos y tecnologías de código abierto
Antes de comenzar
Antes de leer este documento, debes estar familiarizado con lo siguiente:
- Conceptos fundamentales de Kubernetes: Aprende sobre los contenedores, los Pods, los nodos y los clústeres, y cómo se relacionan entre sí.
- Modos de operación de GKE: Obtén información sobre los clústeres de GKE Standard y Autopilot, sus usos y sus diferencias.
Empaqueta tus modelos para obtener un rendimiento coherente
La inferencia del modelo coherente y confiable es fundamental para tu aplicación de IA, y GKE puede reducir la complejidad operativa de administrar la inferencia a gran escala. Cuando empaquetas tu modelo entrenado, el servidor de inferencia y todas las dependencias en un contenedor, creas un artefacto estandarizado y portátil que se ejecuta de manera coherente en GKE. La contenerización ayuda a reducir los errores causados por dependencias no coincidentes o entornos incoherentes. GKE implementa y administra automáticamente estos contenedores. Maneja tareas como reiniciar cargas de trabajo que fallan o volver a aprovisionar recursos para ayudar a estabilizar el rendimiento de tus cargas de trabajo de IA/AA.
Usa GPU y TPU para reducir la latencia de la entrega
La latencia es un problema para las cargas de trabajo de inferencia, y algunos modelos complejos dependen de aceleradores de hardware, como las GPU y las TPU, para acelerar la entrega de inferencias. GKE optimiza el proceso de uso de GPU o TPU para tus cargas de trabajo de inferencia sensibles a la latencia. Elige las configuraciones de hardware específicas que mejor se adapten a tus requisitos de rendimiento y costo, y GKE aprovisionará y administrará automáticamente el hardware que elijas. Por ejemplo, GKE automatiza la instalación del controlador de NVIDIA, un paso que suele requerir configuración manual en Kubernetes.
GKE también ofrece capacidades de administración de recursos para que puedas usar de manera más eficiente los recursos de TPU y GPU para la entrega de inferencias. Por ejemplo, puedes usar GKE para programar o compartir grupos de GPU o TPU en varios modelos, o bien puedes usar aceleradores con VMs Spot para aumentar la eficiencia en cuanto a costos de las cargas de trabajo de inferencia tolerantes a errores. Estas capacidades te ayudan a maximizar el uso de los recursos del acelerador y, al mismo tiempo, optimizar la latencia de la publicación y el costo.
Administra automáticamente los patrones de tráfico fluctuantes
El tráfico y la carga en las cargas de trabajo de inferencia en tiempo real pueden ser impredecibles y dinámicos. Un aumento repentino en la demanda puede generar un incremento en la latencia y una reducción en el rendimiento. GKE ofrece un enfoque de varias capas para el ajuste de escala automático, de modo que puedas agregar o quitar recursos automáticamente para satisfacer la demanda variable de inferencia. Por ejemplo, puedes usar el Horizontal Pod Autoscaler (HPA) para ajustar automáticamente la cantidad de Pods en una implementación o el escalador automático de clústeres para ajustar automáticamente la cantidad de nodos en un grupo de nodos existente. Si usas las capacidades de ajuste de escala automático de GKE, puedes hacer coincidir de manera eficiente la cantidad de recursos que necesita tu carga de trabajo de inferencia con la cantidad de demanda de la aplicación.
Supervisa el estado y el rendimiento de tu carga de trabajo de inferencia
GKE se integra en la Google Cloud suite de observabilidad (Cloud Logging y Cloud Monitoring), y puedes usar las funciones de observabilidad integradas para supervisar el estado y el rendimiento de tus cargas de trabajo de inferencia. Estas funciones de observabilidad te brindan estadísticas y visibilidad sobre el rendimiento de tu carga de trabajo después de implementarla. Por ejemplo, es posible que te preguntes si tu modelo funciona según lo esperado o si tu carga de trabajo cumple con tus requisitos de latencia y exactitud.
GKE informa automáticamente las métricas de infraestructura, como el uso de CPU, memoria y aceleradores. Para responder preguntas sobre el rendimiento específico del modelo, puedes usar Google Cloud Managed Service para Prometheus o enviar métricas personalizadas desde tu aplicación de inferencia a Cloud Monitoring. Por ejemplo, puedes configurar la supervisión automática de aplicaciones y supervisar las métricas de inferencia clave, como las solicitudes por segundo (RPS); supervisar la desviación del concepto analizando las métricas específicas del modelo, como la distribución de los datos de entrada; y depurar problemas realizando un análisis histórico de los registros.
Usa GKE para obtener portabilidad y flexibilidad
Con el uso de estándares abiertos, como los contenedores, y tecnologías de código abierto, como Kubernetes, GKE te brinda la libertad de trasladar tus cargas de trabajo de servicio de inferencia a diferentes ubicaciones y usar diferentes recursos y herramientas a medida que cambian tus requisitos. Por ejemplo, puedes desarrollar y probar tu aplicación de inferencia en GKE y, luego, implementar esa misma aplicación en contenedores en tu entorno local para la producción.
En conclusión, puedes usar GKE para optimizar la forma en que trasladas tus modelos de IA/AA del desarrollo a la producción. GKE controla muchas de las complejidades relacionadas con la administración de la infraestructura, lo que significa que puedes enfocarte en ejecutar tus cargas de trabajo de inferencia en un entorno observable, escalable y de alto rendimiento. A medida que avances en esta serie, aprenderás a usar GKE para transformar tus modelos de IA/AA en aplicaciones potentes y listas para la producción.
¿Qué sigue?
- Acerca de la inferencia de modelos de IA/AA en GKE (el siguiente documento de esta serie)
- Aprende a entregar un modelo con una sola GPU en GKE
- Obtén más información para entregar LLMs abiertos en GKE con una arquitectura preconfigurada