Perspective d’Azure Well-Architected Framework sur Azure Machine Learning
Azure Machine Learning est un service cloud managé que vous pouvez utiliser pour entraîner, déployer et gérer des modèles Machine Learning. Il existe un large éventail de choix et de configurations pour l’entraînement et le déploiement de modèles, y compris les références SKU et les configurations de calcul. Vous pouvez déployer des modèles Machine Learning sur le calcul Machine Learning ou sur d’autres services Azure tels que Azure Kubernetes Service (AKS).
Cet article fournit des recommandations architecturales pour prendre des décisions éclairées lorsque vous utilisez Le Machine Learning pour entraîner, déployer et gérer des modèles Machine Learning. Les conseils sont basés sur les piliers d’Azure Well-Architected Framework.
Important
Comment utiliser ce guide
Chaque section a une liste de contrôle de conception qui présente les domaines d’intérêt architecturaux ainsi que les stratégies de conception localisées en fonction de l’étendue de la technologie.
Des recommandations sur les capacités technologiques qui peuvent aider à matérialiser ces stratégies sont également incluses. Les recommandations ne représentent pas une liste exhaustive de toutes les configurations disponibles pour le Machine Learning et ses dépendances. Au lieu de cela, ils répertorient les recommandations clés mappées aux perspectives de conception. Utilisez les recommandations pour créer votre preuve de concept ou pour optimiser vos environnements existants.
L’architecture de référence de base de l’architecture OpenAI de référence pour les conversations de bout en bout présente un grand nombre de recommandations clés.
Étendue de la technologie
Cette révision se concentre sur les décisions interdépendantes pour ces ressources Azure :
- Machine Learning
- Clusters de calcul Machine Learning
- Instances de calcul Machine Learning
La révision ne traite pas des ressources connectées telles que les magasins de données ou azure Key Vault.
Fiabilité
L’objectif du pilier Fiabilité est de fournir des fonctionnalités continues en créant suffisamment de résilience et la possibilité de récupérer rapidement après des défaillances.
Les principes de conception de fiabilité fournissent une stratégie de conception de haut niveau appliquée pour des composants individuels, des flux système et le système dans son ensemble.
Check-list pour la conception
Démarrez votre stratégie de conception en fonction de la liste de vérification de la révision de la conception pour la fiabilité et déterminez sa pertinence par rapport aux besoins de votre entreprise. Étendez la stratégie pour inclure d’autres approches en fonction des besoins.
Résilience : déployez des modèles dans des environnements qui prennent en charge les zones de disponibilité, comme AKS. En vous assurant que les déploiements sont distribués entre les zones de disponibilité, vous vous assurez qu’un déploiement est disponible même en cas de défaillance d’un centre de données. Pour améliorer la fiabilité et la disponibilité, envisagez une topologie de déploiement multirégion.
Résilience : assurez-vous d’avoir suffisamment de calcul pour l’entraînement et l’inférence. Grâce à la planification des ressources, assurez-vous que votre référence SKU de calcul et vos paramètres de mise à l’échelle répondent aux exigences de votre charge de travail.
Résilience : séparez les espaces de travail Machine Learning utilisés pour le travail exploratoire de ceux utilisés pour la production.
Résilience : lorsque vous utilisez des points de terminaison en ligne managés pour l’inférence, utilisez une stratégie de mise en production telle que les déploiements bleu-vert pour réduire les temps d’arrêt et réduire les risques associés au déploiement de nouvelles versions.
Exigences métier : sélectionnez votre utilisation des clusters de calcul, des instances de calcul et des hôtes d’inférence externalisés en fonction des besoins en matière de fiabilité, en considérant les contrats de niveau de service (SLA) comme un facteur.
Récupération : vérifiez que vous disposez de fonctionnalités de réparation automatique, telles que les fonctionnalités de point de contrôle prises en charge par Machine Learning, lors de l’entraînement de modèles volumineux.
Récupération : vérifiez qu’une stratégie de récupération est définie. Machine Learning n’a pas de basculement automatique. Par conséquent, vous devez concevoir une stratégie qui englobe l’espace de travail et toutes ses dépendances, telles que Key Vault, Stockage Azure et Azure Container Registry.
Recommandations
Recommandation | Avantage |
---|---|
Déploiement de modèles multirégions : pour améliorer la fiabilité et la disponibilité, envisagez d’utiliser un environnement de déploiement multirégion lorsque cela est possible. | Un déploiement multirégion garantit que vos charges de travail Machine Learning continuent à s’exécuter même si une région rencontre une panne. Le déploiement multirégion améliore la distribution de la charge entre les régions, ce qui peut améliorer les performances des utilisateurs situés dans différentes zones géographiques. Pour plus d’informations, consultez Basculement de la continuité d’activité et reprise d’activité. |
Résilience de l’entraînement du modèle : utilisez les fonctionnalités de point de contrôle prises en charge par Machine Learning, notamment Azure Container pour PyTorch, la classe Estimateur TensorFlow ou l’objet Run et la classe FileDataset qui prennent en charge les points de contrôle de modèle. | Les points de contrôle de modèle enregistrent régulièrement l’état de votre modèle Machine Learning pendant l’entraînement, afin qu’il puisse être restauré en cas d’interruption, d’échec ou d’arrêt. Pour plus d’informations, consultez Augmenter la vitesse des points de contrôle et réduire les coûts avec Nebula. |
Utiliser le niveau machine virtuelle dédiée pour les clusters de calcul : utilisez le niveau machine virtuelle dédiée pour les clusters de calcul pour l’inférence par lots afin de vous assurer que votre travail par lots n’est pas préempté. | Les machines virtuelles de faible priorité sont à un prix réduit, mais elles sont préeptibles. Les clusters qui utilisent le niveau Machine virtuelle dédiée ne sont pas préemptés. |
Sécurité
L’objectif du pilier Sécurité est de fournir des garanties de confidentialité, d’intégrité et de disponibilité à la charge de travail.
Les principes de conception de la sécurité fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs en appliquant des approches à la conception technique autour du Machine Learning.
Check-list pour la conception
Démarrez votre stratégie de conception basée sur la liste de vérification de la révision de conception pour la sécurité et identifiez les vulnérabilités et les contrôles pour améliorer la posture de sécurité. Étendez la stratégie pour inclure d’autres approches en fonction des besoins.
Disponibilité : réduisez la surface d’attaque de l’espace de travail Machine Learning en limitant l’accès à l’espace de travail aux ressources au sein du réseau virtuel.
Confidentialité : Protégez-vous contre l’exfiltration de données à partir de l’espace de travail Machine Learning en implémentant l’isolation réseau. Vérifiez que l’accès à toutes les ressources externes est explicitement approuvé et que l’accès à toutes les autres ressources externes n’est pas autorisé.
Intégrité : implémentez des contrôles d’accès qui authentifient et autorisent l’espace de travail Machine Learning pour les ressources externes en fonction du principe des privilèges minimum.
Intégrité : Implémentez la séparation des cas d’usage pour les espaces de travail Machine Learning en configurant des espaces de travail en fonction de cas d’usage ou de projets spécifiques. Cette approche respecte le principe des privilèges minimum en garantissant que les espaces de travail sont accessibles uniquement aux personnes qui ont besoin d’accéder aux données et aux ressources d’expérimentation pour le cas d’usage ou le projet.
Intégrité : réglez l’accès aux modèles fondamentaux. Vérifiez que seuls les registres approuvés ont accès aux modèles dans le registre de modèles.
Intégrité : Réglez l’accès aux registres de conteneurs approuvés. Vérifiez que le calcul Machine Learning peut accéder uniquement aux registres approuvés.
Intégrité : réglez les packages Python qui peuvent être exécutés sur le calcul Machine Learning. La réglementation des packages Python garantit que seuls les packages approuvés sont exécutés.
Intégrité : exiger que le code utilisé pour l’entraînement dans les environnements de calcul Machine Learning soit signé. Exiger la signature de code garantit que le code en cours d’exécution provient d’une source approuvée et n’a pas été falsifié.
Confidentialité : respectez le principe des privilèges minimum pour le contrôle d’accès en fonction du rôle (RBAC) sur l’espace de travail Machine Learning et les ressources associées, telles que le compte de stockage de l’espace de travail, afin de garantir que les personnes disposent uniquement des autorisations nécessaires pour leur rôle, ce qui réduit les risques de sécurité potentiels.
Intégrité : établissez l’approbation et l’accès vérifié en implémentant le chiffrement pour les données au repos et les données en transit.
Recommandations
Recommandation | Avantage |
---|---|
Base de référence de sécurité : pour améliorer la sécurité et la conformité de votre service Machine Learning, appliquez la base de référence de sécurité Azure pour Machine Learning. | La base de référence de sécurité fournit des conseils personnalisés sur des aspects de sécurité cruciaux tels que la sécurité réseau, la gestion des identités, la protection des données et l’accès privilégié. Pour une sécurité optimale, utilisez Microsoft Defender pour le cloud afin de surveiller ces aspects. |
Isolation de réseau virtuel managé : configurez l’isolation de réseau virtuel managé pour Machine Learning. Lorsque vous activez l’isolation de réseau virtuel managé, un réseau virtuel managé est créé pour l’espace de travail. Les ressources de calcul managées que vous créez pour l’espace de travail utilisent automatiquement ce réseau virtuel managé. Si vous ne pouvez pas implémenter l’isolation de réseau virtuel managé, vous devez suivre les recommandations de topologie de réseau pour séparer le calcul en un sous-réseau dédié loin du reste des ressources de la solution, y compris les points de terminaison privés pour les ressources de l’espace de travail. | L’isolation de réseau virtuel managé améliore la sécurité en isolant votre espace de travail des autres réseaux, ce qui réduit le risque d’accès non autorisé. Dans un scénario où une violation se produit dans un autre réseau au sein de votre organization, le réseau isolé de votre espace de travail Machine Learning reste inchangé, protégeant vos charges de travail Machine Learning. |
Isolation réseau Machine Learning : configurez un point de terminaison privé pour votre espace de travail Machine Learning et connectez-vous à l’espace de travail via ce point de terminaison privé. | L’isolation réseau Machine Learning améliore la sécurité en garantissant que l’accès à votre espace de travail est sécurisé et contrôlé. Avec un point de terminaison privé configuré pour votre espace de travail, vous pouvez ensuite limiter l’accès à votre espace de travail pour qu’il se produise uniquement sur les adresses IP privées. |
Autoriser uniquement l’accès sortant approuvé : configurez le mode sortant sur l’accès sortant géré par l’espace de travail Machine Learning pour Allow only approved outbound réduire le risque d’exfiltration de données. Configurez des points de terminaison privés, des étiquettes de service ou des noms de domaine complets (FQDN) pour les ressources auxquelles vous devez accéder. |
Cette configuration réduit le risque d’exfiltration des données, ce qui améliore la sécurité des données. Une fois cette configuration activée, un acteur malveillant qui accède à votre système ne peut pas envoyer vos données à une destination externe non approuvée. |
Isolation de réseau virtuel pour les services dépendants : configurez les services dépendants, tels que stockage, Key Vault et Container Registry avec des points de terminaison privés, et désactivez l’accès public. | L’isolation réseau renforce la sécurité en limitant l’accès aux solutions PaaS (Platform as a Service) Azure uniquement aux adresses IP privées. |
Identité managée : utilisez des identités managées pour l’authentification entre Machine Learning et d’autres services. | Les identités managées améliorent la sécurité en éliminant la nécessité de stocker les informations d’identification et de gérer et de faire pivoter manuellement les principaux de service. |
Désactiver l’authentification locale : désactivez l’authentification locale pour les clusters et instances de calcul Machine Learning. | La désactivation de l’authentification locale augmente la sécurité de votre calcul Machine Learning et fournit un contrôle et une gestion centralisés des identités et des informations d’identification des ressources. |
Désactiver le port SSH public : vérifiez que le port SSH (Secure Shell) public est fermé sur le cluster de calcul Machine Learning en définissant sur remoteLoginPortPublicAccess Disabled . Appliquez une configuration similaire si vous utilisez un calcul différent. |
La désactivation de l’accès SSH permet d’empêcher les personnes non autorisées d’accéder à votre système et de causer potentiellement des dommages à votre système, et vous protège contre les attaques par force brute. |
Ne pas provisionner d’adresses IP publiques pour le calcul Machine Learning : définissez enableNodePublicIpfalse sur lors de l’approvisionnement de clusters de calcul ou d’instances de calcul Machine Learning. Appliquez une configuration similaire si vous utilisez un calcul différent. |
Évitez de provisionner des adresses IP publiques pour améliorer la sécurité en limitant le risque d’accès non autorisé à vos instance de calcul ou à vos clusters. |
Obtenir la dernière image du système d’exploitation : recréez les instances de calcul pour obtenir la dernière image du système d’exploitation. | L’utilisation des images les plus récentes vous permet de maintenir un environnement cohérent, stable et sécurisé, notamment en vous assurant que vous disposez des derniers correctifs de sécurité. |
Contrôles d’accès stricts à l’espace de travail Machine Learning : utilisez Microsoft Entra ID groupes pour gérer l’accès à l’espace de travail et respectez le principe des privilèges minimum pour RBAC. | Des contrôles d’accès stricts à l’espace de travail améliorent la sécurité en veillant à ce que les individus disposent uniquement des autorisations nécessaires pour leur rôle. Un scientifique des données, pour instance, peut avoir accès à l’exécution d’expériences, mais pas à modifier les paramètres de sécurité, ce qui réduit les risques de sécurité potentiels. |
Restreindre les déploiements de catalogues de modèles : limitez les déploiements de modèles à des registres spécifiques. | La restriction des déploiements à partir du catalogue de modèles à des registres spécifiques garantit que vous déployez uniquement des modèles sur des registres approuvés. Cette approche permet de réglementer l’accès aux modèles de base open source. |
Chiffrer les données au repos : envisagez d’utiliser des clés gérées par le client avec Le Machine Learning. | Le chiffrement des données au repos améliore la sécurité des données en garantissant que les données sensibles sont chiffrées à l’aide de clés gérées directement par vous. Si vous avez une obligation réglementaire de gérer vos propres clés de chiffrement, utilisez cette fonctionnalité pour vous conformer à cette exigence. |
Réduire le risque d’exfiltration de données : implémentez la prévention de l’exfiltration des données. Par exemple, créez une stratégie de point de terminaison de service pour filtrer le trafic de réseau virtuel de sortie et autoriser l’exfiltration de données uniquement vers des comptes de stockage Azure spécifiques. | Réduisez le risque d’exfiltration de données en limitant les exigences entrantes et sortantes. |
Advisor
Voici quelques exemples des meilleures pratiques de sécurité d’Advisor pour le Machine Learning :
- Les espaces de travail doivent être chiffrés avec une clé gérée par le client (CMK).
- Les espaces de travail doivent utiliser Azure Private Link.
- Les espaces de travail doivent désactiver l’accès au réseau public.
- Le calcul doit se trouver dans un réseau virtuel.
- Les instances de calcul doivent être recréées pour obtenir les dernières mises à jour logicielles.
Azure Policy
Voici des exemples de définitions de Azure Policy intégrées pour la sécurité machine learning :
- Configurez les registres autorisés pour les calculs Machine Learning spécifiés.
- Configurez les packages Python autorisés pour les calculs Machine Learning spécifiés.
- Les espaces de travail Machine Learning doivent désactiver l’accès au réseau public.
- Les instances de calcul Machine Learning doivent être recréées pour obtenir les dernières mises à jour logicielles.
- Les calculs Machine Learning doivent se trouver dans un réseau virtuel.
- Les méthodes d’authentification locales doivent être désactivées pour les calculs Machine Learning.
- Les espaces de travail Machine Learning doivent être chiffrés avec une clé CMK.
- Les espaces de travail Machine Learning doivent utiliser Private Link.
- Les espaces de travail Machine Learning doivent utiliser une identité managée affectée par l’utilisateur.
- Exiger un point de terminaison d’approbation appelé avant l’exécution des travaux pour les calculs Machine Learning spécifiés.
- Exiger la signature de code pour le code d’entraînement pour les calculs.
- Limitez le déploiement de modèles à des registres spécifiques.
Optimisation des coûts
L’optimisation des coûts se concentre sur la détection des modèles de dépenses, la hiérarchisation des investissements dans les domaines critiques et l’optimisation dans d’autres pour répondre au budget de l’organization tout en répondant aux besoins de l’entreprise.
Lisez les principes de conception de l’optimisation des coûts pour comprendre les approches permettant d’atteindre ces objectifs et les compromis nécessaires dans les choix de conception technique liés à la formation et au déploiement de modèles dans leurs environnements.
Check-list pour la conception
Démarrez votre stratégie de conception en fonction de la liste de vérification de la révision de la conception pour l’optimisation des coûts pour les investissements et ajustez la conception afin que la charge de travail soit alignée sur le budget alloué à la charge de travail. Votre conception doit utiliser les fonctionnalités Azure appropriées, surveiller les investissements et trouver des opportunités d’optimisation au fil du temps.
Optimisation de l’utilisation : choisissez les ressources appropriées pour vous assurer qu’elles correspondent aux exigences de votre charge de travail. Par exemple, choisissez entre des processeurs ou des GPU, différentes références SKU ou des machines virtuelles de priorité basse par rapport aux machines virtuelles de priorité régulière.
Optimisation de l’utilisation : vérifiez que les ressources de calcul qui ne sont pas utilisées sont mises à l’échelle ou arrêtées lorsqu’elles sont inactives pour réduire le gaspillage.
Optimisation de l’utilisation : appliquez des stratégies et configurez des quotas pour respecter les limites supérieures et inférieures de la conception.
Optimisation de l’utilisation : testez la parallélisation des charges de travail d’entraînement pour déterminer si les exigences d’entraînement peuvent être satisfaites sur les références SKU à moindre coût.
Optimisation du taux : achetez des instances de machine virtuelle réservées Azure si vous disposez d’une bonne estimation de l’utilisation au cours des 1 à trois prochaines années.
Surveiller et optimiser : surveillez l’utilisation de vos ressources, comme l’utilisation du processeur et du GPU lors de l’entraînement des modèles. Si les ressources ne sont pas entièrement utilisées, modifiez votre code pour mieux les exploiter, ou effectuez un scale-down vers des tailles de machine virtuelle plus petites ou plus économiques.
Recommandations
Recommandation | Avantage |
---|---|
Optimiser les ressources de calcul : optimisez vos ressources de calcul en fonction des exigences de votre charge de travail. Choisissez la référence SKU qui convient le mieux à votre charge de travail :
|
Il est essentiel de sélectionner le calcul approprié, car il a un impact direct sur le coût d’exécution de votre charge de travail. Le choix d’un GPU ou d’une référence SKU hautes performances sans utilisation appropriée peut entraîner un gaspillage de dépenses, tandis que le choix d’un calcul sous-dimensionné peut entraîner des temps d’entraînement et des problèmes de performances prohibitifs. |
Optimiser la mise à l’échelle du calcul : configurez vos clusters de calcul pour la mise à l’échelle automatique pour vous assurer d’utiliser uniquement ce dont vous avez besoin. Pour les clusters d’entraînement, définissez le nombre minimal de nœuds sur 0 et configurez la durée d’inactivité du nœud à une heure appropriée. Pour une expérimentation moins itérative, réduisez le temps nécessaire pour réduire les coûts. Pour des expérimentations plus itératives, utilisez un temps plus élevé pour éviter de payer le scale-up ou le scale-down après chaque modification. |
Configurez la mise à l’échelle automatique pour que les clusters de calcul effectuent un scale-down lorsque leur utilisation est faible. Définissez le nombre minimal de nœuds sur 0 pour que les clusters d’apprentissage passent à 0 lorsqu’ils ne sont pas utilisés. |
Définir des stratégies d’arrêt d’entraînement : définissez des stratégies d’arrêt anticipé pour limiter la durée des exécutions d’entraînement ou les arrêter tôt. | La définition de stratégies d’arrêt peut vous aider à réduire les coûts en arrêtant les exécutions non performantes plus tôt. |
Utiliser des machines virtuelles basse priorité pour les charges de travail par lots : envisagez d’utiliser des machines virtuelles basse priorité pour les charges de travail par lots qui ne sont pas sensibles au temps et dans lesquelles les interruptions peuvent être récupérées. | Les machines virtuelles de faible priorité permettent d’utiliser une grande quantité de puissance de calcul à faible coût. Ils tirent parti de la capacité excédentaire dans Azure. |
Activer l’arrêt inactif pour les instances de calcul : activez l’arrêt inactif pour les instances de calcul ou planifiez une heure de début et d’arrêt si l’heure d’utilisation est connue. | Par défaut, les instances de calcul sont disponibles, ce qui vous coûte cher. La configuration d’instances de calcul pour qu’elles s’arrêtent en cas d’inactivité ou la configuration d’une planification pour celles-ci permet de réduire les coûts lorsqu’elles ne sont pas utilisées. |
Paralléliser les charges de travail d’entraînement : envisagez de paralléliser des charges de travail d’entraînement. Testez leur exécution à l’aide des composants parallèles dans Machine Learning. | Les charges de travail parallèles peuvent être exécutées sur plusieurs instances plus petites, ce qui peut entraîner des économies. |
Instances de machines virtuelles réservées Azure : achetez des instances de machines virtuelles réservées Azure si vous disposez d’une bonne estimation de l’utilisation au cours des 1 à trois prochaines années. Tirez parti des options de capacité réservée pour les services lorsque vous disposez de bonnes estimations de l’utilisation. | Achetez des instances de machines virtuelles réservées Azure pour prépayer l’utilisation des machines virtuelles et offrez des remises sur les tarifs du paiement à l’utilisation. La remise est automatiquement appliquée pour l’utilisation de la machine virtuelle qui correspond à la réservation. |
Excellence opérationnelle
L’excellence opérationnelle se concentre principalement sur les procédures pour les pratiques de développement, l’observabilité et la gestion des mises en production.
Les principes de conception d’excellence opérationnelle fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs en fonction des exigences opérationnelles de la charge de travail.
Check-list pour la conception
Démarrez votre stratégie de conception basée sur la liste de vérification de la révision de conception pour l’excellence opérationnelle pour définir des processus d’observabilité, de test et de déploiement liés au Machine Learning.
Normes de développement : tirez parti des catalogues et registres de modèles Machine Learning pour stocker, mettre à jour et partager des ressources Machine Learning.
Automatiser pour plus d’efficacité : suivez les bonnes pratiques d’opérations machine learning (MLOps). Lorsque cela est possible, créez des pipelines automatisés de bout en bout pour les processus de préparation, d’entraînement et de scoring des données. En développement, utilisez des scripts plutôt que des notebooks pour les modèles d’entraînement, car les scripts sont plus faciles à intégrer dans des pipelines automatisés.
Déployer en toute confiance : implémentez l’IaC (Infrastructure as code) pour les espaces de travail Machine Learning, les clusters de calcul, les instances de calcul et d’autres environnements de déploiement.
Observabilité : surveillez les performances de vos modèles déployés, y compris la dérive des données.
Observabilité : si vos modèles sont déployés sur des points de terminaison en ligne, activez Application Insights pour surveiller les points de terminaison et les déploiements en ligne. Surveillez l’infrastructure d’entraînement pour vous assurer que vous répondez à vos besoins de base.
Simplicité : utilisez des environnements organisés optimisés pour le Machine Learning, lorsqu’ils sont disponibles.
Recommandations
Recommandation | Avantage |
---|---|
Réduire les instances d’espace de travail Machine Learning : réduisez le nombre d’espaces de travail, si possible, pour réduire la maintenance. | La limitation du nombre d’espaces de travail réduit l’effort de maintenance et le coût d’exploitation. Pour les exigences, telles que la sécurité, vous pouvez avoir besoin de plusieurs espaces de travail distincts. Réduisez le nombre d’espaces de travail lorsque cela est possible. |
Tirez parti des catalogues de modèles et des registres : tirez parti des catalogues et registres de modèles Machine Learning pour stocker, versionr et partager des ressources Machine Learning. Utilisez des catalogues de modèles Machine Learning pour vous aider à implémenter des tests A/B et un déploiement de modèles. |
Utilisez les registres de modèles Machine Learning pour stocker et versionner vos modèles Machine Learning afin de suivre les modifications et de maintenir la traçabilité avec le travail et les jeux de données utilisés pour l’entraînement. Avec les catalogues de modèles Machine Learning, vos équipes de science des données peuvent découvrir, évaluer et affiner des modèles Machine Learning de base préentraînés. Le stockage de modèles versionnés dans les registres de modèles Machine Learning prend en charge les stratégies de déploiement telles que les versions A/B, les versions de canary et les restaurations. |
Surveiller les performances des modèles : surveillez les performances de vos modèles déployés et détectez la dérive des données sur les jeux de données. | La surveillance des modèles déployés garantit que vos modèles répondent aux exigences de performances. La surveillance de la dérive des données vous aide à détecter les modifications dans les données d’entrée qui peuvent entraîner une baisse des performances de votre modèle. La gestion de la dérive des données vous permet de vous assurer que votre modèle fournit des résultats précis au fil du temps. |
Surveiller l’infrastructure : si vos modèles sont déployés sur des points de terminaison en ligne, activez Application Insights pour surveiller les points de terminaison et les déploiements en ligne. Surveillez l’infrastructure d’entraînement pour vous assurer que vous répondez à vos besoins de base. Vérifiez que vous collectez les journaux de ressources pour Machine Learning. |
La surveillance des points de terminaison vous donne une visibilité sur les métriques telles que la latence des requêtes et les requêtes par minute. Vous pouvez comparer vos performances par rapport à votre base de référence et utiliser ces informations pour apporter des modifications aux ressources de calcul en conséquence. Les métriques de surveillance telles que les octets réseau peuvent vous alerter si vous approchez des limites de quota et empêchez la limitation. De même, la surveillance de votre environnement d’entraînement vous fournit les informations nécessaires pour apporter des modifications à votre environnement d’entraînement. Utilisez ces informations pour décider d’effectuer un scale-up ou d’un scale-out avec différentes références SKU performantes, ou de choisir entre des processeurs ou des GPU. |
Organiser des environnements d’entraînement de modèle : utilisez des environnements organisés optimisés pour le Machine Learning, lorsqu’ils sont disponibles. |
Les environnements organisés sont des environnements précréés fournis par Machine Learning qui accélèrent le temps de déploiement et réduisent la latence de déploiement et d’entraînement. L’utilisation d’environnements organisés améliore les taux de réussite de l’entraînement et du déploiement et évite les builds d’images inutiles. Les environnements organisés, tels qu’Azure Container pour PyTorch, peuvent également être optimisés pour l’entraînement de grands modèles sur Machine Learning. |
Efficacité des performances
L’efficacité des performances consiste à maintenir l’expérience utilisateur même en cas d’augmentation de la charge en gérant la capacité. La stratégie comprend la mise à l’échelle des ressources, l’identification et l’optimisation des goulots d’étranglement potentiels et l’optimisation pour des performances maximales.
Les principes de conception d’efficacité des performances fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs de capacité par rapport à l’utilisation attendue.
Check-list pour la conception
Démarrez votre stratégie de conception en fonction de la liste de contrôle de révision de la conception pour l’efficacité des performances pour définir une base de référence basée sur des indicateurs de performances clés pour les charges de travail Machine Learning.
Objectifs de performances : déterminez le temps d’entraînement acceptable et la fréquence de réentraînement pour votre modèle. La définition d’une cible claire pour le temps d’apprentissage, ainsi que les tests, vous aide à déterminer les ressources de calcul, le processeur et le GPU et les références SKU du processeur nécessaires pour atteindre l’objectif de temps d’entraînement.
Objectifs de performances : définissez les objectifs de performances acceptables pour vos modèles déployés, notamment le temps de réponse, les demandes par seconde, le taux d’erreur et la durée de fonctionnement. Les objectifs de performances servent de point de référence pour l’efficacité de votre modèle déployé. Les cibles peuvent vous aider à déterminer le processeur par rapport au GPU, les choix de référence SKU du processeur et les exigences de mise à l’échelle.
Répondre aux exigences de capacité : choisissez les ressources de calcul appropriées pour l’apprentissage du modèle.
Répondre aux besoins en capacité : choisissez les ressources de calcul appropriées pour les déploiements de modèles.
Répondre aux exigences en matière de capacité : choisissez des environnements de déploiement avec des fonctionnalités de mise à l’échelle automatique pour ajouter et supprimer la capacité à mesure que la demande fluctue.
Atteindre et maintenir les performances : surveillez en permanence les performances de vos modèles déployés, passez en revue les résultats et prenez les mesures appropriées.
Atteindre et maintenir les performances : surveillez en permanence les performances de votre infrastructure de modèles déployés, passez en revue les résultats et prenez les mesures appropriées. Surveillez l’infrastructure de formation pour vous assurer que vous répondez à vos besoins en matière de temps d’entraînement.
Recommandations
Recommandation | Avantage |
---|---|
Sélectionnez les services de calcul appropriés pour l’entraînement du modèle : envisagez des clusters de calcul Machine Learning sur des instances de calcul pour l’entraînement du modèle si vous avez besoin d’une mise à l’échelle automatique. Optimisez vos ressources de calcul en fonction des exigences d’entraînement. Commencez par choisir entre des processeurs et des GPU. Par défaut, les processeurs, mais tenez compte des GPU pour les charges de travail telles que le deep learning, le traitement d’images ou de vidéos ou de grandes quantités de données. Ensuite, choisissez la référence SKU d’image qui convient le mieux à votre charge de travail. Utilisez les tests pour choisir l’option de calcul qui optimise le coût par rapport au temps d’entraînement lors de la détermination de votre base de référence. |
La sélection du calcul approprié est essentielle, car elle a un impact direct sur le temps d’entraînement. Le choix de la référence SKU et du processeur par rapport au gpu garantit que l’entraînement de votre modèle peut répondre à vos besoins et à vos objectifs de performances. Le choix d’une référence SKU basse performance surutilisée peut entraîner des temps d’entraînement et des problèmes de performances prohibitifs. Les clusters de calcul permettent d’améliorer les performances en faisant évoluer les charges de travail qui prennent en charge la mise à l’échelle horizontale. Cette méthode offre une flexibilité pour la gestion des charges de travail avec des demandes différentes et vous permet d’ajouter ou de supprimer des machines en fonction des besoins. |
Mise à l’échelle de l’environnement de déploiement de modèle : utilisez les fonctionnalités de mise à l’échelle automatique de l’environnement de déploiement. Pour les environnements de déploiement AKS, utilisez la mise à l’échelle automatique de cluster pour répondre à la demande. Pour les points de terminaison en ligne, mettez automatiquement à l’échelle via l’intégration à la fonctionnalité de mise à l’échelle automatique d’Azure Monitor. | La mise à l’échelle automatique ajuste le nombre d’instances du modèle déployé pour répondre à la demande. |
Surveiller les performances des modèles : surveillez les performances de vos modèles déployés. | Le suivi des performances des modèles en production vous avertit des problèmes potentiels tels que la dérive des données, la dérive de prédiction, la qualité des données et la dérive de l’attribution de fonctionnalités. La surveillance de la dérive des données vous aide à détecter les modifications dans les données d’entrée qui peuvent entraîner une baisse des performances de votre modèle. La gestion de la dérive des données vous permet de vous assurer que votre modèle fournit des résultats précis au fil du temps. |
Surveiller l’infrastructure : surveillez les points de terminaison en ligne et intégrez-les à Monitor pour suivre et surveiller les métriques et les journaux appropriés. Activez Application Insights lors de la création de déploiements en ligne. Surveillez l’infrastructure d’entraînement et passez en revue l’utilisation des ressources telles que l’utilisation de la mémoire et du processeur ou du processeur graphique lors de l’entraînement des modèles pour vous assurer que vous répondez à vos besoins de base. |
La surveillance des points de terminaison vous donne une visibilité sur les métriques telles que la latence des requêtes et les requêtes par minute. Vous pouvez comparer vos performances par rapport à votre base de référence et utiliser ces informations pour apporter des modifications aux ressources de calcul en conséquence. Les métriques de surveillance telles que les octets réseau peuvent vous alerter si vous approchez des limites de quota et empêchez la limitation. De même, la surveillance de votre environnement d’entraînement vous fournit les informations nécessaires pour apporter des modifications à votre environnement d’entraînement. Utilisez ces informations pour décider d’effectuer un scale-up ou d’un scale-out avec différentes références SKU performantes, ou de choisir entre des processeurs ou des GPU. |
Stratégies Azure
Azure fournit un ensemble complet de stratégies intégrées liées au Machine Learning et à ses dépendances. Certaines des recommandations précédentes peuvent être auditées via des stratégies Azure. Considérez les stratégies suivantes liées à la sécurité :
- Registres autorisés pour les calculs Machine Learning spécifiés.
- Configurez les packages Python autorisés pour les calculs Machine Learning spécifiés.
- Les calculs Machine Learning doivent se trouver dans un réseau virtuel.
- Les méthodes d’authentification locales doivent être désactivées pour les calculs Machine Learning.
- Les espaces de travail Machine Learning doivent désactiver l’accès au réseau public.
- Les instances de calcul Machine Learning doivent être recréées pour obtenir les dernières mises à jour logicielles.
- Les espaces de travail Machine Learning doivent être chiffrés avec une clé gérée par le client.
- Les espaces de travail Machine Learning doivent utiliser une liaison privée.
- Les espaces de travail Machine Learning doivent utiliser une identité managée affectée par l’utilisateur.
- Exiger un point de terminaison d’approbation appelé avant l’exécution des travaux pour les calculs Machine Learning spécifiés.
- Exiger la signature de code pour l’apprentissage du code pour les calculs.
- Limitez le déploiement de modèles à des registres spécifiques.
Considérez la stratégie suivante liée à l’optimisation des coûts :
Considérez les stratégies suivantes liées à l’excellence opérationnelle :
- Exiger que les expressions de filtre de journal et le magasin de données soient utilisés pour les journaux complets pour les calculs Machine Learning spécifiés.
- Les journaux de ressources dans les espaces de travail Machine Learning doivent être activés.
Pour une gouvernance complète, passez en revue les définitions Azure Policy intégrées pour le Machine Learning.
Recommandations d’Advisor
Advisor est un conseiller personnalisé basé dans le cloud qui décrit les meilleures pratiques à suivre pour optimiser vos déploiements Azure. Les recommandations d’Advisor peuvent vous aider à améliorer la fiabilité, la sécurité, la rentabilité, les performances et l’excellence opérationnelle du Machine Learning.
Tenez compte des recommandations d’Advisor suivantes pour la sécurité :
- Les espaces de travail doivent être chiffrés avec une clé gérée par le client (CMK).
- Les espaces de travail doivent utiliser une liaison privée.
- Les espaces de travail doivent désactiver l’accès au réseau public.
- Le calcul doit se trouver dans un réseau virtuel.
- Les instances de calcul doivent être recréées pour obtenir les dernières mises à jour logicielles.
Tenez compte de la recommandation advisor suivante pour l’excellence opérationnelle :
- Les journaux de ressources dans les espaces de travail Machine Learning doivent être activés.
Étapes suivantes
Considérez ces articles comme des ressources qui illustrent les recommandations mises en évidence dans cet article.
- Utilisez l’architecture de référence de la conversation de bout en bout OpenAI de base comme exemple de la façon dont ces recommandations peuvent être appliquées à une charge de travail.
- Utilisez la documentation du produit Machine Learning pour créer une expertise en implémentation.