Clúster y carga de trabajo de GKE de inferencia previa al entrenamiento de IA

Para crear una aplicación de IA, aprovisiona un clúster de Google Kubernetes Engine (GKE) seguro y privado optimizado para cargas de trabajo de IA y, luego, implementa tu carga de trabajo con un gráfico de Helm. En esta guía, se describen las siguientes plantillas, que puedes personalizar para implementar una aplicación de IA:

  • Clúster de GKE de inferencia previamente entrenada de IA: crea la infraestructura fundamental necesaria para la entrega de modelos de alto rendimiento. Esta plantilla configura un clúster de GKE seguro y privado optimizado para la inferencia de IA.

  • Carga de trabajo de GKE de inferencia previamente entrenada de IA (vista previa): Implementa un gráfico de Helm que incluye la configuración para una carga de trabajo de IA. Usa el gráfico de Helm para implementar un modelo de Gemma previamente entrenado con el motor de entrega de vLLM. La carga de trabajo está configurada para solicitudes eficientes de recursos de GPU y un Horizontal Pod Autoscaler (HPA) para escalar en función del uso de la caché de GPU.

Por ejemplo, puedes implementar las plantillas de clúster y carga de trabajo para abordar las siguientes necesidades empresariales:

Ejemplo Necesidad empresarial Implementación
Análisis de video en tiempo real Una empresa de seguridad necesita procesar transmisiones de video de cientos de cámaras para detectar anomalías o objetos específicos en tiempo real. Implementa modelos de procesamiento de video en el grupo de nodos habilitado para GPU. Las GPU pueden procesar las demandas de alto rendimiento y baja latencia de las transmisiones de video simultáneas.
Procesamiento especializado de documentos Una empresa de seguros necesita extraer información automáticamente de miles de formularios de reclamo diarios, que contienen diseños y escritura a mano variados. Usa el clúster de GKE para alojar modelos personalizados y asegúrate de que los datos nunca salgan del entorno seguro durante el procesamiento.
Motor de recomendaciones de gran volumen Una plataforma de comercio electrónico necesita entregar recomendaciones de productos personalizadas a los usuarios durante los eventos de compras navideñas de temporada alta. Usa la API de Gateway de Google Kubernetes Engine para enrutar grandes volúmenes de tráfico de usuarios a los modelos de recomendaciones. La API de Gateway puede controlar los aumentos repentinos de tráfico sin degradación de la latencia.

Arquitectura

En la siguiente imagen, se muestran los componentes y las conexiones de la plantilla:

Un clúster conectado a un grupo de nodos en el lienzo de diseño

A continuación, se describen las configuraciones de los componentes de esta plantilla:

  • Clúster estándar de GKE: Un clúster seguro y privado en el que se ejecuta tu carga de trabajo de IA.

    En la siguiente tabla, se describe la configuración del clúster en esta plantilla:

    Configuración Objetivo
    node_locations se configura como ["us-central1-a", "us-central1-b", "us-central1-c"]. Garantiza la alta disponibilidad y la resiliencia mediante la propagación de los nodos del clúster en tres zonas de la región us-central1.
    enable_intranode_visibility se configura como true. Habilita la visibilidad para el tráfico de pod a pod en el mismo nodo en los registros de flujo de VPC. Esta visibilidad es necesaria para la supervisión de la red, la solución de problemas y el análisis de seguridad.
    gateway_api_config se habilita con {"channel":"CHANNEL_STANDARD"}. La API de GKE Inference Gateway te ayuda a administrar el tráfico de entrada a tus servicios de Kubernetes. La API te ayuda a configurar el enrutamiento detallado, el balanceo de cargas avanzado y la vinculación de políticas centralizada.
    private_cluster_config.enable_private_endpoint se configura como false. private_cluster_config.enable_private_nodes es true. control_plane_endpoints_config.dns_endpoint_config.allow_external_traffic se configura como true. Garantiza que los nodos trabajadores en los que se ejecutan tus modelos de IA tengan direcciones IP privadas. Esto aísla tus nodos de Internet público. El plano de control de GKE está configurado para que sea accesible de forma pública y te permita administrar el clúster fuera de tu red de nube privada virtual (VPC).
    release_channel se configura como {"channel":"REGULAR"}. Garantiza que tu clúster de GKE reciba actualizaciones estables y predecibles, lo que proporciona un equilibrio entre las funciones nuevas y la confiabilidad.
  • Grupo de nodos de GKE: Un grupo de nodos trabajadores que ejecutan los contenedores de la aplicación.

    En la siguiente tabla, se describen las configuraciones del grupo de nodos en esta plantilla:

    Configuración Objetivo
    autoscaling.min_node_count se configura como 0. autoscaling.max_node_count se configura como 3 (el valor predeterminado es 100). El grupo de nodos puede reducirse por completo cuando no hay cargas de trabajo de IA en ejecución, lo que reduce los costos durante los períodos de inactividad. El límite superior para el escalamiento ayuda a controlar los costos y el consumo de recursos.
    Se agrega el parámetro node_config.guest_accelerator. gpu_driver_installation_config.gpu_driver_version: se configura como "LATEST". gpu_sharing_config se habilita con TIME_SHARING. max_shared_clients_per_gpu: se configura como 2. Especifica el uso de GPU NVIDIA L4 para tareas de inferencia de IA. Los controladores de GPU necesarios se instalan automáticamente. Varias cargas de trabajo más pequeñas pueden compartir una sola GPU.
    node_config.machine_type cambió a "g2-standard-8". El tipo de máquina está diseñado específicamente para complementar las GPU L4. Se crean CPU virtuales (8) y memoria (32 GB) para admitir la GPU y ejecutar tus aplicaciones de inferencia de IA.
    node_config.oauth_scopes incluye https://www.googleapis.com/auth/cloud-platform. La cuenta de servicio del nodo tiene acceso amplio a los Google Cloud servicios, lo que permite la interacción con la API para tareas como el registro, la supervisión y la extracción de imágenes de contenedor.
    node_config.shielded_instance_config.enable_secure_boot se configura como true. El inicio seguro ayuda a proteger tus nodos del software malicioso a nivel de inicio mediante la verificación de las firmas criptográficas del cargador de arranque y el kernel antes de que se ejecuten.

