Pasos de actualización de los servicios web de Azure Container Instances a puntos de conexión en línea administrados

Los puntos de conexión en línea administrados ayudan a implementar los modelos de ML de forma inmediata. Los puntos de conexión en línea administrados funcionan con máquinas eficaces de CPU y GPU en Azure de una manera escalable y totalmente administrada. Los puntos de conexión en línea administrados se encargan de atender, escalar, proteger y supervisar los modelos, lo que le libera de la sobrecarga de configurar y administrar la infraestructura subyacente. Encontrará más información en Implementación y puntuación de un modelo de aprendizaje automático mediante un punto de conexión en línea.

Puede implementar directamente en el nuevo destino de proceso con los modelos y entornos anteriores, o usar los scripts que le proporcionamos para exportar los servicios actuales y, después, implementar en el nuevo proceso sin afectar a los servicios existentes. Si crea y elimina periódicamente servicios web de Azure Container Instances (ACI), se recomienda encarecidamente implementar directamente y no usar los scripts.

Importante

La dirección URL de puntuación se cambiará después de la actualización. Por ejemplo, la dirección URL de puntuación del servicio web de ACI equivale a http://aaaaaa-bbbbb-1111.westus.azurecontainer.io/score. El identificador URI de puntuación de un punto de conexión en línea administrado equivale a https://endpoint-name.westus.inference.ml.azure.com/score.

Escenarios y diferencias admitidos

Modo de autenticación

No se admite ninguna autenticación para el punto de conexión en línea administrado. Si usa los scripts de actualización, los convertirá en autenticación de claves. Para la autenticación de claves, se usarán las claves originales. También se admite la autenticación basada en tokens.

TLS

Para el servicio ACI protegido con HTTPS, ya no es necesario proporcionar sus propios certificados, todos los puntos de conexión en línea administrados están protegidos por TLS.

No se admiten nombres DNS personalizados.

Requisitos de recursos

ContainerResourceRequirements no se admite, puede elegir la SKU adecuada para la inferencia. La herramienta de actualización asignará el requisito de CPU/memoria a la SKU correspondiente. Si decide volver a implementar manualmente mediante la CLI o EL SDK V2, también se recomienda la SKU correspondiente para la nueva implementación.

Solicitud de CPU Solicitud de memoria en GB Sugerencia de SKU
(0, 1] (0, 1.2] DS1 V2
(1, 2] (1.2, 1.7] F2s V2
(1, 2] (1.7, 4.7] DS2 V2
(1, 2] (4.7, 13.7] E2s V3
(2, 4] (0, 5.7] F4s V2
(2, 4] (5.7, 11.7] DS3 V2
(2, 4] (11.7, 16] E4s V3

"(" significa mayor que y "]" significa menor o igual que. Por ejemplo, "(0, 1]" significa "mayor que 0 y menor o igual que 1".

Importante

Al actualizar desde ACI, habrá algunos cambios en la forma de aplicar cargos. Consulte nuestro blog para obtener una comparación aproximada de costos para ayudarle a elegir las SKU de máquina virtual adecuadas para la carga de trabajo.

Aislamiento de red

Para ver escenarios de área de trabajo privada y red virtual, vea Uso del aislamiento de red con puntos de conexión en línea administrados.

Importante

Como hay muchos valores para el área de trabajo y la red virtual, se recomienda encarecidamente volver a implementar a través de la extensión de la CLI de Azure v2 para el aprendizaje automático en lugar de la herramienta de script.

No compatible

  • No se admite EncryptionProperties para el contenedor de ACI.
  • Los servicios web de ACI implementados a través de deploy_from_model y deploy_from_image no son compatibles con la herramienta de actualización. Vuelva a implementar manualmente a través de la CLI o SDK V2.

Pasos de actualización

Con CLI o SDK

Vuelva a implementar manualmente con los archivos de modelo y la definición del entorno. Puede encontrar nuestros ejemplos en azureml-examples. En concreto, este es el ejemplo del SDK para el punto de conexión en línea administrado.

Con nuestra herramienta de actualización

Esta herramienta creará automáticamente un nuevo punto de conexión en línea administrado en función de los servicios web existentes. Los servicios originales no se verán afectados. Puede enrutar el tráfico de forma segura al nuevo punto de conexión y, a continuación, eliminar el antiguo.

Nota:

El script de actualización es un script de ejemplo y se proporciona sin necesidad de un contrato de nivel de servicio (SLA).

Siga estos pasos para ejecutar los scripts:

Sugerencia

El nuevo punto de conexión creado por los scripts se creará en la misma área de trabajo.

  1. Use un shell de Bash para ejecutar los scripts. Por ejemplo, una sesión de terminal en Linux o el Subsistema de Windows para Linux (WSL).

  2. Instale el SDK de Python v1 para ejecutar el script de Python.

  3. Instale la CLI de Azure.

  4. Clone el repositorio en el entorno local. Por ejemplo, git clone https://github.com/Azure/azureml-examples.

  5. Edite los siguientes valores en el archivo migrate-service.sh. Reemplace los valores por los que se aplican a su configuración.

    • <SUBSCRIPTION_ID>: Id. de suscripción de la suscripción de Azure que contiene el área de trabajo.
    • <RESOURCEGROUP_NAME>: Grupo de recursos que contiene el área de trabajo.
    • <WORKSPACE_NAME>: Nombre del área de trabajo.
    • <SERVICE_NAME>: Nombre del servicio ACI existente.
    • <LOCAL_PATH>: Ruta de acceso local donde se descargan los recursos y las plantillas que usa el script.
    • <NEW_ENDPOINT_NAME>: Nombre del nuevo punto de conexión que se creará. Se recomienda que el nuevo nombre del punto de conexión sea diferente del nombre del servicio anterior. De lo contrario, el servicio original no se mostrará si comprueba los puntos de conexión en el portal.
    • <NEW_DEPLOYMENT_NAME>: El nombre de la implementación en el nuevo punto de conexión.
  6. Ejecute el script de Bash. Por ejemplo, ./migrate-service.sh. La nueva implementación tardará aproximadamente entre 5 y 10 minutos.

    Sugerencia

    Si recibe un error que indica que el script no es ejecutable o se abre un editor al intentar ejecutar el script, use el siguiente comando para marcar el script como ejecutable:

    chmod +x migrate-service.sh
    
  7. Una vez completada correctamente la implementación, puede comprobar el punto de conexión con el comando az ml online-endpoint invoke.

Ponerse en contacto con nosotros

Si tiene alguna pregunta o comentarios sobre el script de actualización, póngase en contacto con nosotros en moeonboard@microsoft.com.

Pasos siguientes