Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, aprenderá a ejecutar cargas de trabajo de IA distribuidas en Azure Kubernetes Service (AKS) mediante Ray para el entorno de ejecución de proceso y Kueue para el control de admisión. Esta solución abarca todo el ciclo de vida del aprovisionamiento de infraestructura a través del entrenamiento, la inferencia por lotes y el servicio en línea.
Importante
El software de código abierto se menciona en toda la documentación y ejemplos de AKS. El software que implemente se excluye de los contratos de nivel de servicio de AKS, la garantía limitada y el Soporte técnico de Azure. A medida que usa la tecnología de código abierto junto con AKS, consulte las opciones de soporte técnico disponibles en las comunidades y los mantenedores de proyectos respectivos para desarrollar un plan.
Microsoft asume la responsabilidad de crear los paquetes de código abierto que implementamos en AKS. Esa responsabilidad incluye tener la propiedad completa del proceso de compilación, examen, firma, validación y revisión, junto con el control sobre los archivos binarios en imágenes de contenedor. Para obtener más información, consulte Administración de vulnerabilidades para AKS y cobertura de soporte técnico de AKS.
¿Qué es Ray?
Ray es un marco de código abierto para escalar la inteligencia artificial y las aplicaciones Python. Proporciona un entorno de ejecución unificado para entrenamiento distribuido, ajuste de hiperparámetros, inferencia por lotes y servicio de modelos, por lo que puede escalar las cargas de trabajo entre varios nodos sin volver a escribir la lógica de la aplicación.
Ray simplifica la computación distribuida mediante el control de la programación, la tolerancia a errores y la administración de recursos. El marco admite bibliotecas de aprendizaje automático como PyTorch, TensorFlow y Hugging Face mediante integraciones como Ray Train, Ray Data y Ray Serve. Para obtener más información, consulte el repositorio de GitHub de Ray.
¿Qué es KubeRay?
KubeRay es un operador de Kubernetes que administra el ciclo de vida de los clústeres de Ray. Proporciona recursos personalizados, RayJob para cargas de trabajo por lotes y RayService para puntos de conexión de servicio persistentes, que automatizan la creación, el escalado y la desmontaje del clúster. Para obtener más información, consulte el repositorio de GitHub de KubeRay.
¿Qué es Kueue?
Kueue es un controlador de cola de trabajos nativo de Kubernetes que administra la admisión de cargas de trabajo en función de las cuotas de recursos. En lugar de permitir que cada trabajo enviado consuma recursos de forma inmediata, Kueue controla la admisión en función de cuotas definidas: los trabajos que cumplen los requisitos se ejecutan, los que no, esperan en cola. Para obtener información general detallada sobre los conceptos y la configuración de Kueue, consulte Introducción a Kueue en AKS.
Arquitectura de la solución
Esta solución combina Kueue para el control de admisión con KubeRay para la gestión del ciclo de vida del clúster de Ray en AKS. Terraform aprovisiona la infraestructura, Helm instala los operadores desde Microsoft Container Registry (MCR) y la identidad de carga de trabajo proporciona acceso seguro a Azure Blob Storage sin credenciales almacenadas.
El proceso de implementación consta de tres módulos:
- Infraestructura: Terraform aprovisiona el clúster de AKS con grupos de nodos de GPU, instala operadores kubeRay y Kueue a través de Helm, crea Azure Blob Storage y configura la identidad de la carga de trabajo.
- Colas de Kueue — Los manifiestos de Kubernetes definen ResourceFlavors (tipos de nodos de CPU y GPU), ClusterQueues (cuotas y directivas de admisión) y LocalQueues (puntos de envío con ámbito de espacio de nombres).
- Cargas de trabajo — Los manifiestos de RayJob y RayService envían cargas de trabajo de IA que Kueue admite en función de la cuota disponible.
Las cargas de trabajo de Ray comienzan por suspend: true. Kueue evalúa la disponibilidad de la cuota y reanuda las cargas de trabajo admitidas; en ese momento, KubeRay crea el clúster Ray y ejecuta el trabajo.
Ejemplos de carga de trabajo
| Example | Tipo | GPUs | Description |
|---|---|---|---|
| Ajustar el modelo meteorológico Aurora | RayJob | 1×A100 | Ajuste fino LoRA del modelo base meteorológico Microsoft Aurora |
| Entrenar un LLM | RayJob | 4×A100 | Ajuste fino distribuido de Qwen2.5-7B LoRA con LLaMA-Factory |
| Ejecutar la inferencia por lotes | RayJob | 1×A100 | Inferencia fuera de línea con vLLM usando un adaptador LoRA entrenado |
| Servir un modelo en línea | RayService | 1×GPU | Punto de conexión HTTP persistente con Ray Serve |