¿Qué son los puntos de conexión de Azure Machine Learning (versión preliminar)?
Importante
Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
Use los puntos de conexión de Azure Machine Learning (versión preliminar) para simplificar las implementaciones de modelos en implementaciones en tiempo real y de inferencias por lotes. Los puntos de conexión proporcionan una interfaz unificada para invocar y administrar implementaciones de modelos entre tipos de proceso.
En este artículo, aprenderá lo siguiente:
- Puntos de conexión
- Implementaciones
- Puntos de conexión en línea administrados
- Puntos de conexión en línea de Kubernetes
- Puntos de conexión de inferencias por lotes
¿Qué son los puntos de conexión y las implementaciones (versión preliminar)?
Después de entrenar un modelo de Machine Learning, debe implementarlo para que otros usuarios puedan usarlo para realizar inferencias. En Azure Machine Learning, puede usar puntos de conexión (versión preliminar) e implementaciones (versión preliminar) para hacerlo.
Un punto de conexión es un punto de conexión HTTPS al que los clientes pueden llamar para recibir la salida de inferencia (puntuación) de un modelo entrenado. Proporciona:
- Autenticación mediante autenticación basada en "claves y tokens"
- Terminación de SSL
- Un URI de puntuación estable (endpoint-name.region.inference.ml.azure.com)
Una implementación es un conjunto de recursos necesarios para hospedar el modelo que realiza la inferencia real.
Un único punto de conexión puede contener varias implementaciones. Los puntos de conexión y las implementaciones son recursos de Azure Resource Manager independientes que aparecen en Azure Portal.
Azure Machine Learning usa el concepto de puntos de conexión y de implementaciones para implementar diferentes tipos de puntos de conexión: puntos de conexión en línea y puntos de conexión por lotes.
Varias interfaces de desarrollador
Cree y administre puntos de conexión por lotes y en línea con varias herramientas de desarrollo:
- La CLI de Azure
- API de REST o Azure Resource Manager
- Portal web de Azure Machine Learning Studio
- Azure Portal (TI o administrador)
- Compatibilidad con canalizaciones de MLOps de CI/CD mediante la interfaz de la CLI de Azure y las interfaces de REST y Azure Resource Manager
¿Qué son los puntos de conexión en línea (versión preliminar)?
Los puntos de conexión en línea (versión preliminar) son puntos de conexión que se usan para las inferencias en línea (en tiempo real). En comparación con los puntos de conexión por lotes, los puntos de conexión en línea contienen implementaciones que están listas para recibir datos de los clientes y que pueden enviar respuestas en tiempo real.
En el diagrama siguiente se muestra un punto de conexión en línea que tiene dos implementaciones, "azul" y "verde". La implementación azul usa máquinas virtuales con una SKU de CPU y ejecuta la versión 1 de un modelo. La implementación verde usa máquinas virtuales con una SKU de GPU y usa la versión 2 del modelo. El punto de conexión está configurado para enrutar el 90 % del tráfico entrante a la implementación azul, mientras que el verde recibe el 10 % restante.
Requisitos de los puntos de conexión en línea
Para crear un punto de conexión en línea, debe especificar los elementos siguientes:
- Archivos de modelo (o especificar un modelo registrado en el área de trabajo)
- Script de puntuación: código necesario para realizar la puntuación o inferencia
- Entorno: una imagen de Docker con dependencias de Conda o un archivo dockerfile
- Instancia de proceso y configuración de escalado
Aprenda a implementar puntos de conexión en línea desde la CLI y el portal web de Studio.
Prueba e implementación local para una depuración más rápida
Implemente localmente para probar los puntos de conexión sin implementarlos en la nube. Azure Machine Learning crea una imagen de Docker local que imita la imagen de Azure Machine Learning. Azure Machine Learning creará y ejecutará las implementaciones de forma local y almacenará en caché la imagen para lograr unas iteraciones rápidas.
Implementación nativa azul-verde
Recuerde que un único punto de conexión puede tener varias implementaciones. El punto de conexión en línea puede realizar el equilibrio de carga para asignar cualquier porcentaje de tráfico a cada implementación.
La asignación de tráfico se puede usar para realizar implementaciones azul/verde de lanzamiento seguras equilibrando las solicitudes entre las diferentes instancias.
Sugerencia
Una solicitud puede omitir el equilibrio de carga de tráfico configurado incluyendo un encabezado HTTP de azureml-model-deployment. Establezca el valor de encabezado en el nombre de la implementación a la que desea enrutar la solicitud.
Aprenda a implementar de forma segura en puntos de conexión en línea.
Integración de Application Insights
Todos los puntos de conexión en línea se integran con Application Insights para supervisar los Acuerdos de Nivel de Servicio y diagnosticar problemas.
No obstante, los puntos de conexión en línea administrados también incluyen integración lista para su uso con los registros y métricas de Azure.
Seguridad
- Autenticación: Tokens de clave y de Azure Machine Learning
- Identidad administrada: asignada por el usuario y asignada por el sistema (solo puntos de conexión en línea administrados)
- SSL de forma predeterminada para la invocación de puntos de conexión
Escalado automático
El escalado automático ejecuta automáticamente la cantidad adecuada de recursos para controlar la carga en la aplicación. Los puntos de conexión administrados admiten el escalado automático mediante la integración con la característica de escalado automático de Azure Monitor. Puede configurar el escalado basado en métricas (por ejemplo, el uso de CPU > 70 %), el escalado basado en programación (por ejemplo, las reglas de escalado para horas punta de actividad) o una combinación.
Depuración con Visual Studio Code
Visual Studio Code permite depurar puntos de conexión de forma interactiva.
Puntos de conexión en línea administrados frente a puntos de conexión en línea de Kubernetes (versión preliminar)
Hay dos tipos de puntos de conexión en línea: puntos de conexión en línea administrados (versión preliminar) y puntos de conexión en línea de Kubernetes (versión preliminar). En la tabla siguiente se resaltan algunas de sus principales diferencias.
| Puntos de conexión en línea administrados | Puntos de conexión en línea de Kubernetes | |
|---|---|---|
| Usuarios recomendados | Usuarios que desean una implementación de modelo administrada y una experiencia de MLOps mejorada | Usuarios que prefieren Kubernetes y pueden autoadministrar los requisitos de infraestructura |
| Administración de la infraestructura | Aprovisionamiento de proceso administrado, escalado, actualizaciones de imágenes del sistema operativo del host y reforzamiento de la seguridad | Responsabilidad del usuario |
| Compute type (Tipo de proceso) | Administrado (AmlCompute) | Clúster de Kubernetes (Kubernetes) |
| Supervisión inmediata | Supervisión de Azure (incluye métricas clave como la latencia y el rendimiento) |
No compatible |
| Registro inmediato | Registros y análisis de registros de Azure en el nivel de punto de conexión | Compatible |
| Application Insights | Compatible | Compatible |
| Identidad administrada | Compatible | Compatible |
| Virtual Network (VNET) | Todavía no se admite (estamos trabajando en ello) | Compatible |
| Visualización de costos | Nivel de punto de conexión y de implementación | Nivel de clúster |
Puntos de conexión en línea administrados
Los puntos de conexión en línea administrados pueden ayudar a simplificar el proceso de implementación. Los puntos de conexión en línea administrados proporcionan las siguientes ventajas con respecto a los puntos de conexión en línea de Kubernetes:
Infraestructura administrada
- Aprovisiona automáticamente el proceso y hospeda el modelo (el usuario solo tiene que especificar el tipo de máquina virtual y la configuración del escalado).
- Realiza automáticamente actualizaciones y revisiones en la imagen del sistema operativo del host subyacente.
- Recuperación automática de nodos si se produce un error del sistema
Supervisión y registros
- Supervise la disponibilidad, el rendimiento y el Acuerdo de Nivel de Servicio del modelo mediante la integración nativa con Azure Monitor.
- Depure las implementaciones mediante los registros y la integración nativa con Azure Log Analytics.
Identidad administrada
Visualización de costos
- Los puntos de conexión en línea administrados permiten supervisar el costo en los niveles de punto de conexión e implementación.
Para ver un tutorial paso a paso, consulte Implementación de puntos de conexión en línea administrados.
¿Qué son los puntos de conexión por lotes (versión preliminar)?
Los puntos de conexión por lotes (versión preliminar) son puntos de conexión que se usan para realizar la inferencia por lotes en grandes volúmenes de datos durante un período de tiempo. Los puntos de conexión por lotes reciben punteros hacia los datos y ejecutan trabajos de forma asincrónica para procesar los datos en paralelo en los clústeres de proceso. Los puntos de conexión por lotes almacenan salidas en un almacén de datos para su posterior análisis.
Requisitos de la implementación por lotes
Para crear una implementación por lotes, debe especificar los siguientes elementos:
- Archivos de modelo (o especificar un modelo registrado en el área de trabajo)
- Proceso
- Script de puntuación: código necesario para realizar la puntuación o inferencia
- Entorno: una imagen de Docker con dependencias de Conda
Si va a implementar modelos de MLFlow, no es necesario proporcionar un script de puntuación y un entorno de ejecución, ya que ambos se generan automáticamente.
Aprenda a implementar y usar puntos de conexión por lotes con la CLI de Azure y el portal web de Studio.
Costo administrado con un proceso de escalado automático
La invocación de un punto de conexión por lotes desencadena un trabajo asincrónico de inferencia por lotes. Los recursos de proceso se aprovisionan automáticamente cuando se inicia el trabajo y se desasignan automáticamente cuando se completa. Por lo tanto, solo paga por el proceso cuando lo usa.
Puede invalidar la configuración de recursos de proceso (por ejemplo, el recuento de instancias) y la configuración avanzada (como el tamaño de mini lote, el umbral de error, etc) para cada trabajo de inferencia por lotes individual para acelerar la ejecución y reducir el coste.
Almacenamiento y orígenes de datos flexibles
Puede usar las siguientes opciones para los datos de entrada al invocar un punto de conexión por lotes:
- Conjuntos de datos registrados de Azure Machine Learning: para más información, consulte Creación de conjuntos de datos de Azure Machine Learning.
- Datos en la nube: URI de datos públicos o ruta de acceso a datos del almacén de datos. Para más información, consulte Conexión a los datos con Azure Machine Learning Studio.
- Datos almacenados localmente
Especifique la ubicación de salida del almacenamiento en cualquier almacén de datos y ruta de acceso. De forma predeterminada, los puntos de conexión por lotes almacenan su salida en el almacén de blobs predeterminado del área de trabajo, organizados según el nombre del trabajo (un GUID generado por el sistema).
Seguridad
- Autenticación previa: tokens de Azure Active Directory
- SSL de forma predeterminada para la invocación de puntos de conexión
Pasos siguientes
- Implementación de puntos de conexión en línea administrados con la CLI de Azure
- Implementación de puntos de conexión por lotes con la CLI de Azure
- Uso de puntos de conexión en línea administrados con Studio
- Implementación de modelos con REST (versión preliminar)
- Supervisión de los puntos de conexión en línea administrados
- Visualización de los costos de los puntos de conexión en línea
- Administración y aumento de las cuotas de los recursos con Azure Machine Learning