Introducción al destino de proceso de Kubernetes en Azure Machine Learning
SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)
Con la CLI de Azure Machine Learning o el SDK v2 de Python, Azure Machine Learning introdujo un nuevo destino de proceso: el destino de proceso de Kubernetes. Puede habilitar fácilmente un clúster del servicio Azure Kubernetes Service (AKS) existente o un clúster de Kubernetes habilitado para Azure Arc (Arc Kubernetes) para que se convierta en un destino de proceso de Kubernetes en Azure Machine Learning y usarlo para entrenar o implementar modelos.
En este artículo, aprenderá lo siguiente:
- Cómo funciona
- Escenarios de uso
- Procedimientos recomendados
- KubernetesCompute y AksCompute heredado
Cómo funciona
El proceso de Kubernetes de Azure Machine Learning admite dos tipos de clústeres de Kubernetes:
- Clúster de AKS en Azure. Con su propio clúster de AKS administrado de Azure, puede obtener seguridad y controles para satisfacer los requisitos de cumplimiento, así como flexibilidad para administrar la carga de trabajo de ML de los equipos.
- Clúster de Kubernetes para Arc fuera de Azure. Con el clúster de Kubernetes para Arc, puede entrenar o implementar modelos en cualquier infraestructura local, en varias nubes o en el perímetro.
Con una implementación de extensión de clúster simple en el clúster de AKS o clúster de Kubernetes para Arc, el clúster de Kubernetes es plenamente compatible con Azure Machine Learning para ejecutar la carga de trabajo de entrenamiento o inferencia. Es fácil habilitar y usar un clúster de Kubernetes existente para la carga de trabajo de Azure Machine Learning con los sencillos pasos siguientes:
- Prepare un clúster de Azure Kubernetes Service o un clúster de Kubernetes para Arc.
- Implementación de la extensión de Azure Machine Learning.
- Conexión del clúster de Kubernetes a un área de trabajo de Azure Machine Learning.
- Use el destino de proceso de Kubernetes desde la CLI v2, el SDK v2 y la interfaz de usuario de Studio.
Equipo de operaciones de TI. El equipo de operaciones de TI es responsable de los tres primeros pasos: preparar un clúster de AKS o un clúster de Kubernetes para Arc, implementar la extensión del clúster de Azure Machine Learning y asociar un clúster de Kubernetes al área de trabajo de Azure Machine Learning. Además de estos pasos de configuración de proceso esenciales, el equipo de operaciones de TI también usa herramientas conocidas como la CLI de Azure o kubectl a fin de efectuar las siguientes tareas para el equipo de ciencia de datos:
- Configuraciones de red y seguridad, como la conexión de servidor proxy saliente o la configuración del firewall de Azure, la configuración del enrutador de inferencia (azureml-fe), la terminación SSL/TLS y la configuración de red virtual.
- Creación y administración de tipos de instancia para diferentes escenarios de carga de trabajo de ML y uso optimizado de los recursos de proceso.
- Solución problemas asociados a la carga de trabajo para el clúster de Kubernetes.
Equipo de ciencia de datos. Una vez que el equipo de operaciones de TI finaliza la configuración y los destinos de proceso, el equipo de ciencia de datos podrá observar una lista de los destinos de proceso y los tipos de instancia disponibles en el área de trabajo de Azure Machine Learning. Estos recursos de proceso se pueden usar para la carga de trabajo de entrenamiento o inferencia. La ciencia de datos especifica el nombre de destino de proceso y el nombre de tipo de instancia mediante sus herramientas o API preferidas. Por ejemplo, estos nombres podrían ser la CLI de Azure Machine Learning v2, el SDK de Python v2 o la interfaz de usuario de Studio.
Escenarios de uso de Kubernetes
Con el clúster de Kubernetes para Arc, puede compilar, entrenar e implementar modelos en cualquier infraestructura local y en varias nubes mediante Kubernetes. Esto abre algunos patrones de uso nuevos que anteriormente no eran posibles en el entorno de configuración de la nube. En la tabla siguiente se proporciona un resumen de los nuevos patrones de uso habilitados por el proceso de Kubernetes para Azure Machine Learning:
Patrón de uso | Ubicación de los datos | Motivación | Configuración de infraestructura e implementación de Azure Machine Learning |
---|---|---|---|
Entrenamiento del modelo en la nube, implementación del modelo local | Nube | Use el proceso en la nube. Debido a necesidades de proceso elástico o hardware especial, como una GPU. El modelo debe implementarse en el entorno local debido a los requisitos de seguridad, cumplimiento o latencia. |
1. Proceso administrado por Azure en la nube. 2. Kubernetes administrado por el cliente en el entorno local. 3. MLOps totalmente automatizado en modo híbrido, incluidos los pasos de entrenamiento e implementación de modelos que pasan eficazmente de la nube al entorno local y viceversa. 4. Repetible, con un correcto seguimiento de todos los recursos. El modelo se reentrenó cuando fue necesario, y la implementación del modelo se actualizó automáticamente después del reentrenamiento. |
Entrenamiento del modelo local y en la nube, implementación tanto en la nube como en el entorno local | Nube | Organizaciones que quieran combinar inversiones locales con escalabilidad en la nube. Trae el proceso local y en la nube en un solo panel de cristal. La única fuente de verdad para los datos se encuentra en la nube, se puede replicar en las instalaciones (es decir, de forma diferida en el uso o de forma proactiva). El uso principal de computación en la nube es cuando los recursos locales no están disponibles (en uso, mantenimiento) o no tienen requisitos de hardware específicos (GPU). | 1. Proceso administrado por Azure en la nube. 2. Kubernetes administrado por el cliente en el entorno local. 3. MLOps totalmente automatizado en modo híbrido, incluidos los pasos de entrenamiento e implementación de modelos que pasan eficazmente de la nube al entorno local y viceversa. 4. Repetible, con un correcto seguimiento de todos los recursos. El modelo se reentrenó cuando fue necesario, y la implementación del modelo se actualizó automáticamente después del reentrenamiento. |
Entrenamiento del modelo en el entorno local, implementación del modelo en la nube | Local | Los datos deben permanecer en el entorno local debido a los requisitos de residencia de datos. Implemente el modelo en la nube para el acceso al servicio global o para la elasticidad de proceso con fines de escalabilidad y el rendimiento. |
1. Proceso administrado por Azure en la nube. 2. Kubernetes administrado por el cliente en el entorno local. 3. MLOps totalmente automatizado en modo híbrido, incluidos los pasos de entrenamiento e implementación de modelos que pasan eficazmente de la nube al entorno local y viceversa. 4. Repetible, con un correcto seguimiento de todos los recursos. El modelo se reentrenó cuando fue necesario, y la implementación del modelo se actualizó automáticamente después del reentrenamiento. |
Traiga su propio AKS en Azure | Nube | Más seguridad y controles. Todo el aprendizaje automático de IP privada para evitar la filtración de datos. |
1. Clúster de AKS detrás de una red virtual de Azure. 2. Creación de puntos de conexión privados en la misma red virtual para el área de trabajo de Azure Machine Learning y sus recursos asociados. 3. MLOps totalmente automatizado. |
Ciclo de vida de ML completo en el entorno local | Local | Proteja datos confidenciales o activos de propiedad intelectual, como modelos de ML y código o scripts. | 1. Conexión de servidor proxy de salida en el entorno local. 2. Azure ExpressRoute y vínculo privado de Azure Arc para recursos de Azure. 3. Kubernetes administrado por el cliente en el entorno local. 4. MLOps totalmente automatizado. |
Limitaciones
KubernetesCompute
en las cargas de trabajo de Azure Machine Learning (entrenamiento e inferencia de modelos) tiene las siguientes limitaciones:
- La disponibilidad de las Funciones de la versión preliminar en Azure Machine Learning no está garantizada.
- Limitación identificada: los modelos (incluido el modelo fundacional) del Catálogo de modelos y de Registro no son compatibles con los extremos en línea de Kubernetes.
Procedimientos recomendados
Separación de responsabilidades entre el equipo de operaciones de TI y el equipo de ciencia de datos. Como se mencionó en la sección anterior, administrar su propia infraestructura y proceso para la carga de trabajo de ML es una tarea compleja. Es mejor que lo haga el equipo de operaciones de TI para que el equipo de ciencia de datos pueda centrarse en los modelos de ML para la eficiencia de la organización.
Creación y administración de tipos de instancia para diferentes escenarios de carga de trabajo de ML. Cada carga de trabajo de ML usa diferentes cantidades de recursos de proceso, como CPU o GPU y memoria. Azure Machine Learning implementa el tipo de instancia como definición de recursos personalizados (CRD) de Kubernetes con propiedades de nodeSelector y solicitud o límite de recursos. Con una lista cuidadosamente mantenida de tipos de instancias, las operaciones de TI pueden dirigirse a las cargas de trabajo de ML de nodos específicos y administrar la utilización de recursos de proceso de forma eficaz.
Varias áreas de trabajo de Azure Machine Learning comparten el mismo clúster de Kubernetes. Puede asociar un clúster de Kubernetes varias veces a la misma área de trabajo de Azure Machine Learning o a otras diferentes, y crear varios destinos de proceso en una o varias áreas de trabajo. Dado que muchos clientes organizan los proyectos de ciencia de datos en torno al área de trabajo de Azure Machine Learning, varios proyectos de ciencia de datos ahora pueden compartir el mismo clúster de Kubernetes. Esta posibilidad reduce significativamente las sobrecargas de administración de la infraestructura de ML y permite ahorrar costos de TI.
Aislamiento de las cargas de trabajo de equipo o proyecto mediante el espacio de nombres de Kubernetes. Cuando adjunte un clúster Kubernetes al área de trabajo de Azure Machine Learning, puede especificar un espacio de nombres de Kubernetes para el objetivo informático. Todas las cargas de trabajo ejecutadas por el destino de proceso se colocan en el espacio de nombres especificado.
KubernetesCompute y AksCompute heredado
Con ayuda de la CLI de Azure Machine Learning o el SDK v1 de Python, puede implementar modelos en AKS mediante el destino AksCompute. Tanto el destino KubernetesCompute como el destino AksCompute admiten la integración de AKS, pero lo hacen de forma diferente. En la tabla siguiente se muestran las principales diferencias:
Funcionalidades | Integración de AKS con AksCompute (heredado) | Integración de AKS con KubernetesCompute |
---|---|---|
CLI/SDK v1 | Sí | No |
CLI/SDK v2 | No | Sí |
Cursos | No | Sí |
Inferencia en tiempo real | Sí | Sí |
Inferencia por lotes | No | Sí |
Nuevas características de inferencia en tiempo real | No hay nuevas características en desarrollo | Hoja de ruta activa |
Con estas importantes diferencias y la evolución general de Azure Machine Learning para usar SDK/CLI v2, Azure Machine Learning recomienda usar el destino de proceso de Kubernetes para implementar modelos si decide usar AKS para implementar modelos.
Otros recursos
- Disponibilidad por región y versión de Kubernetes
- Trabajar con almacenamiento de datos personalizado
Ejemplos
Todos los ejemplos de Azure Machine Learning se pueden encontrar en https://github.com/Azure/azureml-examples.git.
Para cualquier ejemplo de Azure Machine Learning, solo tiene que actualizar el nombre del destino de proceso de acuerdo con el destino de proceso de Kubernetes. Después de esto, habrá terminado.
- Exploración de ejemplos de trabajos de entrenamiento con la CLI v2: https://github.com/Azure/azureml-examples/tree/main/cli/jobs
- Exploración de la implementación de modelos con ejemplos de puntos de conexión en línea con la CLI v2: https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/online/kubernetes
- Exploración de ejemplos de puntos de conexión por lotes con la CLI v2: https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/batch
- Exploración de ejemplos de trabajos de entrenamiento con el SDK v2: https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs
- Exploración de la implementación de modelos con ejemplos de puntos de conexión en línea con el SDK v2: https://github.com/Azure/azureml-examples/tree/main/sdk/python/endpoints/online/kubernetes