Configuración del gráfico de Helm

En la siguiente tabla, se enumeran las configuraciones del gráfico de Helm, que se personalizaron para implementar y escalar un servicio de inferencia de IA en GKE.

Configuración Objetivo
replicaCount: 1 Crea una sola réplica inicial.
image.repository: vllm/vllm-openai Usa una imagen de vLLM, una biblioteca optimizada para la inferencia de modelos de lenguaje grandes (LLM), expuesta con una API compatible con OpenAI.
model.id: google/gemma-7b-it Define el modelo ajustado por instrucciones de Gemma 7B como el modelo que se entregará.
model.hfSecret: hf-secret Indica que el modelo requiere autenticación con un secreto de Kubernetes para la administración segura de credenciales.
resources.limits y requests para nvidia.com/gpu: "1" Garantiza que cada pod obtenga una GPU dedicada.
nodeSelector.cloud.google.com/gke-accelerator: nvidia-l4 Garantiza que los pods de tu modelo de IA se programen exclusivamente en nodos estándar de GKE equipados con GPU NVIDIA L4, que son ideales para la inferencia rentable y de alto rendimiento.
hpa.enabled: true Habilita el escalador automático horizontal de Pods, que permite que la aplicación escale automáticamente la cantidad de pods (entre minReplicas: 1 y maxReplicas: 10) en función de targetCPUUtilizationPercentage: 80%. Garantiza el rendimiento durante las cargas máximas y la rentabilidad durante el uso bajo.
tensorParallelSize: 1 Indica que el modelo no se divide en varias GPU dentro de un solo pod.
maxModelLen: 512 Controla la longitud máxima de la secuencia que puede procesar el modelo Gemma 7B.
service.type: ClusterIP El servicio está configurado para el acceso interno dentro del clúster.
pdb.enabled: true y minAvailable: 1 Se habilita un presupuesto de interrupción de Pods para garantizar la alta disponibilidad. Al menos una réplica de tu modelo de IA permanece disponible durante las interrupciones voluntarias, como el mantenimiento de nodos.

Crea tu aplicación de IA

Usa las plantillas Clúster de GKE de inferencia previamente entrenada de IA y carga de trabajo para implementar tu aplicación de IA.

Implementa tu infraestructura de IA

Configura e implementa la plantilla Clúster de GKE de inferencia previamente entrenada de IA para crear la infraestructura fundamental en la que se ejecuta tu carga de trabajo de IA.

  1. Duplica e implementa la plantilla Clúster de GKE de inferencia previamente entrenada de IA como una aplicación.

    Se crea un clúster de GKE en el proyecto de implementación que elijas.

  2. Configura los componentes. Para obtener más información, consulta lo siguiente:

  3. Haz clic en Implementar. La aplicación se implementa después de varios minutos.

  4. En el panel Detalles de la aplicación, haz clic en la pestaña Salidas.

  5. Identifica el cluster_id de tu aplicación. Usarás esta información cuando implementes tu gráfico de Helm.

Implementa tu carga de trabajo de IA

Usa la plantilla Carga de trabajo de GKE de inferencia previamente entrenada de IA para implementar tu carga de trabajo de IA en el clúster que creaste. Implementarás un gráfico de Helm que incluye la configuración de tu carga de trabajo de IA.

  1. En la página Catálogo de Google, en la plantilla Carga de trabajo de GKE de inferencia previamente entrenada de IA, haz clic en Crear aplicación nueva.

  2. En el campo Nombre, ingresa un nombre único para tu aplicación.

  3. En el área Destino de implementación de GKE, haz lo siguiente:

    1. En la lista de proyectos, selecciona el proyecto en el que implementaste el clúster de GKE desde tu aplicación Clúster de GKE de inferencia previamente entrenada de IA.

    2. En la lista Región, selecciona la región en la que implementaste el clúster de GKE.

    3. En la lista Clústeres, selecciona el clúster de GKE implementado.

    4. En la lista Espacio de nombres, ingresa el espacio de nombres en el que implementaste tu clúster de GKE. Si no cambiaste el nombre, ingresa default.

    5. Haz clic en Crear aplicación.

    Se crea la aplicación y se muestran los archivos de configuración.

  4. En el panel Gráfico de Helm, haz lo siguiente:

    1. Revisa los detalles de configuración.

    2. Opcional: Personaliza la configuración para satisfacer tus necesidades únicas.

    3. Para implementar el gráfico de Helm en tu clúster, haz clic en Implementar.

      Para ver los pasos detallados, consulta Implementa aplicaciones.

    Después de varios minutos, la configuración del gráfico de Helm se implementa en tu clúster de GKE.

¿Qué sigue?