Exploración de puntos de conexión en línea administrados

Completado

Para que un modelo de aprendizaje automático esté disponible en otras aplicaciones, puede implementarlo en un punto de conexión en línea administrado.

Aprenderá a usar puntos de conexión en línea administrados para predicciones en tiempo real.

Predicciones en tiempo real

Para obtener predicciones en tiempo real, puede implementar un modelo en un punto de conexión. Un punto de conexión es un punto de conexión HTTPS al que puede enviar datos y que devolverá una respuesta (casi) inmediata.

Los datos que envíe al punto de conexión servirán como entrada para el script de puntuación hospedado en el punto de conexión. El script de puntuación carga el modelo entrenado para predecir la etiqueta de los nuevos datos de entrada, lo que también se conoce como inferencia. La etiqueta forma parte de la salida que se devuelve.

Punto de conexión en línea administrado

En Azure Machine Learning, hay dos tipos de puntos de conexión en línea:

  • Puntos de conexión en línea administrados: Azure Machine Learning administra toda la infraestructura subyacente.
  • Puntos de conexión en línea de Kubernetes: los usuarios administran el clúster de Kubernetes, que proporciona la infraestructura necesaria.

Como científico de datos, es posible que prefiera trabajar con puntos de conexión en línea administrados para probar si el modelo funciona según lo previsto cuando se implementa. Si se requiere un punto de conexión en línea de Kubernetes para controlar y escalar, es probable que otros equipos lo administren.

Si usa un punto de conexión en línea administrado, solo tiene que especificar el tipo de máquina virtual (VM) y la configuración de escalado. Todo lo demás, como aprovisionar la potencia de proceso y actualizar el sistema operativo host (SO), se realiza automáticamente.

Implementación del modelo

Después de crear un punto de conexión en el área de trabajo de Azure Machine Learning, puede implementar un modelo en ese punto de conexión. Para implementar el modelo en un punto de conexión en línea administrado, debe especificar cuatro cosas:

  • Recursos de modelo como el archivo pickle del modelo o un modelo registrado en el área de trabajo de Azure Machine Learning.
  • Script de puntuación que carga el modelo.
  • Entorno que enumera todos los paquetes necesarios que deben instalarse en el proceso del punto de conexión.
  • La configuración de escalado, incluidos el tamaño de proceso y la configuración de escalado para asegurarse de que puede controlar la cantidad de solicitudes que recibirá el punto de conexión.

Importante

Al implementar modelos de MLFlow en un punto de conexión en línea, no es necesario proporcionar un script de puntuación y un entorno, ya que ambos se generan automáticamente.

Todos estos elementos se definen en la implementación. La implementación es básicamente un conjunto de recursos necesarios para hospedar el modelo que realiza la inferencia real.

Implementación azul-verde

Un punto de conexión puede tener varias implementaciones. Un enfoque es la implementación azul/verde.

Veamos el ejemplo del modelo de recomendación de restaurantes. Después de la experimentación, seleccione el modelo con mejor rendimiento. La implementación azul se usa para la primera versión del modelo. Cuando se recopilan nuevos datos, el modelo se puede volver a entrenar y se registra una nueva versión en el área de trabajo de Azure Machine Learning. Para probar el nuevo modelo, puede usar la implementación verde para la segunda versión del modelo.

Ambas versiones del modelo se implementan en el mismo punto de conexión, que se integra con la aplicación. Dentro de la aplicación, un usuario selecciona un restaurante y envía una solicitud al punto de conexión para obtener nuevas recomendaciones en tiempo real de otros restaurantes que le podrían gustar al usuario.

Cuando se envía una solicitud al punto de conexión, el 90 % del tráfico puede ir a la implementación azul*, y el 10 % del tráfico puede ir a la implementación verde. Con dos versiones del modelo implementadas en el mismo punto de conexión, puede probar fácilmente el modelo.

Después de las pruebas, también puede realizar una transición fluida a la nueva versión del modelo redirigiendo el 90 % del tráfico a la implementación verde. Si resulta que la nueva versión no funciona mejor, puede revertir fácilmente a la primera versión del modelo enrutando de nuevo la mayoría del tráfico a la implementación azul.

La implementación azul/verde permite implementar varios modelos en un punto de conexión. Puede decidir cuánto tráfico se debe desviar a cada modelo implementado. De este modo, puede cambiar a una nueva versión del modelo sin interrumpir el servicio al consumidor.

Sugerencia

Obtenga más información sobre la implementación segura para puntos de conexión en línea

Crear un punto de conexión

Para crear un punto de conexión en línea, usará la clase ManagedOnlineEndpoint, que requiere los parámetros siguientes:

  • name: Nombre del punto de conexión. Debe ser único en la región de Azure.
  • auth_mode: Use key para la autenticación basada en claves. Use aml_token para la autenticación basada en tokens de Azure Machine Learning.

Para crear un punto de conexión, use el siguiente comando:

from azure.ai.ml.entities import ManagedOnlineEndpoint

# create an online endpoint
endpoint = ManagedOnlineEndpoint(
    name="endpoint-example",
    description="Online endpoint",
    auth_mode="key",
)

ml_client.begin_create_or_update(endpoint).result()

Sugerencia

Explore la documentación de referencia para crear un punto de conexión en línea administrado con el SDK v2 de Python.