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)
La CLI de Azure Machine Learning y el SDK de Python v2 proporcionan compatibilidad con un destino de proceso de Kubernetes. Puede habilitar un clúster de Azure Kubernetes Service (AKS) existente o un clúster de Kubernetes habilitado para Azure Arc (Kubernetes para Arc) como destino de proceso de Kubernetes. Use el proceso en Machine Learning para entrenar o implementar modelos.
En este artículo, se describe cómo puede usar el destino de proceso de Kubernetes en Machine Learning, incluidos los escenarios de uso, los procedimientos recomendados y una comparación de los destinos KubernetesCompute
y AksCompute
heredado.
Funcionamiento del destino de proceso de Kubernetes
El proceso de Kubernetes de Azure Machine Learning admite dos tipos de clústeres de Kubernetes.
Proceso | Location | Descripción |
---|---|---|
Clúster de AKS | Dentro de 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 aprendizaje automático del equipo. |
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 o multinube, 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 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 Machine Learning con el siguiente proceso:
Paso 1: Prepare un clúster de Azure Kubernetes Service o un clúster de Kubernetes para Arc.
Paso 2: Implementación de la extensión de clúster de Azure Machine Learning.
Paso 3: Conexión del clúster de Kubernetes a un área de trabajo de Azure Machine Learning.
Paso 4: Use el destino de proceso de Kubernetes desde la CLI v2, SDK v2 o la interfaz de usuario de Estudio de Azure Machine Learning.
Estas son las principales responsabilidades de este proceso:
El equipo de operaciones de TI es responsable de los pasos 1, 2 y 3. Este equipo prepara un clúster de AKS o Kubernetes para Arc, implementa la extensión de clúster de Machine Learning y asocia el clúster de Kubernetes al área de trabajo de Machine Learning. Además de estos pasos esenciales de configuración de proceso, el equipo de operaciones de TI también usa herramientas conocidas, como la CLI de Azure o kubectl, para completar las siguientes tareas para el equipo de Ciencia de datos:
Configure las opciones de red y seguridad, como la conexión de servidor proxy saliente o el firewall de Azure, la configuración del enrutador de inferencia (azureml-fe), la terminación SSL/TLS y la configuración de red virtual.
Cree y administre tipos de instancia para diferentes escenarios de carga de trabajo de aprendizaje automático y obtenga un uso eficaz de los recursos de proceso.
Solucione problemas de carga de trabajo relacionados con el clúster de Kubernetes.
El equipo de Ciencia de datos comienza sus tareas después de que el equipo de operaciones de TI finaliza la configuración de proceso y la creación de los destinos de proceso. Este equipo detecta una lista de los destinos de proceso disponibles y los tipos de instancia en el área de trabajo de Machine Learning. Los recursos de proceso se pueden usar para la carga de trabajo de entrenamiento o inferencia. El equipo de ciencia de datos especifica el nombre de destino de proceso y el nombre de tipo de instancia mediante sus herramientas o API preferidas. Pueden usar la CLI de Azure Machine Learning v2, el SDK de Python v2 o la interfaz de usuario de Machine Learning Studio.
Escenarios de uso de Kubernetes
Con el clúster de Arc Kubernetes, pueden compilar, entrenar e implementar modelos en cualquier infraestructura local y multinube mediante Kubernetes. Esta estrategia abre algunos patrones de uso nuevos que anteriormente no eran posibles en el entorno de configuración en la nube. En la tabla siguiente, se proporciona un resumen de los nuevos patrones de uso habilitados al trabajar con el proceso de Kubernetes para Azure Machine Learning:
Patrón de uso | Ubicación de los datos | Objetivos y requisitos | Configuración del escenario |
---|---|---|---|
Entrenamiento del modelo en la nube, implementación del modelo local | Nube | Usar la informática en la nube para admitir las necesidades de proceso elástico o hardware especial, como una GPU. La implementación de modelo debe ser local para los requisitos de seguridad, cumplimiento o latencia. |
- Proceso administrado por Azure en la nube - Kubernetes administrado por el cliente en el entorno local - Operaciones de aprendizaje automático totalmente automatizadas en modo híbrido, incluidos los pasos de entrenamiento e implementación de modelos que realizan la transición sin problemas entre la nube y el entorno local - Repetible, se realiza un seguimiento correcto de todos los recursos, se vuelve a entrenar el modelo según sea necesario, la implementación se actualiza de manera automática después del reentrenamiento |
Entrenamiento del modelo local y en la nube, implementación tanto en la nube como en el entorno local | Nube | Combinar inversiones locales con escalabilidad en la nube. Integrar el proceso local y en la nube en un único panel. Acceder a una fuente única de la verdad para los datos en la nube y replicarlos localmente (de forma diferida según el uso o proactivamente). Habilitar el uso principal de informática en la nube cuando los recursos locales no estén disponibles (en uso o en mantenimiento) o no cumplan los requisitos de hardware específicos (GPU). |
- Proceso administrado por Azure en la nube. Kubernetes administrado por el cliente en el entorno local - Operaciones de aprendizaje automático totalmente automatizadas en modo híbrido, incluidos los pasos de entrenamiento e implementación de modelos que realizan la transición sin problemas entre la nube y el entorno local - Repetible, se realiza un seguimiento correcto de todos los recursos, se vuelve a entrenar el modelo según sea necesario, la implementación se actualiza de manera automática después del reentrenamiento |
Entrenamiento del modelo en el entorno local, implementación del modelo en la nube | Local | Almacenar datos locales para cumplir los requisitos de residencia de datos. Implementar el modelo en la nube para el acceso al servicio global o para habilitar la elasticidad de proceso con fines de escalabilidad y el rendimiento. |
- Proceso administrado por Azure en la nube - Kubernetes administrado por el cliente en el entorno local - Operaciones de aprendizaje automático totalmente automatizadas en modo híbrido, incluidos los pasos de entrenamiento e implementación de modelos que realizan la transición sin problemas entre la nube y el entorno local - Repetible, se realiza un seguimiento correcto de todos los recursos, se vuelve a entrenar el modelo según sea necesario, la implementación se actualiza de manera automática después del reentrenamiento |
Traiga su propio AKS en Azure | Nube | Obtener más seguridad y controles. Establecer todo el aprendizaje automático de dirección IP privada para evitar la filtración de datos. |
- Clúster de AKS detrás de una red virtual de Azure - Puntos de conexión privados en la misma red virtual para el área de trabajo de Azure Machine Learning y recursos asociados Operaciones de aprendizaje automático totalmente automatizadas |
Ciclo de vida completo del aprendizaje automático local | Local | Proteja los datos confidenciales o la dirección IP de su propiedad, como los modelos de aprendizaje automático, el código y los scripts. | - 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 - Kubernetes administrado por el cliente en el entorno local - Operaciones de aprendizaje automático totalmente automatizadas |
Limitaciones del destino de proceso de Kubernetes
Un objetivo 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.
- Los modelos (incluido el modelo fundacional) del Catálogo de modelo y de Registro no son compatibles con los extremos en línea de Kubernetes.
- El proceso de creación de una implementación de inferencia de modelo dentro del clúster tiene un límite de tiempo de espera de 20 minutos. Esto incluye descargar la imagen, descargar el modelo e inicializar los scripts de usuario.
Procedimientos recomendados
En esta sección, se resumen los procedimientos recomendados para trabajar con un proceso de Kubernetes.
Separación de responsabilidades entre el equipo de operaciones de TI y el equipo de Ciencia de datos. Como se ha descrito anteriormente, administrar su propia infraestructura y proceso para la carga de trabajo de aprendizaje automático es una tarea compleja. El mejor enfoque es hacer que el equipo de operaciones de TI controle la tarea, por lo que el equipo de Ciencia de datos puede centrarse en los modelos de aprendizaje automático para la eficacia de la organización.
Cree y administre tipos de instancia para diferentes escenarios de carga de trabajo de aprendizaje automático. Cada carga de trabajo de aprendizaje automático usa diferentes cantidades de recursos de proceso, como CPU o GPU y memoria. Azure Machine Learning implementa el tipo de instancia como una definición de recursos personalizados (CRD) de Kubernetes con propiedades de nodeSelector
y resource request/limit
. Con una lista cuidadosamente mantenida de tipos de instancias, las operaciones de TI pueden dirigirse a las cargas de trabajo de aprendizaje automático 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 Machine Learning o a áreas de trabajo diferentes. Este proceso crea varios destinos de proceso en una sola área de trabajo o en varias áreas de trabajo. Dado que muchos clientes organizan los proyectos de ciencia de datos en torno al área de trabajo de Machine Learning, varios proyectos de ciencia de datos ahora pueden compartir el mismo clúster de Kubernetes. Este enfoque reduce significativamente las sobrecargas de administración de la infraestructura de aprendizaje automático y mejora el ahorro de 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 Machine Learning, puede especificar un espacio de nombres de Kubernetes para el destino de proceso. Todas las cargas de trabajo ejecutadas por el destino de proceso se colocan en el espacio de nombres especificado.
Comparación de los destinos KubernetesCompute y AksCompute heredado
Con la CLI de Azure Machine Learning o el SDK de Python v1, puede implementar modelos en AKS mediante el destino heredado AksCompute
. Los destinos KubernetesCompute
y AksCompute
admiten la integración de AKS, pero el enfoque de soporte técnico es diferente. En la tabla siguiente se resumen las diferencias clave:
Funcionalidad | AksCompute (heredado) | KubernetesCompute |
---|---|---|
Uso de la CLI/SDK v1 | Sí | No |
Uso de la CLI/SDK v2 | No | Sí |
Configuración del entrenamiento | No | Sí |
Aplicación de inferencia en tiempo real | Sí | Sí |
Aplicación de inferencia por lotes | No | Sí |
Acceso a nuevas características para la inferencia en tiempo real | No hay nuevas características en desarrollo | Plan de desarrollo activo disponible |
Teniendo en cuenta estas diferencias y la evolución general de Machine Learning para usar la CLI/SDK v2, el enfoque recomendado es usar el destino de proceso de Kubernetes (KubernetesCompute
) para la implementación de modelo de AKS.
Para obtener más información, explore los artículos siguientes:
- Revisión de las regiones y versiones admitidas de Kubernetes
- Conexión de los trabajos de Machine Learning con el almacenamiento de datos personalizado
Ejemplos de aprendizaje automático
Los ejemplos de aprendizaje automático están disponibles en el repositorio de Azure Machine Learning (azureml-examples) en GitHub. En cualquier ejemplo, reemplace el nombre del destino de proceso por el destino de proceso de Kubernetes y ejecute el ejemplo.
Aquí tiene varias opciones:
- Ejemplos de trabajo de entrenamiento con la CLI v2
- Ejemplos de trabajo de entrenamiento con el SDK v2
- Implementación de modelos con ejemplos de puntos de conexión en línea y la CLI v2
- Implementación de modelo con ejemplos de puntos de conexión en línea y SDK v2
- Ejemplos de puntos de conexión por lotes con la CLI v2