Perspectiva de Azure Well-Architected Framework en Azure Machine Learning
Azure Machine Learning es un servicio en la nube administrado que puede usar para entrenar, implementar y administrar modelos de aprendizaje automático. Hay una amplia gama de opciones y configuraciones para entrenar e implementar modelos, incluidas las SKU de proceso y las configuraciones. Puede implementar modelos de Machine Learning en el proceso de Machine Learning o en otros servicios de Azure, como Azure Kubernetes Service (AKS).
En este artículo se proporcionan recomendaciones arquitectónicas para tomar decisiones informadas al usar Machine Learning para entrenar, implementar y administrar modelos de aprendizaje automático. La guía se basa en los pilares de Azure Well-Architected Framework.
Importante
Cómo usar esta guía
Cada sección tiene una lista de comprobación de diseño que presenta áreas arquitectónicas de preocupación junto con estrategias de diseño localizadas en el ámbito de la tecnología.
También se incluyen recomendaciones sobre las funcionalidades tecnológicas que pueden ayudar a materializar esas estrategias. Las recomendaciones no representan una lista exhaustiva de todas las configuraciones disponibles para Machine Learning y sus dependencias. En su lugar, enumeran las recomendaciones clave asignadas a las perspectivas de diseño. Use las recomendaciones para crear la prueba de concepto o para optimizar los entornos existentes.
La arquitectura básica de línea base openAI de referencia de chat de un extremo a otro muestra muchas de las recomendaciones clave.
Ámbito de la tecnología
Esta revisión se centra en las decisiones relacionadas entre estos recursos de Azure:
- Machine Learning
- Clústeres de proceso de Machine Learning
- Instancias de proceso de Machine Learning
La revisión no aborda los recursos conectados, como almacenes de datos o Azure Key Vault.
Confiabilidad
El propósito del pilar Confiabilidad es proporcionar funcionalidad continua mediante la creación de suficiente resistencia y la capacidad de recuperarse rápidamente de los errores.
Los principios de diseño de confiabilidad proporcionan una estrategia de diseño de alto nivel aplicada para componentes individuales, flujos del sistema y el sistema en su conjunto.
Diseño de una lista de comprobación
Inicie su estrategia de diseño en función de la lista de comprobación de revisión de diseño para confiabilidad y determine su relevancia para sus requisitos empresariales. Amplíe la estrategia para incluir más enfoques según sea necesario.
Resistencia: implemente modelos en entornos que admitan zonas de disponibilidad, como AKS. Al garantizar que las implementaciones se distribuyan entre zonas de disponibilidad, está garantizando que una implementación esté disponible incluso en caso de que se produzca un error en el centro de datos. Para mejorar la confiabilidad y la disponibilidad, considere una topología de implementación de varias regiones.
Resistencia: asegúrese de que tiene suficiente proceso para el entrenamiento y la inferencia. Mediante el planeamiento de recursos, asegúrese de que la SKU de proceso y la configuración de escalado cumplen los requisitos de la carga de trabajo.
Resistencia: separe las áreas de trabajo de Machine Learning que se usan para el trabajo exploratorio de los usados para producción.
Resistencia: al usar puntos de conexión en línea administrados para la inferencia, use una estrategia de versión como implementaciones azul-verde para minimizar el tiempo de inactividad y reducir el riesgo asociado a la implementación de nuevas versiones.
Requisitos empresariales: seleccione el uso de clústeres de proceso, instancias de proceso y hosts de inferencia externos en función de las necesidades de confiabilidad, teniendo en cuenta los acuerdos de nivel de servicio (SLA) como factor.
Recuperación: asegúrese de que tiene funcionalidades de recuperación automática, como las características de puntos de comprobación compatibles con Machine Learning, al entrenar modelos grandes.
Recuperación: asegúrese de que tiene una estrategia de recuperación definida. Machine Learning no tiene conmutación automática por error. Por lo tanto, debe diseñar una estrategia que abarque el área de trabajo y todas sus dependencias, como Key Vault, Azure Storage y Azure Container Registry.
Recomendaciones
Recomendación | Prestación |
---|---|
Implementación de modelos de varias regiones: para mejorar la confiabilidad y la disponibilidad, considere un entorno de implementación de varias regiones siempre que sea posible. | Una implementación de varias regiones garantiza que las cargas de trabajo de Machine Learning sigan ejecutándose incluso si una región experimenta una interrupción. La implementación en varias regiones mejora la distribución de carga entre regiones, lo que mejora el rendimiento de los usuarios ubicados en diferentes áreas geográficas. Para obtener más información, vea Conmutación por error para la continuidad empresarial y la recuperación ante desastres. |
Resistencia de entrenamiento del modelo: use las características de puntos de control compatibles con Machine Learning, incluido Azure Container for PyTorch, la clase Estimator de TensorFlow o el objeto Run y la clase FileDataset que admiten los puntos de control del modelo. | La creación de puntos de control de modelos guarda periódicamente el estado del modelo de Machine Learning durante el entrenamiento, de modo que se pueda restaurar en caso de interrupción, error o finalización. Para obtener más información, consulta Aumentar la velocidad del punto de control y reducir el costo con Nebulosa. |
Use el nivel de máquina virtual dedicado para los clústeres de proceso: use el nivel de máquina virtual dedicado para los clústeres de proceso para la inferencia por lotes para asegurarse de que el trabajo por lotes no está reemplazado. | Las máquinas virtuales de prioridad baja vienen a un precio reducido, pero son preemptibles. Los clústeres que usan el nivel de máquina virtual dedicado no se adelanten. |
Seguridad
El propósito del pilar seguridad es proporcionar garantías de confidencialidad, integridad y disponibilidad a la carga de trabajo.
Los principios de diseño de seguridad proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos aplicando enfoques al diseño técnico en torno a Machine Learning.
Diseño de una lista de comprobación
Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño de Seguridad e identifique vulnerabilidades y controles para mejorar la posición de seguridad. Amplíe la estrategia para incluir más enfoques según sea necesario.
Disponibilidad: reduzca la superficie expuesta a ataques del área de trabajo de Machine Learning mediante la restricción del acceso al área de trabajo a los recursos de la red virtual.
Confidencialidad: protege contra la filtración de datos del área de trabajo de Machine Learning mediante la implementación del aislamiento de red. Asegúrese de que el acceso a todos los recursos externos está aprobado explícitamente y no se permite el acceso a todos los demás recursos externos.
Integridad: implemente controles de acceso que autentiquen y autoricen el área de trabajo de Machine Learning para recursos externos en función del principio de privilegios mínimos.
Integridad: implemente la segregación de casos de uso para las áreas de trabajo de Machine Learning mediante la configuración de áreas de trabajo basadas en casos de uso o proyectos específicos. Este enfoque se adhiere al principio de privilegios mínimos asegurándose de que las áreas de trabajo solo son accesibles para los usuarios que requieren acceso a los datos y a los recursos de experimentación para el caso de uso o el proyecto.
Integridad: regula el acceso a los modelos fundamentales. Asegúrese de que solo los registros aprobados tengan acceso a los modelos del registro de modelos.
Integridad: regula el acceso a los registros de contenedor aprobados. Asegúrese de que el proceso de Machine Learning solo puede acceder a los registros aprobados.
Integridad: regule los paquetes de Python que se pueden ejecutar en el proceso de Machine Learning. La regulación de los paquetes de Python garantiza que solo se ejecuten paquetes de confianza.
Integridad: requerir que se firme el código usado para el entrenamiento en entornos de proceso de Machine Learning. Requerir firma de código garantiza que el código que se ejecuta procede de un origen de confianza y que no se ha alterado.
Confidencialidad: cumpla el principio de privilegios mínimos para el control de acceso basado en rol (RBAC) en el área de trabajo de Machine Learning y los recursos relacionados, como la cuenta de almacenamiento del área de trabajo, para asegurarse de que los usuarios solo tienen los permisos necesarios para su rol, lo que minimiza los posibles riesgos de seguridad.
Integridad: establezca la confianza y el acceso comprobado mediante la implementación del cifrado de los datos en reposo y los datos en tránsito.
Recomendaciones
Recomendación | Prestación |
---|---|
Línea base de seguridad: para mejorar la seguridad y el cumplimiento de Machine Learning Service, aplique la línea de base de seguridad de Azure para Machine Learning. | La línea base de seguridad proporciona instrucciones personalizadas sobre aspectos de seguridad cruciales, como la seguridad de red, la administración de identidades, la protección de datos y el acceso con privilegios. Para una seguridad óptima, use Microsoft Defender for Cloud para supervisar estos aspectos. |
Aislamiento de red virtual administrada: configure el aislamiento de red virtual administrada para Machine Learning. Al habilitar el aislamiento de red virtual administrada, se crea una red virtual administrada para el área de trabajo. Los recursos de proceso administrados que cree para el área de trabajo usan automáticamente esta red virtual administrada. Si no puede implementar el aislamiento de red virtual administrada, debe seguir las recomendaciones de topología de red para separar el proceso en una subred dedicada lejos del resto de los recursos de la solución, incluidos los puntos de conexión privados para los recursos del área de trabajo. | El aislamiento de red virtual administrada mejora la seguridad al aislar el área de trabajo de otras redes, lo que reduce el riesgo de acceso no autorizado. En un escenario en el que se produce una infracción en otra red dentro de la organización, la red aislada del área de trabajo de Machine Learning sigue sin verse afectada, lo que protege las cargas de trabajo de aprendizaje automático. |
Aislamiento de red de Machine Learning: configure un punto de conexión privado para el área de trabajo de Machine Learning y conéctese al área de trabajo a través de ese punto de conexión privado. | El aislamiento de red de Machine Learning mejora la seguridad al garantizar que el acceso al área de trabajo sea seguro y controlado. Con un punto de conexión privado configurado para el área de trabajo, puede limitar el acceso al área de trabajo para que solo se produzca a través de las direcciones IP privadas. |
Permitir solo el acceso saliente aprobado: configure el modo de salida en el área de trabajo de Machine Learning administrado de acceso saliente para Allow only approved outbound minimizar el riesgo de filtración de datos. Configure puntos de conexión privados, etiquetas de servicio o nombres de dominio completos (FQDN) para los recursos a los que necesita acceder. |
Esta configuración minimiza el riesgo de filtración de datos, lo que mejora la seguridad de los datos. Con esta configuración habilitada, un actor malintencionado que obtiene acceso al sistema no puede enviar los datos a un destino externo no aprobado. |
Aislamiento de red virtual para servicios dependientes: configure servicios dependientes, como Storage, Key Vault y Container Registry con puntos de conexión privados y deshabilite el acceso público. | El aislamiento de red refuerza la seguridad al restringir el acceso a las soluciones de plataforma como servicio (PaaS) de Azure solo a direcciones IP privadas. |
Identidad administrada: use identidades administradas para la autenticación entre Machine Learning y otros servicios. | Las identidades administradas mejoran la seguridad mediante la eliminación de la necesidad de almacenar credenciales y administrar y rotar manualmente las entidades de servicio. |
Deshabilitar la autenticación local: deshabilite la autenticación local para los clústeres de proceso y las instancias de Machine Learning. | La deshabilitación de la autenticación local aumenta la seguridad del proceso de Machine Learning y proporciona control y administración centralizados de identidades y credenciales de recursos. |
Deshabilitar el puerto SSH público: asegúrese de que el puerto de Secure Shell (SSH) público está cerrado en el clúster de proceso de Machine Learning estableciendo remoteLoginPortPublicAccess Disabled en . Aplique una configuración similar si usa un proceso diferente. |
Deshabilitar el acceso SSH ayuda a evitar que individuos no autorizados obtengan acceso y puedan causar daños en el sistema y le protegen contra ataques por fuerza bruta. |
No aprovisione direcciones IP públicas para el proceso de Machine Learning: establezca enableNodePublicIp en al aprovisionar false clústeres de proceso de Machine Learning o instancias de proceso. Aplique una configuración similar si usa un proceso diferente. |
Evite aprovisionar direcciones IP públicas para mejorar la seguridad limitando el potencial de acceso no autorizado a la instancia de proceso o a los clústeres. |
Obtenga la imagen de sistema operativo más reciente: vuelva a crear instancias de proceso para obtener la imagen de sistema operativo más reciente. | El uso de las imágenes más recientes garantiza que mantiene un entorno coherente, estable y seguro, lo que incluye asegurarse de que tiene las revisiones de seguridad más recientes. |
Controles estrictos de acceso al área de trabajo de Machine Learning: use grupos de Microsoft Entra ID para administrar el acceso al área de trabajo y cumplir el principio de privilegios mínimos para RBAC. | Los controles estrictos de acceso al área de trabajo mejoran la seguridad al garantizar que las personas solo tienen los permisos necesarios para su rol. Un científico de datos, por ejemplo, podría tener acceso para ejecutar experimentos, pero no para modificar la configuración de seguridad, lo que minimiza los posibles riesgos de seguridad. |
Restringir las implementaciones del catálogo de modelos: restrinja las implementaciones de modelos a registros específicos. | Restringir las implementaciones del catálogo de modelos a registros específicos garantiza que solo se implementan modelos en registros aprobados. Este enfoque ayuda a regular el acceso a los modelos fundamentales de código abierto. |
Cifrado de datos en reposo: considere la posibilidad de usar claves administradas por el cliente con Machine Learning. | El cifrado de datos en reposo mejora la seguridad de los datos al garantizar que los datos confidenciales se cifren mediante claves administradas directamente por usted. Si tiene un requisito normativo para administrar sus propias claves de cifrado, use esta característica para cumplir con ese requisito. |
Minimizar el riesgo de filtración de datos: implemente la prevención de filtración de datos. Por ejemplo, cree una directiva de punto de conexión de servicio para filtrar el tráfico de red virtual de salida y permitir la filtración de datos solo a cuentas específicas de Azure Storage. | Minimice el riesgo de filtración de datos limitando los requisitos de entrada y salida. |
Advisor
Estos son algunos ejemplos de las recomendaciones de procedimientos recomendados de seguridad de Advisor para Machine Learning:
- Las áreas de trabajo deben cifrarse con una clave administrada por el cliente (CMK).
- Las áreas de trabajo deben usar Azure Private Link.
- Las áreas de trabajo deben deshabilitar el acceso a la red pública.
- El proceso debe estar en una red virtual.
- Las instancias de proceso se deben volver a crear para obtener las actualizaciones de software más recientes.
Azure Policy
A continuación se muestran ejemplos de definiciones de Azure Policy integradas para la seguridad de Machine Learning:
- Configure los registros permitidos para los procesos de Machine Learning especificados.
- Configure los paquetes de Python permitidos para los procesos de Machine Learning especificados.
- Las áreas de trabajo de Machine Learning deben deshabilitar el acceso a la red pública.
- Las instancias de proceso de Machine Learning se deben volver a crear para obtener las actualizaciones de software más recientes.
- Los procesos de Machine Learning deben estar en una red virtual.
- Los procesos de Machine Learning deben tener deshabilitados los métodos de autenticación local.
- Las áreas de trabajo de Machine Learning deben cifrarse con una CMK.
- Las áreas de trabajo de Machine Learning deben usar Private Link.
- Las áreas de trabajo de Machine Learning deben usar una identidad administrada asignada por el usuario.
- Requerir un punto de conexión de aprobación llamado antes de los trabajos que se ejecutan para los procesos de Machine Learning especificados.
- Requerir la firma de código para el código de entrenamiento para los procesos.
- Restringir la implementación del modelo a registros específicos.
Optimización de costos
La optimización de costos se centra en detectar patrones de gasto, priorizar las inversiones en áreas críticas y optimizar en otros usuarios para satisfacer el presupuesto de la organización a la vez que cumple los requisitos empresariales.
Lea los principios de diseño de optimización de costos para comprender los enfoques para lograr esos objetivos y los inconvenientes necesarios en las opciones de diseño técnico relacionadas con el entrenamiento e implementación de modelos en sus entornos.
Diseño de una lista de comprobación
Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño para la optimización de costos para las inversiones y ajuste el diseño para que la carga de trabajo esté alineada con el presupuesto asignado para la carga de trabajo. El diseño debe usar las funcionalidades adecuadas de Azure, supervisar las inversiones y encontrar oportunidades para optimizar con el tiempo.
Optimización de uso: elija los recursos adecuados para asegurarse de que se alinean con los requisitos de carga de trabajo. Por ejemplo, elija entre CPU o GPU, varias SKU o máquinas virtuales de prioridad baja frente a las de prioridad regular.
Optimización del uso: asegúrese de que los recursos de proceso que no se usan se reducen verticalmente o se apagan cuando están inactivos para reducir los residuos.
Optimización de uso: aplique directivas y configure cuotas para cumplir los límites superior e inferior del diseño.
Optimización del uso: pruebe la paralelización de las cargas de trabajo de entrenamiento para determinar si se pueden cumplir los requisitos de entrenamiento en SKU de menor costo.
Optimización de velocidad: compre Instancias reservadas de máquina virtual de Azure si tiene una buena estimación del uso en los próximos uno a tres años.
Supervisión y optimización: supervise el uso de recursos, como el uso de CPU y GPU al entrenar modelos. Si los recursos no se usan por completo, modifique el código para usar mejor los recursos o reduzca verticalmente a tamaños de máquina virtual más pequeños o más baratos.
Recomendaciones
Recomendación | Prestación |
---|---|
Optimización de los recursos de proceso: optimice los recursos de proceso en función de los requisitos de la carga de trabajo. Elija la SKU que mejor se adapte a su carga de trabajo:
|
La selección del proceso adecuado es fundamental, ya que afecta directamente al costo de ejecutar la carga de trabajo. La elección de una GPU o una SKU de alto rendimiento sin un uso adecuado puede dar lugar a gastos desperdiciados, mientras que elegir un proceso infradimensionado puede provocar tiempos de entrenamiento y problemas de rendimiento prohibitivos. |
Optimización del escalado de proceso: configure los clústeres de proceso para el escalado automático para asegurarse de que solo usa lo que necesita. En el caso de los clústeres de entrenamiento, establezca el número mínimo de nodos en 0 y configure la cantidad de tiempo que el nodo está inactivo en un tiempo adecuado. Para una experimentación menos iterativa, reduzca el tiempo para ahorrar costos. Para una experimentación más iterativa, use un tiempo mayor para evitar el pago por el escalado o reducción vertical después de cada cambio. |
Configure el escalado automático para que los clústeres de proceso se reduzcan verticalmente cuando su uso sea bajo. Establezca el número mínimo de nodos en 0 para que los clústeres de entrenamiento se reduzcan verticalmente a 0 cuando no están en uso. |
Establecer directivas de terminación de entrenamiento: establezca directivas de terminación anticipada para limitar la duración de las ejecuciones de entrenamiento o finalizarlas antes. | La configuración de directivas de terminación puede ayudarle a ahorrar costos al detener las ejecuciones que no son de rendimiento temprano. |
Uso de máquinas virtuales de prioridad baja para cargas de trabajo por lotes: considere la posibilidad de usar máquinas virtuales de prioridad baja para cargas de trabajo por lotes que no son sensibles al tiempo y en las que se pueden recuperar las interrupciones. | Las máquinas virtuales de prioridad baja permiten usar una gran cantidad de capacidad de proceso para un costo bajo. Aprovechan la capacidad sobrante en Azure. |
Habilitar el apagado inactivo para instancias de proceso: habilite el apagado inactivo para instancias de proceso o programe un inicio y una hora de detención si se conoce el tiempo de uso. | De forma predeterminada, las instancias de proceso están disponibles para usted, lo que supone un costo acumulado. La configuración de instancias de proceso para apagarse cuando está inactiva o la configuración de una programación para ellas ahorra costos cuando no están en uso. |
Paralelizar las cargas de trabajo de entrenamiento: considere la posibilidad de paralelizar las cargas de trabajo de entrenamiento. Pruebe a ejecutarlos con la ayuda de los componentes paralelos en Machine Learning. | Las cargas de trabajo paralelas se pueden ejecutar en varias instancias más pequeñas, lo que puede suponer un ahorro de costos. |
Instancias reservadas de máquina virtual de Azure: compre Instancias reservadas de máquina virtual de Azure si tiene una buena estimación del uso en los próximos uno a tres años. Aproveche las opciones de capacidad reservada para los servicios cuando tenga buenas estimaciones de uso. | Compre Instancias reservadas de máquina virtual de Azure para pagar por adelantado el uso de máquinas virtuales y proporcione descuentos con precios de pago por uso. El descuento se aplica automáticamente para el uso de máquinas virtuales que coincida con la reserva. |
Excelencia operativa
La excelencia operativa se centra principalmente en los procedimientos para las prácticas de desarrollo, la observabilidad y la administración de versiones.
Los principios de diseño de excelencia operativa proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos hacia los requisitos operativos de la carga de trabajo.
Diseño de una lista de comprobación
Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño para la excelencia operativa para definir procesos de observabilidad, pruebas e implementación relacionados con Machine Learning.
Estándares de desarrollo: aproveche los catálogos y registros del modelo de Machine Learning para almacenar, versionar y compartir recursos de aprendizaje automático.
Automatización de la eficacia: siga buenas prácticas de operaciones de aprendizaje automático (MLOps). Cuando sea posible, cree canalizaciones automatizadas de un extremo a otro para la preparación, el entrenamiento y los procesos de puntuación de datos. En desarrollo, use scripts en lugar de cuadernos para entrenar modelos, ya que los scripts son más fáciles de integrar en canalizaciones automatizadas.
Implementación con confianza: implemente la infraestructura como código (IaC) para áreas de trabajo de Machine Learning, clústeres de proceso, instancias de proceso y otros entornos de implementación.
Observabilidad: supervise el rendimiento de los modelos implementados, incluido el desfase de datos.
Observabilidad: si los modelos se implementan en puntos de conexión en línea, habilite Application Insights para supervisar los puntos de conexión y las implementaciones en línea. Supervise la infraestructura de entrenamiento para asegurarse de que cumple los requisitos de línea base.
Simplicidad: use entornos mantenidos optimizados para Machine Learning, cuando esté disponible.
Recomendaciones
Recomendación | Prestación |
---|---|
Minimizar las instancias del área de trabajo de Machine Learning: minimice el número de áreas de trabajo, siempre que sea posible, para reducir el mantenimiento. | Limitar el número de áreas de trabajo reduce el esfuerzo de mantenimiento y el costo de funcionamiento. En el caso de los requisitos, como la seguridad, es posible que necesite varias áreas de trabajo independientes. Minimice el número de áreas de trabajo siempre que sea posible. |
Aproveche los catálogos y registros de modelos: aproveche los catálogos y registros de modelos de Machine Learning para almacenar, versionar y compartir recursos de aprendizaje automático. Use catálogos de modelos de Machine Learning para ayudarle a implementar pruebas A/B e implementación de modelos. |
Use los registros de modelos de Machine Learning para almacenar y versionar los modelos de Machine Learning para realizar un seguimiento de los cambios y mantener el linaje con el trabajo y los conjuntos de datos que se usan para el entrenamiento. Con los catálogos de modelos de Machine Learning, los equipos de ciencia de datos pueden detectar, evaluar y ajustar modelos de aprendizaje automático fundamentales previamente entrenados. El almacenamiento de modelos con versiones en los registros de modelos de Machine Learning admite estrategias de implementación como versiones A/B, versiones controladas y reversiones. |
Supervisión del rendimiento del modelo: supervise el rendimiento de los modelos implementados y detecte el desfase de datos en los conjuntos de datos. | La supervisión de modelos implementados garantiza que los modelos cumplan los requisitos de rendimiento. La supervisión del desfase de datos le ayuda a detectar cambios en los datos de entrada que pueden provocar un descenso en el rendimiento del modelo. La administración del desfase de datos le ayuda a garantizar que el modelo proporciona resultados precisos a lo largo del tiempo. |
Supervisión de la infraestructura: si los modelos se implementan en puntos de conexión en línea, habilite Application Insights para supervisar los puntos de conexión e implementaciones en línea. Supervise la infraestructura de entrenamiento para asegurarse de que cumple los requisitos de línea base. Asegúrese de que está recopilando registros de recursos para Machine Learning. |
Los puntos de conexión de supervisión proporcionan visibilidad sobre las métricas, como la latencia de solicitud y las solicitudes por minuto. Puede comparar el rendimiento frente a la línea base y usar esta información para realizar cambios en los recursos de proceso en consecuencia. La supervisión de métricas como los bytes de red puede avisarle si se aproxima a los límites de cuota y evita la limitación. Del mismo modo, la supervisión del entorno de entrenamiento le proporciona la información para realizar cambios en el entorno de entrenamiento. Use esa información para decidir escalar o reducir horizontalmente, escalar o reducir verticalmente con diferentes SKU de rendimiento o elegir entre CPU o GPU. |
Protección de entornos de entrenamiento de modelos: use entornos mantenidos optimizados para Machine Learning, cuando esté disponible. |
Los entornos mantenidos son entornos creados previamente proporcionados por Machine Learning que aceleran el tiempo de implementación y reducen la latencia de implementación y entrenamiento. El uso de entornos mantenidos mejora las tasas de éxito de entrenamiento e implementación y evita compilaciones de imágenes innecesarias. Los entornos mantenidos, como Azure Container for PyTorch, también se pueden optimizar para entrenar modelos grandes en Machine Learning. |
Eficiencia del rendimiento
La eficiencia del rendimiento consiste en mantener la experiencia del usuario incluso cuando hay un aumento de la carga mediante la administración de la capacidad. La estrategia incluye el escalado de recursos, la identificación y optimización de posibles cuellos de botella y la optimización para lograr un rendimiento máximo.
Los principios de diseño de eficiencia del rendimiento proporcionan una estrategia de diseño de alto nivel para lograr esos objetivos de capacidad con respecto al uso esperado.
Diseño de una lista de comprobación
Inicie la estrategia de diseño en función de la lista de comprobación de revisión de diseño para la eficiencia del rendimiento para definir una línea base basada en indicadores clave de rendimiento para cargas de trabajo de Machine Learning.
Objetivos de rendimiento: determine el tiempo de entrenamiento aceptable y la frecuencia de reentrenamiento del modelo. Establecer un destino claro para el tiempo de entrenamiento, junto con las pruebas, le ayuda a determinar los recursos de proceso, la CPU frente a la GPU y las SKU de CPU necesarias para cumplir el objetivo del tiempo de entrenamiento.
Objetivos de rendimiento: defina los objetivos de rendimiento aceptables para los modelos implementados, incluido el tiempo de respuesta, las solicitudes por segundo, la tasa de errores y el tiempo de actividad. Los objetivos de rendimiento actúan como punto de referencia para la eficacia del modelo implementado. Los destinos pueden ayudarle a tomar decisiones de CPU frente a determinación de GPU, opciones de SKU de CPU y requisitos de escalado.
Cumplir los requisitos de capacidad: elija los recursos de proceso adecuados para el entrenamiento del modelo.
Cumplir los requisitos de capacidad: elija los recursos de proceso adecuados para las implementaciones de modelos.
Cumplir los requisitos de capacidad: elija entornos de implementación con funcionalidades de escalado automático para agregar y quitar la capacidad a medida que fluctúa la demanda.
Lograr y mantener el rendimiento: supervise continuamente el rendimiento de los modelos implementados, revise los resultados y realice las acciones adecuadas.
Lograr y mantener el rendimiento: supervise continuamente el rendimiento de la infraestructura de los modelos implementados, revise los resultados y realice las acciones adecuadas. Supervise la infraestructura de entrenamiento para asegurarse de que cumple los requisitos para el tiempo de entrenamiento.
Recomendaciones
Recomendación | Prestación |
---|---|
Seleccione los servicios de proceso adecuados para el entrenamiento del modelo: considere la posibilidad de usar clústeres de proceso de Machine Learning a través de instancias de proceso para el entrenamiento del modelo si necesita el escalado automático. Optimice los recursos de proceso en función de los requisitos de entrenamiento. Elija primero entre CPU y GPU. El valor predeterminado es CPU, pero considere la posibilidad de usar GPU para cargas de trabajo como aprendizaje profundo, procesamiento de imágenes o vídeo, o grandes cantidades de datos. A continuación, elija la SKU de imagen que mejor se adapte a la carga de trabajo. Use pruebas para elegir la opción de proceso que optimiza el costo frente al tiempo de entrenamiento al determinar la línea base. |
La selección del proceso correcto es fundamental, ya que afecta directamente al tiempo de entrenamiento. La elección de la SKU y la CPU adecuadas frente a gpu garantiza que el entrenamiento del modelo pueda cumplir los requisitos y los objetivos de rendimiento. La elección de una SKU de bajo rendimiento que se sobreutiliza puede provocar tiempos de entrenamiento y problemas de rendimiento prohibitivos. Los clústeres de proceso proporcionan la capacidad de mejorar el rendimiento mediante el escalado horizontal de cargas de trabajo que admiten el escalado horizontal. Este método proporciona flexibilidad para controlar las cargas de trabajo con diferentes demandas y le permite agregar o quitar máquinas según sea necesario. |
Escalado del entorno de implementación de modelos: use las funcionalidades de escalado automático del entorno de implementación. En el caso de los entornos de implementación de AKS, use el escalador automático de clústeres para escalar a fin de satisfacer la demanda. En el caso de los puntos de conexión en línea, escale automáticamente mediante la integración con la característica de escalado automático de Azure Monitor. | El escalado automático ajusta el número de instancias del modelo implementado para que coincidan con la demanda. |
Supervisar el rendimiento del modelo: supervise el rendimiento de los modelos implementados. | El seguimiento del rendimiento de los modelos en producción le avisa de posibles problemas, como el desfase de datos, el desfase de predicción, la calidad de los datos y el desfase de atribución de características. La supervisión del desfase de datos le ayuda a detectar cambios en los datos de entrada que pueden provocar un descenso en el rendimiento del modelo. La administración del desfase de datos le ayuda a garantizar que el modelo proporciona resultados precisos a lo largo del tiempo. |
Supervisión de la infraestructura: supervise los puntos de conexión en línea e integre con Monitor para realizar un seguimiento y supervisar las métricas y los registros adecuados. Habilite Application Insights al crear implementaciones en línea. Supervise la infraestructura de entrenamiento y revise el uso de recursos, como la memoria y la CPU o el uso de GPU al entrenar modelos para asegurarse de que cumple los requisitos de línea base. |
Los puntos de conexión de supervisión proporcionan visibilidad sobre las métricas, como la latencia de solicitud y las solicitudes por minuto. Puede comparar el rendimiento frente a la línea base y usar esta información para realizar cambios en los recursos de proceso en consecuencia. La supervisión de métricas como los bytes de red puede avisarle si se aproxima a los límites de cuota y evita la limitación. Del mismo modo, la supervisión del entorno de entrenamiento le proporciona la información para realizar cambios en el entorno de entrenamiento. Use esa información para decidir escalar o reducir horizontalmente, escalar o reducir verticalmente con diferentes SKU de rendimiento o elegir entre CPU o GPU. |
Directivas de Azure
Azure proporciona un amplio conjunto de directivas integradas relacionadas con Machine Learning y sus dependencias. Algunas de las recomendaciones anteriores se pueden auditar mediante directivas de Azure. Tenga en cuenta las siguientes directivas relacionadas con la seguridad:
- Registros permitidos para los procesos de Machine Learning especificados.
- Configure los paquetes de Python permitidos para los procesos de Machine Learning especificados.
- Los procesos de Machine Learning deben estar en una red virtual.
- Los procesos de Machine Learning deben tener deshabilitados los métodos de autenticación local.
- Las áreas de trabajo de Machine Learning deben deshabilitar el acceso a la red pública.
- Las instancias de proceso de Machine Learning se deben volver a crear para obtener las actualizaciones de software más recientes.
- Las áreas de trabajo de Machine Learning deben cifrarse con una clave administrada por el cliente.
- Las áreas de trabajo de Machine Learning deben usar private link.
- Las áreas de trabajo de Machine Learning deben usar la identidad administrada asignada por el usuario.
- Requerir un punto de conexión de aprobación llamado antes de los trabajos que se ejecutan para los procesos de Machine Learning especificados.
- Requerir la firma de código para el código de entrenamiento para los procesos.
- Restringir la implementación del modelo a registros específicos.
Tenga en cuenta la siguiente directiva relacionada con la optimización de costos:
Tenga en cuenta las siguientes directivas relacionadas con la excelencia operativa:
- Requerir que las expresiones de filtro de registro y el almacén de datos se usen para los registros completos de los procesos de Machine Learning especificados.
- Los registros de recursos de las áreas de trabajo de Machine Learning deben estar habilitados.
Para una gobernanza completa, revise los Azure Policy definiciones integradas de Machine Learning.
Recomendaciones de Advisor
Advisor es un consultor personalizado en la nube que lo ayuda a seguir procedimientos recomendados para optimizar las implementaciones de Azure. Las recomendaciones de Advisor pueden ayudarle a mejorar la confiabilidad, la seguridad, la rentabilidad, el rendimiento y la excelencia operativa de Machine Learning.
Tenga en cuenta las siguientes recomendaciones de Advisor para la seguridad:
- Las áreas de trabajo se deben cifrar con una clave administrada por el cliente (CMK).
- Las áreas de trabajo deben usar private link.
- Las áreas de trabajo deben deshabilitar el acceso a la red pública.
- El proceso debe estar en una red virtual.
- Las instancias de proceso se deben volver a crear para obtener las actualizaciones de software más recientes.
Tenga en cuenta la siguiente recomendación de Advisor para la excelencia operativa:
- Los registros de recursos de las áreas de trabajo de Machine Learning deben estar habilitados.
Pasos siguientes
Tenga en cuenta estos artículos como recursos que muestran las recomendaciones resaltadas en este artículo.
- Use la arquitectura de referencia de chat de un extremo a otro de OpenAI de línea base como ejemplo de cómo se pueden aplicar estas recomendaciones a una carga de trabajo.
- Use la documentación del producto de Machine Learning para crear experiencia en la implementación.