Partager via


Meilleures pratiques d’architecture pour 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 de calcul et les configurations. Vous pouvez déployer des modèles Machine Learning sur le calcul Machine Learning ou sur d’autres services Azure tels qu’Azure Kubernetes Service (AKS).

Cet article fournit des recommandations architecturales pour prendre des décisions éclairées lorsque vous utilisez Machine Learning pour entraîner, déployer et gérer des modèles Machine Learning. Les conseils sont basés sur les piliers Azure Well-Architected Framework.

Important

Comment utiliser ce guide

Chaque section dispose d’une liste de contrôle de conception qui présente des domaines d’intérêt architecturaux, ainsi que des stratégies de conception localisées dans l’étendue technologique.

Il y a également des recommandations sur les fonctionnalités technologiques qui peuvent aider à matérialiser ces stratégies. Les recommandations ne représentent pas une liste exhaustive de toutes les configurations disponibles pour Machine Learning et ses dépendances. Au lieu de cela, ils énumèrent les principales recommandations 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 base de référence OpenAI de référence pour les conversations de bout en bout illustre la plupart des recommandations clés.

Étendue de la technologie

Cette révision se concentre sur les décisions liées entre les ressources Azure suivantes :

  • Apprentissage automatique
  • Clusters de calcul pour l'apprentissage automatique
  • Instances de calcul pour l'apprentissage automatique

La révision ne traite pas des ressources connectées telles que des magasins de données ou Azure Key Vault.

Fiabilité

L'objectif du pilier Fiabilité est de fournir une fonctionnalité continue en construisant suffisamment de résilience et la capacité de récupérer rapidement en cas de défaillance.

Les principes de conception de fiabilité fournissent une stratégie de conception de haut niveau appliquée aux composants individuels, aux flux système et au système dans son ensemble.

Liste de contrôle pour la conception

Démarrez votre stratégie de conception en fonction de la liste de vérification de la révision de conception pour la fiabilité et déterminez sa pertinence pour vos besoins métier. Étendez la stratégie pour inclure davantage d’approches en fonction des besoins.

  • Résilience : déployez des modèles dans des environnements qui prennent en charge les zones de disponibilité, telles qu’AKS. En veillant à ce que les déploiements soient distribués entre les zones de disponibilité, 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 : vérifiez que vous disposez d’un calcul suffisant 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 à partir de ceux utilisés pour la production.

  • Résilience : lors de l’utilisation de 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 le risque associé au déploiement de nouvelles versions.

  • Exigences métier : sélectionnez votre utilisation de clusters de calcul, d’instances de calcul et d’hôtes d’inférence externalisés en fonction des besoins de fiabilité, en tenant compte des contrats de niveau de service (SLA) comme facteur.

  • Récupération : assurez-vous 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 grands modèles.

  • Récupération : vérifiez que vous disposez d’une stratégie de récupération définie. Le 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 une fiabilité et une disponibilité améliorées, envisagez 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 subit une panne. Le déploiement multirégion améliore la distribution de 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 des fonctionnalités de point de contrôle prises en charge par Machine Learning, notamment Azure Container pour PyTorch, la classe TensorFlow Estimateor ou l’objet Run et la classe FileDataset qui prennent en charge le point de contrôle de modèle. Le point de contrôle du modèle enregistre 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 Accélérez la vitesse des points de contrôle et réduisez les coûts avec Nebula.
Utilisez le niveau de machine virtuelle dédiée pour les clusters de calcul : utilisez le niveau de machine virtuelle dédiée pour les clusters de calcul pour l’inférence par lots pour vous assurer que votre travail de traitement par lots n’est pas préempté. Les machines virtuelles de faible priorité sont à un prix réduit, mais sont préemptibles. Les clusters qui utilisent le niveau de 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 sécurité fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs en appliquant des approches à la conception technique autour de Machine Learning.

Liste de contrôle pour la conception

