Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’APPLIQUE À :
Extension Azure CLI v2 (actuelle)
Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)
Après avoir entraîné des modèles ou des pipelines Machine Learning, ou trouvé des modèles appropriés à partir du catalogue de modèles, vous devez les déployer en production pour que d’autres utilisateurs puissent les utiliser pour l’inférence. L’inférence est le processus permettant d’appliquer de nouvelles données d’entrée à un pipeline ou un modèle Machine Learning pour générer des sorties. Bien que ces sorties soient généralement appelées « prédictions », l’inférence peut générer des sorties pour d’autres tâches de Machine Learning, telles que la classification et le clustering. Dans Azure Machine Learning, vous effectuez une inférence à l’aide de points de terminaison.
Points de terminaison et déploiements
Un point de terminaison est une URL stable et durable qui peut être utilisé pour faire la requête ou appeler un modèle. Vous fournissez les entrées requises au point de terminaison et recevez les sorties. Azure Machine Learning prend en charge les déploiements standard, les points de terminaison en ligne et les points de terminaison par lots. Un point de terminaison fournit :
- URL stable et durable (par exemple , endpoint-name.region.inference.ml.azure.com)
- Mécanisme d’authentification
- Mécanisme d’autorisation
Un déploiement est un ensemble de ressources et de calcul requis pour héberger le modèle ou le composant qui effectue l’inférence réelle. Un point de terminaison contient un déploiement. Pour les points de terminaison en ligne et par lots, un point de terminaison peut contenir plusieurs déploiements. Les déploiements peuvent héberger des ressources indépendantes et consommer différentes ressources en fonction des besoins des ressources. Un point de terminaison dispose également d’un mécanisme de routage qui peut diriger les requêtes vers l’un de ses déploiements.
Certains types de points de terminaison dans Azure Machine Learning consomment des ressources dédiées sur leurs déploiements. Pour que ces points de terminaison s’exécutent, vous devez disposer d’un quota de calcul sur votre abonnement Azure. Toutefois, certains modèles prennent en charge un déploiement serverless, ce qui leur permet d’utiliser aucun quota à partir de votre abonnement. Pour les déploiements serverless, vous êtes facturé en fonction de l’utilisation.
Intuition
Supposons que vous travaillez sur une application qui prédit le type et la couleur d’une voiture à partir d’une photo. Pour cette application, un utilisateur disposant de certaines informations d’identification effectue une requête HTTP à une URL et fournit une image d’une voiture dans le cadre de la requête. En retour, l’utilisateur reçoit une réponse qui inclut le type et la couleur de la voiture sous forme de valeurs de chaîne. Dans ce scénario, l’URL sert de point de terminaison.
Supposons maintenant qu’un scientifique des données, Alice, implémente l’application. Alice a une expérience TensorFlow étendue et décide d’implémenter le modèle à l’aide d’un classifieur séquentiel Keras avec une architecture ResNet à partir du hub TensorFlow. Après avoir testé le modèle, Alice est satisfaite de ses résultats et décide d’utiliser le modèle pour résoudre le problème de prédiction de voiture. Le modèle est volumineux et nécessite 8 Go de mémoire avec 4 cœurs à exécuter. Dans ce scénario, le modèle et les ressources d’Alice, tels que le code et le calcul, qui sont nécessaires pour exécuter le modèle constituent un déploiement sous le point de terminaison.
Après quelques mois, l’organisation découvre que l’application fonctionne mal sur des images avec de mauvaises conditions d’éclairage. Bob, un autre scientifique des données, a une expertise dans les techniques d’augmentation des données qui aident les modèles à créer une robustesse pour ce facteur. Toutefois, Bob préfère utiliser PyTorch pour implémenter le modèle et entraîner un nouveau modèle avec PyTorch. Bob veut tester ce modèle en production progressivement jusqu’à ce que l’organisation soit prête à mettre hors service l’ancien modèle. Le nouveau modèle fonctionne également mieux lorsqu’il est déployé sur GPU. Le déploiement doit donc inclure un GPU. Dans ce scénario, le modèle de Bob et les ressources( comme le code et le calcul) nécessaires pour exécuter le modèle constituent un autre déploiement sous le même point de terminaison.
Points de terminaison : déploiement standard, en ligne et traitement par lots
Azure Machine Learning prend en charge les déploiements standard, lespoints de terminaison en ligne et les points de terminaison par lots.
Les déploiements standard et les points de terminaison en ligne sont conçus pour l’inférence en temps réel. Lorsque vous appelez le point de terminaison, les résultats sont retournés dans la réponse du point de terminaison. Les déploiements standard ne consomment pas de quota à partir de votre abonnement ; Au lieu de cela, ils sont facturés avec la facturation standard.
Les points de terminaison par lots sont conçus pour l’inférence par lots à long terme. Lorsque vous appelez un point de terminaison de lot, vous générez un travail de traitement par lots qui effectue le travail réel.
Quand utiliser des points de terminaison de déploiement standard, en ligne et batch
Déploiement standard :
Utilisez les déploiements standard afin de consommer de grands modèles de base pour l’inférence en temps réel standard ou pour les affiner. Tous les modèles ne sont pas disponibles pour le déploiement vers des déploiements standard. Nous vous recommandons d’utiliser ce mode de déploiement lorsque :
- Votre modèle est un modèle de base ou une version affinée d’un modèle de base disponible pour les déploiements standard.
- Vous pouvez bénéficier d’un déploiement sans quota.
- Vous n’avez pas besoin de personnaliser la pile d’inférence utilisée pour exécuter le modèle.
Points de terminaison en ligne :
Utilisez les points de terminaison en ligne pour rendre les modèles opérationnels pour l’inférence en temps réel dans les requêtes synchrones à faible latence. Nous vous recommandons de les utiliser dans les cas suivants :
- Votre modèle est un modèle de base ou une version affinée d’un modèle de base, mais il n’est pas pris en charge dans le déploiement standard.
- Vous êtes soumis à des exigences de faible latence.
- Votre modèle peut répondre à la requête dans un laps de temps relativement court.
- Les entrées de votre modèle correspondent à la charge utile HTTP de la requête.
- Vous devez effectuer un scale-up en termes de nombre de requêtes.
Points de terminaison par lots :
Utilisez des points de terminaison de lot pour rendre opérationnels des modèles ou des pipelines pour l’inférence asynchrone de longue durée. Nous vous recommandons de les utiliser dans les cas suivants :
- Vous disposez de modèles ou de pipelines coûteux qui nécessitent un temps d’exécution plus long.
- Vous souhaitez rendre opérationnels les pipelines Machine Learning et réutiliser les composants.
- Vous devez effectuer une inférence sur de grandes quantités de données qui sont distribuées dans plusieurs fichiers.
- Vous n’avez pas d’exigences de faible latence.
- Les entrées de votre modèle sont stockées dans un compte de stockage ou dans un élément de données Azure Machine Learning.
- Vous pouvez tirer parti de la parallélisation.
Comparaison des points de terminaison de déploiement standard, en ligne et par lots
Tous les déploiements standard, points de terminaison en ligne et points de terminaison batch sont basés sur l’idée des points de terminaison. Vous pouvez donc passer facilement d’un point de terminaison à l’autre. Les points de terminaison en ligne et par lots peuvent également gérer plusieurs déploiements pour le même point de terminaison.
Points de terminaison
Le tableau suivant présente un résumé des différentes fonctionnalités disponibles pour les déploiements standard, les points de terminaison en ligne et les points de terminaison batch au niveau du point de terminaison.
| Fonctionnalité | Déploiements standard | Points de terminaison en ligne | Points de terminaison batch |
|---|---|---|---|
| URL d’appel stable | Oui | Oui | Oui |
| Prise en charge de plusieurs déploiements | Non | Oui | Oui |
| Routage du déploiement | Aucun | Fractionnement du trafic | Basculement vers la valeur par défaut |
| Mettre en miroir le trafic pour un déploiement sécurisé | Non | Oui | Non |
| Prise en charge de Swagger | Oui | Oui | Non |
| Authentification | Clé | Clé et Microsoft Entra ID (préversion) | Microsoft Entra ID (système d'identification de Microsoft) |
| Prise en charge des réseaux privés (hérité) | Non | Oui | Oui |
| Isolation de réseau gérée | Oui | Oui | Oui (voir la configuration supplémentaire requise) |
| Clés gérées par le client | N/D | Oui | Oui |
| Base des coûts | Par point de terminaison, par minute1 | Aucun | Aucun |
1Une petite fraction est facturée pour le déploiement standard par minute. Consultez la section Déploiements pour les frais liés à la consommation facturés par jeton.
Déploiements
Le tableau suivant présente un résumé des différentes fonctionnalités disponibles pour les déploiements standard, les points de terminaison en ligne et les points de terminaison batch au niveau du déploiement. Ces concepts s’appliquent à chaque déploiement sous le point de terminaison (pour les points de terminaison en ligne et par lots) et s’appliquent aux déploiements standard (où le concept de déploiement est intégré au point de terminaison).
| Fonctionnalité | Déploiements standard | Points de terminaison en ligne | Points de terminaison batch |
|---|---|---|---|
| Types de déploiement | Modèles | Modèles | Modèles et composants de pipeline |
| Déploiement de modèles MLflow | Non, seuls des modèles particuliers du catalogue | Oui | Oui |
| Déploiement de modèles personnalisés | Non, seuls des modèles particuliers du catalogue | Oui, avec un script de scoring | Oui, avec un script de scoring |
| Serveur d’inférence 3 | API d’inférence de modèle Azure AI | – Serveur d’inférence Azure Machine Learning – Triton – Personnalisé (avec BYOC) |
Inférence par lots |
| Ressource de calcul consommée | Aucun (serverless) | Instances ou ressources granulaires | Instances de cluster |
| Type de capacité de calcul | Aucun (serverless) | Calcul managé et Kubernetes | Calcul managé et Kubernetes |
| Calcul à faible priorité | N/D | Non | Oui |
| Calcul de mise à l’échelle à zéro | Intégré | Non | Oui |
| Calcul de mise à l’échelle automatique4 | Intégré | Oui, en fonction de l’utilisation des ressources | Oui, en fonction du nombre de travaux |
| Gestion des surcapacités | Limitation | Limitation | Mise en file d'attente |
| Base des coûts5 | Par jeton | Par déploiement : instances de calcul en cours d’exécution | Par travail : instances de calcul consommées dans le travail (limitées au nombre maximal d’instances du cluster) |
| Test local des déploiements | Non | Oui | Non |
2Serveur d’inférence fait référence à la technologie de service qui accepte les demandes, les traite et crée des réponses. Le serveur d’inférence détermine également le format de l’entrée et les sorties attendues.
La mise à l’échelle automatique 3 est la possibilité de monter en puissance ou de réduire dynamiquement les ressources allouées du déploiement en fonction de sa charge. Les déploiements en ligne et par lots utilisent différentes stratégies de mise à l’échelle automatique. Alors que les déploiements en ligne sont mis à l’échelle en fonction de l’utilisation des ressources (comme le processeur, la mémoire, les requêtes, etc.), les points de terminaison par lots sont mis à l’échelle en fonction du nombre de travaux créés.
4 Les déploiements en ligne et par lots sont facturés par les ressources consommées. Dans les déploiements en ligne, les ressources sont approvisionnées au moment du déploiement. Dans les déploiements par lots, les ressources ne sont pas consommées au moment du déploiement, mais au moment où le travail s’exécute. Par conséquent, aucun coût n’est associé au déploiement par lots lui-même. De même, les travaux en file d’attente ne consomment pas non plus de ressources.
Interfaces développeur
Les points de terminaison sont conçus pour aider les organisations à rendre opérationnelles les charges de travail au niveau de la production dans Azure Machine Learning. Les points de terminaison sont des ressources robustes et évolutives qui fournissent les meilleures fonctionnalités pour implémenter des workflows MLOps.
Vous pouvez créer et gérer des points de terminaison par lots et en ligne avec plusieurs outils de développement :
- Kit de développement logiciel (SDK) Azure CLI et Python
- API Azure Resource Manager/REST
- Portail web du studio Azure Machine Learning
- Portail Azure (informatique/administrateur)
- Prise en charge des pipelines MLOps CI/CD avec l’interface Azure CLI et les interfaces REST/ARM
Contenu connexe
- Déployer et évaluer un modèle de Machine Learning à l’aide d’un point de terminaison en ligne
- Déployer des modèles pour scoring dans des points de terminaison par lot
- Guide pratique pour déployer des pipelines avec des points de terminaison de lot
- Guide pratique pour superviser des points de terminaison en ligne managés