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.

Diagrama que ilustra cómo Azure Machine Learning se conecta a Kubernetes.

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:

  1. Prepare un clúster de Azure Kubernetes Service o un clúster de Kubernetes para Arc.
  2. Implementación de la extensión de Azure Machine Learning.
  3. Conexión del clúster de Kubernetes a un área de trabajo de Azure Machine Learning.
  4. 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.

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 No
CLI/SDK v2 No
Cursos No
Inferencia en tiempo real
Inferencia por lotes No
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

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.

Pasos siguientes