Démarrez votre stratégie de conception à partir de la checklist de révision de conception pour la sécurité, et identifiez les vulnérabilités ainsi que les mesures de contrôle pour améliorer la posture de sécurité. Étendez la stratégie pour inclure davantage d’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 l’exfiltration des données 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 basés sur des cas d’usage ou des projets spécifiques. Cette approche respecte le principe du privilège minimum en garantissant que les espaces de travail sont accessibles uniquement aux personnes qui nécessitent l’accès aux données et aux ressources d’expérimentation pour le cas d’usage ou le projet.

  • Intégrité : réglementer 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églementer l’accès aux registres de conteneurs approuvés. Assurez-vous que le calcul Machine Learning ne peut accéder qu’aux registres approuvés.

  • Intégrité : réglementer les packages Python qui peuvent être exécutés sur le calcul Machine Learning. La régulation 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 de 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 de privilège minimum pour le contrôle d’accès en fonction du rôle (RBAC) à l’espace de travail Machine Learning et aux ressources associées, telles que le compte de stockage de l’espace de travail, pour garantir que les utilisateurs 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 les aspects de sécurité essentiels 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 Cloud pour surveiller ces aspects.
Isolation de réseau virtuel managé : configurer l’isolation du réseau virtuel managé pour Machine Learning. Lorsque vous activez l’isolation du 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 du réseau virtuel managé, vous devez suivre les recommandations de topologie de réseau pour séparer le calcul dans un sous-réseau dédié loin des autres ressources de la solution, y compris les points de terminaison privés pour les ressources de l’espace de travail. L’isolation du réseau virtuel managé améliore la sécurité en isolant votre espace de travail à partir d’autres réseaux, ce qui réduit le risque d’accès non autorisé. Dans un scénario dans lequel une violation se produit dans un autre réseau au sein de votre organisation, le réseau isolé de votre espace de travail Machine Learning reste inchangé, protégeant vos charges de travail Machine Learning.
Isolation du 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 du 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 uniquement sur les adresses IP privées.
Autorisez uniquement l’accès sortant approuvé : configurez le mode sortant sur l’espace de travail Machine Learning où l’accès sortant est géré, 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. Avec 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 du réseau virtuel pour les services dépendants : configurez des services dépendants, tels que stockage, coffre de clés et Registre de conteneurs 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ésactivez le port SSH public : vérifiez que le port SSH (Public Secure Shell) est fermé sur le cluster de calcul Machine Learning en définissant remoteLoginPortPublicAccess sur Disabled. Appliquez une configuration similaire si vous utilisez un autre calcul. La désactivation de l’accès SSH permet d’empêcher les personnes non autorisées d’accéder et potentiellement de causer des dommages à votre système et de vous protéger contre les attaques par force brute.
Ne provisionnez pas 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 autre calcul. Évitez de provisionner des adresses IP publiques pour améliorer la sécurité en limitant le risque d’accès non autorisé à votre instance de calcul ou à vos clusters.
Obtenir la dernière image du système d’exploitation : recréer des instances de calcul pour obtenir la dernière image du système d’exploitation. L’utilisation des dernières images garantit que vous maintenez 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 de l’espace de travail Machine Learning : utilisez des groupes d’ID Microsoft Entra pour gérer l’accès à l’espace de travail et respecter le principe de privilège minimum pour RBAC. Les contrôles d’accès stricts à l’espace de travail améliorent la sécurité en garantissant que les individus disposent uniquement des autorisations nécessaires pour leur rôle. Un scientifique des données, par exemple, peut avoir accès à exécuter des 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 modèles du catalogue : Limiter les déploiements de modèles à des registres spécifiques. La restriction des déploiements 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 fondamentaux open source.
Chiffrer les données au repos : envisagez d’utiliser des clés gérées par le client avec Machine Learning. Le chiffrement des données au repos améliore la sécurité des données en veillant à ce que les données sensibles soient chiffrées à l’aide de clés directement gérées par vous. Si vous avez une exigence réglementaire pour gérer vos propres clés de chiffrement, utilisez cette fonctionnalité pour vous conformer à cette exigence.
Réduisez le risque d’exfiltration des 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 des données uniquement à des comptes de stockage Azure spécifiques. Réduisez le risque d’exfiltration des données en limitant les exigences entrantes et sortantes.
Conseiller

