Por qué usar GKE para la inferencia de IA y aprendizaje automático

Este documento es la primera parte de una serie dirigida a ingenieros de aprendizaje automático (ML) que no han usado GKE y quieren empezar a ejecutar cargas de trabajo de inferencia en GKE lo antes posible.

En esta serie, no intentaremos enseñarte todas las opciones de GKE disponibles. En su lugar, te proporcionamos la información básica que necesitas para que tus cargas de trabajo se ejecuten en GKE. Esta serie incluye los siguientes documentos:

Si trabajas en el campo de la IA o el aprendizaje automático, puedes usar Google Kubernetes Engine (GKE) para gestionar tus implementaciones de modelos. GKE es un servicio que te permite automatizar el despliegue, el escalado y la monitorización de tus cargas de trabajo de inferencia basadas en Kubernetes y la infraestructura informática en la que se ejecutan. En este documento se describen algunas de las principales ventajas de usar GKE para la inferencia de modelos, entre las que se incluyen las siguientes:

Antes de empezar

Antes de leer este documento, debes familiarizarte con lo siguiente:

Empaqueta tus modelos para que tengan un rendimiento constante

La inferencia de modelos coherente y fiable es fundamental para tu aplicación de IA, y GKE puede reducir la complejidad operativa de gestionar la inferencia a gran escala. Al empaquetar 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 forma coherente en GKE. La contenedorización ayuda a reducir los errores causados por dependencias no coincidentes o entornos incoherentes. GKE despliega y gestiona automáticamente estos contenedores. Se encarga de 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 y aprendizaje automático.

Usar GPUs y TPUs para reducir la latencia de servicio

La latencia es un problema para las cargas de trabajo de inferencia y algunos modelos complejos dependen de aceleradores por hardware, como las GPUs y las TPUs, para acelerar el servicio de inferencia. GKE simplifica el proceso de usar GPUs o TPUs para tus cargas de trabajo de inferencia sensibles a la latencia. Tú eliges las configuraciones de hardware específicas que mejor se adapten a tus requisitos de rendimiento y coste, y GKE aprovisiona y gestiona automáticamente el hardware que elijas. Por ejemplo, GKE automatiza la instalación de controladores NVIDIA, un paso que normalmente requiere una configuración manual en Kubernetes.

GKE también ofrece funciones de gestión de recursos para que puedas usar los recursos de TPU y GPU de forma más eficiente para el servicio de inferencias. Por ejemplo, puedes usar GKE para programar o compartir grupos de GPUs o TPUs en varios modelos, o bien puedes usar aceleradores con máquinas virtuales de acceso puntual para aumentar la rentabilidad de las cargas de trabajo de inferencia tolerantes a fallos. Estas funciones te ayudan a maximizar el uso de los recursos de acelerador y, al mismo tiempo, optimizar la latencia de servicio y los costes.

Gestionar automáticamente los patrones de tráfico fluctuantes

El tráfico y la carga de las cargas de trabajo de inferencia en tiempo real pueden ser impredecibles y dinámicos. Un pico de demanda puede provocar un aumento de la latencia y una reducción del rendimiento. GKE ofrece un enfoque de autoescalado de varias capas para que puedas añadir o quitar recursos automáticamente y satisfacer la demanda de inferencia variable. Por ejemplo, puedes usar el autoescalador de pods horizontal (HPA) para ajustar automáticamente el número de pods de una implementación o el autoescalador de clústeres para ajustar automáticamente el número de nodos de un grupo de nodos. Si usas las funciones de autoescalado de GKE, puedes adaptar de forma eficiente la cantidad de recursos que necesita tu carga de trabajo de inferencia a la demanda de la aplicación.

Monitorizar el estado y el rendimiento de la carga de trabajo de inferencia

GKE está integrado con la Google Cloud suite de observabilidad (Cloud Logging y Cloud Monitoring) y puedes usar las funciones de observabilidad integradas para monitorizar el estado y el rendimiento de tus cargas de trabajo de inferencia. Estas funciones de observabilidad te permiten conocer y ver cómo funciona tu carga de trabajo después de implementarla. Por ejemplo, puede que te preguntes si tu modelo funciona como esperabas o si tu carga de trabajo cumple los requisitos de latencia y precisión.

GKE genera informes automáticamente sobre métricas de infraestructura, como el uso de CPU, memoria y aceleradores. Para responder a preguntas sobre el rendimiento de un modelo específico, 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 monitorización automática de aplicaciones y monitorizar métricas de inferencia clave, como las solicitudes por segundo (RPS); monitorizar la deriva de conceptos analizando métricas específicas del modelo, como la distribución de datos de entrada, y depurar problemas realizando análisis de registros históricos.

Usar GKE para disfrutar de portabilidad y flexibilidad

Al usar estándares abiertos, como los contenedores, y tecnologías de código abierto, como Kubernetes, GKE te ofrece la libertad de mover tus cargas de trabajo de servicio de inferencia a diferentes ubicaciones y usar diferentes recursos y herramientas a medida que cambien tus requisitos. Por ejemplo, puedes desarrollar y probar tu aplicación de inferencia en GKE y, a continuación, desplegar esa misma aplicación en contenedores en tu entorno local para la producción.

En resumen, puedes usar GKE para optimizar la forma en que trasladas tus modelos de IA y aprendizaje automático del desarrollo a la producción. GKE se encarga de muchas de las complejidades que implica la gestión de la infraestructura, lo que significa que puedes centrarte en ejecutar tus cargas de trabajo de inferencia en un entorno eficiente, escalable y observable. A lo largo de esta serie, aprenderás a usar GKE para transformar tus modelos de IA y aprendizaje automático en aplicaciones potentes y listas para producción.

Siguientes pasos