Por qué usar GKE para la inferencia de IA/AA

Este documento es la primera parte de una serie destinada a los ingenieros de aprendizaje automático (AA) que no tienen experiencia en el uso de Google Kubernetes Engine (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 sobre 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:

Como ingeniero de plataformas de IA/AA, puedes usar 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:

Antes de comenzar

Antes de leer este documento, debes estar familiarizado con lo siguiente:

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 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 aprovisionar recursos nuevamente 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 GPUs o TPUs para tus cargas de trabajo de inferencia sensibles a la latencia, ya que simplifica el aprovisionamiento y la administración de hardware. Eliges las configuraciones de hardware específicas que mejor se adapten a tus requisitos de rendimiento y costo, y GKE aprovisiona automáticamente nodos con el hardware seleccionado para ejecutar tus cargas de trabajo. GKE también automatiza los pasos de configuración que suelen requerir una configuración manual en Kubernetes, como la instalación de controladores de NVIDIA. Para obtener un control más detallado sobre la configuración de los nodos, puedes usar ComputeClasses personalizadas para crear perfiles de hardware específicos y reutilizables que GKE usa cuando aprovisiona nodos.

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 mejorar el uso de la GPU alojando varios modelos en un solo servidor de GPU con el uso compartido de GPU o reducir los costos de los trabajos de inferencia tolerantes a errores ejecutándolos en VMs Spot con aceleradores. Para las cargas de trabajo pequeñas y medianas con requisitos de demanda fluctuantes o duraciones cortas, puedes usar Flex-start, que proporciona una técnica flexible y rentable para consumir recursos de procesamiento especializados, como GPUs o TPUs. Estas capacidades te ayudan a maximizar el uso de los recursos del acelerador y, al mismo tiempo, optimizar la latencia y el costo de la publicación.

Administrar 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 Deployment o el escalador automático de clústeres para ajustar automáticamente la cantidad de nodos en un grupo de nodos existente. Con 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 previsto 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?