Voici quelques exemples de recommandations en matière de sécurité Advisor pour 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 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 Azure Policy intégrées pour la sécurité De Machine Learning :

Optimisation des coûts

L’optimisation des coûts se concentre sur la détection des modèles de dépense, la hiérarchisation des investissements dans les domaines critiques et l’optimisation dans d’autres pour répondre au budget de l’organisation 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.

Liste de contrôle pour la conception

Démarrez votre stratégie de conception en fonction de la liste de contrôle de la révision de 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é pour 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 les CPU ou les GPU, les différentes références SKU, ou les machines virtuelles de priorité faible par rapport à celles de priorité régulière.

  • Optimisation de l’utilisation : assurez-vous que les ressources de calcul qui ne sont pas utilisées sont réduites ou arrêtées en cas d’inactivité 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 de formation peuvent être remplies sur des références SKU à moindre coût.

  • Optimisation du taux : achetez des instances de machines virtuelles réservées Azure si vous avez une bonne estimation de l’utilisation au cours des trois prochaines années.

  • Surveillez et optimisez : surveillez l’utilisation de vos ressources, telles que 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 utiliser les ressources ou effectuer un scale-down vers des tailles de machines virtuelles plus petites ou moins coûteuses.

Recommandations
Recommandation Avantage
Optimiser les ressources de calcul : optimisez vos ressources de calcul en fonction des besoins de votre charge de travail. Choisissez la référence SKU qui convient le mieux à votre charge de travail :
  • Usage général : ratio processeur/mémoire équilibré, adapté à tous les objectifs.
  • Optimisé pour le calcul : ratio processeur/mémoire élevé, adapté aux calculs lourds mathématiques.
  • Mémoire optimisée : mémoire élevée au processeur, adaptée aux calculs en mémoire ou aux applications de base de données.
  • Série M : très grandes machines qui ont d’énormes quantités de mémoire et d’UC.
  • GPU : mieux adapté aux modèles avec un grand nombre de variables qui peuvent bénéficier d’un parallélisme supérieur et d’instructions de base spécialisées. Les applications classiques sont l’apprentissage profond, le traitement d’images ou de vidéos, les simulations scientifiques, l’exploration de données et l’utilisation des infrastructures de développement GPU. Testez avec plusieurs familles et documentez les résultats comme base de référence. À mesure que votre modèle et vos données évoluent, la ressource de calcul la plus adéquate peut changer. Surveillez les temps d’exécution et réévaluez si nécessaire.
La sélection du calcul approprié est essentielle, car elle affecte directement le coût d’exécution de votre charge de travail. Le choix d'un GPU ou d'un SKU hautes performances sans utilisation appropriée peut entraîner des dépenses inutiles, tandis que le choix d'un calcul insuffisant peut entraîner des temps d’entraînement prohibitivement longs et des problèmes de performances.
Optimiser la mise à l’échelle du calcul : configurez vos clusters de calcul pour la mise à l’échelle automatique pour vous assurer que vous utilisez uniquement ce dont vous avez besoin.

Pour les clusters d’apprentissage, définissez le nombre minimal de nœuds sur 0 et configurez la durée pendant laquelle le nœud est inactif à un moment approprié. Pour une expérimentation moins itérative, réduisez le temps nécessaire pour économiser des coûts. Pour une expérimentation plus itérative, utilisez un temps plus élevé pour éviter de payer pour effectuer un scale-up ou un scale-down après chaque modification.
Configurez la mise à l'échelle automatique pour que les clusters de calcul réduisent leur taille lorsque leur utilisation est faible.

