¿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.

Diagrama que muestra un punto de conexión que divide el tráfico hacia dos implementaciones

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.

Captura de pantalla que muestra la interfaz con el control deslizante para establecer la asignación de tráfico entre las implementaciones

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.

Captura de pantalla que muestra que la flexibilidad del escalado automático proporciona instancias entre el número mínimo y máximo, en función de las reglas

Depuración con Visual Studio Code

Visual Studio Code permite depurar puntos de conexión de forma interactiva.

Captura de pantalla de la depuración de puntos de conexión en VSCode.

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:

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.

Diagrama que muestra que un único punto de conexión por lotes puede enrutar las solicitudes a varias implementaciones, una de las cuales es la predeterminada.

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:

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