Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
APPLIES TO:
Azure CLI ml extension v2 (current)
Python SDK azure-ai-ml v2 (current)
Once you've trained machine learning models or pipelines, or you've found models from the model catalog that suit your needs, you need to deploy them to production so that others can use them for inference. La inferencia es el proceso de aplicar nuevos datos de entrada al modelo o canalización de Machine Learning para generar salidas. Aunque estas salidas se conocen normalmente como "predicciones", la inferencia se puede usar para generar salidas para otras tareas de aprendizaje automático, como la clasificación y la agrupación en clústeres. In Azure Machine Learning, you perform inferencing by using endpoints.
Puntos de conexión e implementaciones
An endpoint is a stable and durable URL that can be used to request or invoke a model. Las entradas necesarias se proporcionan al punto de conexión y se devuelven las salidas. Azure Machine Learning permite implementar implementaciones estándar, puntos de conexión en línea y puntos de conexión por lotes. Los puntos de conexión proporcionan:
- a stable and durable URL (like endpoint-name.region.inference.ml.azure.com),
- un mecanismo de autenticación y
- un mecanismo de autorización.
A deployment is a set of resources and computes required for hosting the model or component that does the actual inferencing. Un punto de conexión contiene una implementación y, para los puntos de conexión en línea y por lotes, un punto de conexión puede contener varias implementaciones. Las implementaciones pueden hospedar recursos independientes y consumir distintos recursos en función de las necesidades de los primeros. Además, un punto de conexión tiene un mecanismo de enrutamiento que puede dirigir las solicitudes a cualquiera de sus implementaciones.
Por un lado, algunos tipos de puntos de conexión de Azure Machine Learning consumen recursos dedicados en sus implementaciones. Para que estos puntos de conexión se ejecuten, debe tener cuota de proceso en la suscripción de Azure. Por otro lado, algunos modelos admiten una implementación sin servidor, lo que les permite consumir ninguna cuota de la suscripción. En el caso de la implementación sin servidor, se le factura según el uso.
Intuition
Supongamos que está trabajando en una aplicación que predice el tipo y el color de un automóvil según su foto. Para esta aplicación, un usuario con determinadas credenciales realiza una solicitud HTTP a una dirección URL y proporciona una imagen de un automóvil como parte de la solicitud. A cambio, el usuario obtiene una respuesta que incluye el tipo y el color del coche como valores de cadena. In this scenario, the URL serves as an endpoint.
Además, supongamos que una científica de datos, Alice, trabaja en la implementación de la aplicación. Alice sabe mucho sobre TensorFlow y decide implementar el modelo mediante un clasificador secuencial Keras con una arquitectura RestNet de TensorFlow Hub. Después de probar el modelo, Alice está satisfecha con los resultados y decide usar el modelo para resolver el problema de predicción del automóvil. El modelo tiene un tamaño grande y necesita 8 GB de memoria con 4 núcleos para ejecutarse. En este escenario, el modelo y los recursos de Alice necesarios para ejecutar el modelo, como el código y el proceso, constituyen una implementación en el punto de conexión.
Imaginemos que después de un par de meses, la organización descubre que la aplicación funciona mal en imágenes con condiciones de iluminación no ideales. Bob, otro científico de datos, sabe mucho sobre técnicas de aumento de datos que pueden utilizarse para ayudar al modelo a crear solidez en ese factor. Sin embargo, Bob se siente más cómodo usando Torch a la hora de implementar el modelo y entrena un nuevo modelo con Torch. A Bob le gustaría probar este modelo en producción gradualmente hasta que la organización esté preparada para retirar el antiguo. El nuevo modelo también muestra un mejor rendimiento cuando se implementa en GPU, por lo que la implementación debe incluir una GPU. En este escenario, el modelo y los recursos de Bob necesarios para ejecutar el modelo, como el código y el proceso, constituyen otra implementación en el mismo punto de conexión.
Puntos de conexión: implementación estándar, en línea y por lotes
Azure Machine Learning allows you to implement standard deployments, online endpoints, and batch endpoints.
standard deployment and online endpoints are designed for real-time inference. Siempre que invoque el punto de conexión, los resultados se devuelven en la respuesta del punto de conexión. Las implementaciones estándar no reducen la cuota de tu suscripción; en cambio, se facturan según la tarifa estándar.
Batch endpoints are designed for long-running batch inference. Cada vez que se invoca un punto de conexión por lotes, se genera un trabajo por lotes que lleva a cabo el trabajo real.
Cuándo usar puntos de conexión de implementación estándar, en línea y por lotes
standard deployment:
Use standard deployments to consume large foundational models for real-time inferencing off-the-shelf or for fine-tuning such models. No todos los modelos están disponibles para la implementación en implementaciones estándar. Se recomienda usar este modo de implementación cuando:
- El modelo es un modelo básico o una versión optimizada de un modelo básico que está disponible para las implementaciones estándar.
- Puede beneficiarse de una implementación sin cuota.
- No es necesario personalizar la pila de inferencia que se usa para ejecutar el modelo.
Online endpoints:
Use online endpoints to operationalize models for real-time inference in synchronous low-latency requests. Se recomienda usarlos cuando:
- Su modelo es un modelo básico o una versión ajustada de un modelo base, pero no es compatible con la implementación estándar.
- Tiene requisitos de baja latencia.
- El modelo puede responder a la solicitud en un período de tiempo relativamente corto.
- Las entradas del modelo se ajustan a la carga HTTP de la solicitud.
- Debe escalar verticalmente el número de solicitudes.
Batch endpoints:
Use batch endpoints to operationalize models or pipelines for long-running asynchronous inference. Se recomienda usarlos cuando:
- Tiene modelos o canalizaciones costosos que requieren un tiempo más largo para ejecutarse.
- Desee poner en funcionamiento canalizaciones de aprendizaje automático y reutilizar componentes.
- Si debe realizar la inferencia en grandes cantidades de datos distribuidos en varios archivos.
- Si no tiene requisitos de latencia baja.
- Las entradas del modelo se almacenan en una cuenta de almacenamiento o en un recurso de datos de Azure Machine Learning.
- Si puede aprovechar la paralelización.
Comparación de puntos de conexión de implementación estándar, en línea y por lotes
Todos los puntos de conexión de implementación estándar, en línea y por lotes se basan en la misma estructura de puntos de conexión, por lo que puede pasar de uno a otro fácilmente. Los puntos de conexión en línea y por lotes también son capaces de administrar varias implementaciones para el mismo punto de conexión.
Endpoints
La siguiente tabla muestra un resumen de las diferentes características de los puntos de conexión de implementación estándar, en línea y por lotes en el nivel de punto de conexión.
| Feature | Standard deployments | Online endpoints | Batch endpoints |
|---|---|---|---|
| Dirección URL de invocación estable | Yes | Yes | Yes |
| Compatibilidad con varias implementaciones | No | Yes | Yes |
| Deployment's routing | None | Traffic split | Cambiar al valor predeterminado |
| Tráfico reflejado para el lanzamiento seguro | No | Yes | No |
| Swagger support | Yes | Yes | No |
| Authentication | Key | Clave y Microsoft Entra ID (versión preliminar) | Microsoft Entra ID |
| Compatibilidad con redes privadas (heredada) | No | Yes | Yes |
| Aislamiento de red gestionada | Yes | Yes | Sí (consulte la configuración adicional necesaria) |
| Customer-managed keys | NA | Yes | Yes |
| Cost basis | Per endpoint, per minute1 | None | None |
1A small fraction is charged for standard deployment per minute. See the deployments section for the charges related to consumption, which are billed per token.
Deployments
La siguiente tabla muestra un resumen de las diferentes características de los puntos de conexión de implementación estándar, en línea y por lotes en el nivel de implementación. Estos conceptos se aplican a cada implementación en el punto de conexión (para puntos de conexión en línea y por lotes) y se aplican a la implementación estándar (donde el concepto de implementación está integrado en el punto de conexión).
| Feature | Standard deployment | Online endpoints | Batch endpoints |
|---|---|---|---|
| Deployment types | Models | Models | Modelos y componentes de canalización |
| Implementación de modelo de MLflow | No, solo modelos específicos del catálogo | Yes | Yes |
| Implementación de modelo personalizado | No, solo modelos específicos del catálogo | Sí, con script de puntuación | Sí, con script de puntuación |
| Inference server 3 | API de inferencia de modelos de Azure AI | - Servidor de inferencia de Azure Machine Learning - Triton - Personalizado (mediante BYOC) |
Batch Inference |
| Recurso de proceso consumido | None (serverless) | Instancias o recursos pormenorizados | Cluster instances |
| Compute type | None (serverless) | Proceso administrado y Kubernetes | Proceso administrado y Kubernetes |
| Low-priority compute | NA | No | Yes |
| Escala del proceso a cero | Built-in | No | Yes |
| Autoscaling compute4 | Built-in | Sí, en función del uso de recursos | Sí, en función del número de trabajos |
| Overcapacity management | Throttling | Throttling | Queuing |
| Cost basis5 | Per token | Por implementación: instancias de proceso que se ejecutan | Por trabajo: instancias de proceso consumidas en el trabajo (este valor está limitado al número máximo de instancias del clúster) |
| Pruebas locales de implementaciones | No | Yes | No |
El servidor de inferencia también dicta el formato de la entrada y las salidas esperadas. The inference server also dictates the format of the input and the expected outputs.
Las implementaciones en línea y por lotes usan diferentes estrategias de escalado automático. Aunque las implementaciones en línea se escalan y reducen verticalmente en función del uso de recursos (como CPU, memoria, solicitudes, etc.), los puntos de conexión por lotes se escalan o reducen verticalmente en función del número de trabajos creados. While online deployments scale up and down based on the resource utilization (like CPU, memory, requests, etc.), batch endpoints scale up or down based on the number of jobs created.
En las implementaciones en línea, los recursos se aprovisionan en el momento de la implementación. En la implementación por lotes, los recursos no se consumen en el momento de la implementación, sino en el momento en que se ejecuta el trabajo. Por lo tanto, no hay ningún costo asociado a la propia implementación por lotes. Del mismo modo, los trabajos en cola tampoco consumen recursos. Likewise, queued jobs don't consume resources either.
Developer interfaces
Los puntos de conexión están diseñados para ayudar a las organizaciones a operacionalizar cargas de trabajo de nivel de producción en Azure Machine Learning. Los puntos de conexión son recursos sólidos y escalables y ofrecen las mejores funcionalidades para implementar flujos de trabajo de MLOps.
Puede crear y administrar puntos de conexión por lotes y en línea con varias herramientas de desarrollo:
- La CLI de Azure y el SDK de Python
- 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