Définissez le nombre minimal de nœuds sur 0 pour que les clusters d’entraînement évoluent jusqu’à 0 lorsqu’ils ne sont pas utilisés.
Définir des stratégies d’arrêt de formation : définissez des stratégies d’arrêt anticipé pour limiter la durée des exécutions d’entraînement ou les mettre fin tôt. Définir des politiques d'arrêt peut vous aider à réduire les coûts en stoppant les exécutions non performantes à un stade précoce.
Utilisez des machines virtuelles de faible priorité pour les charges de travail par lots : envisagez d’utiliser des machines virtuelles de faible priorité pour les charges de travail par lots qui ne respectent pas le temps et dans lesquelles les interruptions sont récupérables. Les machines virtuelles à faible priorité permettent d’utiliser une grande quantité de puissance de calcul pour un coût faible. 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 un début et une heure d’arrêt si l’heure d’utilisation est connue. Par défaut, les instances de calcul sont disponibles pour vous, ce qui entraîne des coûts. La configuration des instances de calcul pour s'arrêter lorsqu'elles sont inactives ou pour suivre une planification permet de réduire les coûts lorsqu'elles ne sont pas utilisées.
Parallélisez les charges de travail d’entraînement : envisagez de paralléliser les charges de travail de formation. Testez-les en cours d’exécution avec 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 générer des économies de coûts.
Instances de machines virtuelles réservées Azure : achetez des instances de machines virtuelles réservées Azure si vous avez une bonne estimation de l’utilisation au cours des trois prochaines années. Tirez parti des options de capacité réservée pour les services lorsque vous avez 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 fournissez des remises avec 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 liées aux 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 vers les exigences opérationnelles de la charge de travail.

Liste de contrôle pour la conception

Démarrez votre stratégie de conception en fonction de la liste de contrôle de révision de conception pour l’excellence opérationnelle pour définir des processus d’observabilité, de test et de déploiement liés à Machine Learning.

  • Normes de développement : Tirez parti des catalogues et registres de modèles Machine Learning pour stocker, version et partager des ressources Machine Learning.

  • Automatiser l’efficacité : suivez les bonnes pratiques de Machine Learning (MLOps). Si possible, créez des pipelines automatisés de bout en bout pour la préparation des données, l’entraînement et les processus de scoring. Dans le développement, utilisez des scripts au lieu de notebooks pour les modèles d’apprentissage, car les scripts sont plus faciles à intégrer dans des pipelines automatisés.

  • Déployer en toute confiance : implémentez l’infrastructure en tant que code (IaC) 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 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, le cas échéant, pour réduire la maintenance. Limiter le nombre d’espaces de travail réduit l’effort de maintenance et le coût d’opération. 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 et registres de modèles : tirez parti des catalogues et registres de modèles Machine Learning pour stocker, version 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 versionr vos modèles Machine Learning pour suivre les modifications et gérer 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 les modèles Machine Learning 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 canary releases et les retours en arrière.
Surveiller les performancesdes 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 supervision 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 permet de détecter les modifications apportées aux 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 des ressources pour l'apprentissage automatique.
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 à votre base de référence et utiliser ces informations pour apporter des modifications aux ressources de calcul en conséquence. La surveillance des métriques telles que les octets du réseau peut vous alerter si vous approchez des limites de quota et empêcher la limitation.

De même, la surveillance de votre environnement de formation vous fournit les informations nécessaires pour apporter des modifications à votre environnement de formation. Utilisez ces informations pour décider de procéder à une mise à l'échelle interne ou externe, d'augmenter ou de diminuer avec différentes unités de référence performantes, ou choisir entre des processeurs ou des GPU.
Organiser des environnements d’entraînement de modèle : utilisez des environnements organisés optimisés pour 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 de l'utilisateur même en cas d'augmentation de la charge en gérant la capacité. La stratégie inclut la mise à l’échelle des ressources, l’identification et l’optimisation des goulots d’étranglement potentiels et l’optimisation des performances maximales.

Les principes de conception de l'efficacité des performances fournissent une stratégie de conception de haut niveau pour atteindre ces objectifs de capacité en fonction de l'utilisation attendue.

Liste de contrôle pour la conception

Démarrez votre stratégie de conception en vous basant sur la liste de contrôle de révision de conception pour l'efficacité de performance afin de définir une base de référence à partir des indicateurs de performances clés pour les charges de travail d'apprentissage automatique.

  • Objectifs de performances : déterminez le temps d’entraînement et la fréquence de réentraînement acceptables pour votre modèle. La définition d’une cible claire pour le temps d’entraînement, ainsi que les tests, vous permet de déterminer les ressources de calcul, le processeur et les références SKU processeur requises pour atteindre l’objectif de temps d’entraînement.

  • Objectifs de performances : définissez les cibles 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 le temps d’activité. Les cibles de performances agissent comme un benchmark pour l’efficacité de votre modèle déployé. Les cibles peuvent vous aider à faire des choix entre processeur et GPU, sélectionner le bon modèle SKU d’UC et définir les besoins en matière de mise à l’échelle.

  • Répondre aux exigences de capacité : choisissez les ressources de calcul appropriées pour l’entraînement du modèle.

  • Répondre aux exigences de capacité : choisissez les ressources de calcul appropriées pour les déploiements de modèles.

  • Répondre aux besoins 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 varie.

  • 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 de formation.

Recommandations
Recommandation Avantage
Sélectionnez les services de calcul appropriés pour l’entraînement du modèle : envisagez les clusters de calcul Machine Learning sur les 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 de formation. Commencez par choisir entre les PROCESSEURs et les GPU. Utilisez par défaut les processeurs, mais envisagez les GPU pour des charges de travail telles que l'apprentissage profond, le traitement d'images ou de vidéos, et 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 des tests pour choisir l’option de calcul qui optimise les coûts 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 l'article SKU, du CPU et du GPU appropriés garantit que la formation du modèle peut répondre à vos besoins et objectifs de performances. Le choix d’une référence SKU à faible performance qui est surutilisée peut entraîner des temps d’entraînement et des problèmes de performances excessivement longs.

Les clusters de calcul offrent la possibilité d’améliorer les performances en effectuant un scale-out des charges de travail prenant en charge la mise à l’échelle horizontale. Cette méthode offre une flexibilité pour la gestion des charges de travail avec différentes demandes 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 le générateur de mise à l’échelle automatique de cluster pour répondre à la demande. Pour les points de terminaison en ligne, la mise à l’échelle s'effectue automatiquement 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é en fonction de la demande.
Surveiller les performancesdes 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 d’attribution des fonctionnalités.

La surveillance de la dérive des données vous permet de détecter les modifications apportées aux 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 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 la mémoire et l’utilisation du processeur ou du GPU 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 à votre base de référence et utiliser ces informations pour apporter des modifications aux ressources de calcul en conséquence. La surveillance des métriques telles que les octets du réseau peut vous alerter si vous approchez des limites de quota et empêcher la limitation.

De même, la surveillance de votre environnement de formation vous fournit les informations nécessaires pour apporter des modifications à votre environnement de formation. Utilisez ces informations pour décider de procéder à une mise à l'échelle interne ou externe, d'augmenter ou de diminuer avec différentes unités de référence performantes, ou choisir entre des processeurs ou des GPU.

Stratégies Azure

Azure fournit un ensemble complet de stratégies intégrées liées à Machine Learning et à ses dépendances. Certaines des recommandations précédentes peuvent être auditées par le biais de stratégies Azure. Tenez compte des stratégies suivantes liées à la sécurité :

Tenez compte de la stratégie suivante liée à l’optimisation des coûts :

Tenez compte des stratégies suivantes liées à l’excellence opérationnelle :

Pour une gouvernance complète, passez en revue les définitions intégrées d’Azure Policy pour Machine Learning.

Recommandations d’Advisor

Advisor est un consultant cloud personnalisé qui vous aide à suivre les meilleures pratiques pour optimiser vos déploiements Azure. Les recommandations d’Advisor peuvent vous aider à améliorer la fiabilité, la sécurité, l’efficacité des coûts, les performances et l’excellence opérationnelle de 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 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 de l'apprentissage automatique doivent être activés.

Étapes suivantes

Considérez ces articles comme des ressources qui illustrent les recommandations mises en évidence dans cet article.