Partager via


Opérations de charge de travail IA sur Azure

Lorsque vous générez et transférez vos charges de travail IA en production, il est important que vos équipes d’exploitation soient entièrement équipées pour prendre en charge ces charges de travail comme elles le feraient pour toute autre charge de travail de production. Étant donné que vos équipes d’exploitation ont peut-être une expérience limitée avec les technologies IA, il est essentiel de les former sur ces technologies et d’intégrer les charges de travail IA dans leurs flux de travail dès le début du processus. Rassemblez les opérations et les équipes de données dès le début du développement de la charge de travail IA pour favoriser la compréhension mutuelle des processus de chaque équipe. Cette collaboration précoce est essentielle, car les deux équipes doivent travailler en étroite collaboration pour prendre en charge efficacement la charge de travail IA. Les équipes de données dépendent des équipes d’exploitation pour fournir des signaux d’intégrité fiables et des alertes actionnables. Les équipes d’exploitation dépendent des équipes de données pour diagnostiquer les problèmes potentiels et résoudre les problèmes réels en fonction des normes opérationnelles. Ce partenariat permet de garantir une performance système fluide et efficace.

Ce guide fournit des recommandations pour développer des mécanismes opérationnels et des pratiques afin d’améliorer la prise en charge des charges de travail IA. Il met l’accent sur une collaboration efficace entre les opérations et les équipes de données.

Recommandations

Voici le résumé des recommandations fournies dans cet article.

Recommandation Description
Surveillez tous les aspects de votre charge de travail. Bien que de nombreuses préoccupations générales de surveillance et d’observation s’appliquent également aux charges de travail d’IA, il existe des considérations spécifiques à prendre en compte pour vous assurer que l’ensemble de votre charge de travail est surveillé de manière appropriée à tout moment. Pour créer votre stratégie de supervision et d’observabilité, vous devrez peut-être travailler entre différentes équipes pour obtenir l’expertise appropriée et couvrir tous les modes et métriques pertinents.

Étendre la plateforme d’observabilité
Appliquez des pratiques de déploiement sécurisées à votre charge de travail IA. Prenez des mesures pour garantir le niveau de sécurité le plus élevé autour des données de production sensibles et aligner les approches de déploiement avec les exigences de temps d’arrêt zéro. Utilisez les outils appropriés si nécessaire et mettez l’accent sur le fait de ne pas réinventer les outils et les processus qui existent déjà. Souvent, vous serez en mesure d’utiliser des services établis pour atteindre un niveau élevé d’efficacité tout en activant des déploiements sécurisés.

Inclure des composants de charge de travail IA dans vos pratiques de déploiement sécurisées
Adoptez les pratiques DevOps sur les tests et l’automatisation. Appliquez des pratiques DevOps lors de la création, du déploiement et de l’exploitation de votre charge de travail IA en production. Votre charge de travail doit permettre l’observabilité et le test avec une entrée utilisateur réelle en production. Cela ne peut être fourni que de manière sécurisée si un processus DevOps fort et une automatisation simplifiée permettent des déploiements rapides, la correction des erreurs et les tests A/B.

Prise en charge des tests en production
Automatiser les pratiques opérationnelles lorsque cela est possible
Adopter les pratiques DevOps
Documentez votre progression. Créez de bonnes habitudes de documentation dès le départ pour permettre la capture des décisions stratégiques, de l’historique des modifications et des informations clés sur les données que votre charge de travail utilise.

Adopter de bonnes pratiques de documentation

Étendre la plateforme d’observabilité

Pour atteindre l’excellence opérationnelle, une observabilité robuste est essentielle. Lorsque votre organisation adopte des technologies IA, il est essentiel d’améliorer votre plateforme d’observabilité pour garantir une surveillance complète de l’intégrité de la charge de travail. Les organisations nouvelles de l’IA peuvent manquer d’expertise big data, science des données et DataOps au sein de leur équipe d’exploitation. Par conséquent, la formation sur les meilleures pratiques opérationnelles est une première étape importante pour améliorer votre plateforme d’observabilité. Pour cette raison, les équipes d’opérations et de données doivent collaborer pour déterminer les modes de surveillance et de métriques appropriés pour capturer et analyser.

Pour évaluer l’intégrité d’un modèle, une vue d’ensemble complète de ses métriques de qualité spécifiques est requise. Les mesures de qualité incluent généralement des métriques telles que l’actualisation du modèle, la correction de sortie et la latence de réponse. Toutefois, vous devez collaborer avec des scientifiques des données et des ingénieurs pour établir les métriques spécifiques qui définissent la qualité de votre charge de travail. La nature non déterministe des charges de travail d’IA rend la surveillance vigilante de la qualité particulièrement importante, car ces mesures peuvent changer de manière inattendue à tout moment après le déploiement. Les recommandations en matière d’observabilité sont les suivantes :

  • Collaborez avec les scientifiques des données et les ingénieurs pour déterminer les métriques de qualité.

  • Créez ou étendez des tableaux de bord pour évaluer l’intégrité globale de la charge de travail. Cette approche doit inclure les métriques de disponibilité des composants et les métriques de qualité.

  • Implémentez des alertes de disponibilité et de qualité bien conçues sur laquelle les équipes d’exploitation peuvent comprendre et prendre des mesures.

  • Codifier les procédures d’exploitation standard qui définissent la façon dont les équipes d’exploitation répondent aux alertes de qualité, telles que l’utilisation d’équipes de données pour examiner et corriger les dysfonctionnements potentiels.

  • Faites attention aux métriques d’utilisation, car il peut être coûteux d’exécuter des charges de travail IA. Les coûts peuvent croître rapidement si l’équipe de charge de travail n’arrête pas, réduit ou désalloue les ressources lorsqu’elles ne sont pas utilisées. Les opérations peuvent vous aider à garantir que les coûts restent dans les paramètres attendus en surveillant l’utilisation.

Inclure des composants de charge de travail IA dans vos pratiques de déploiement sécurisées

Les charges de travail IA dépendent des données de production, qui incluent souvent des informations sensibles. Par conséquent, il est important de maintenir le niveau de sécurité le plus élevé autour de ces charges de travail. Pour protéger vos données, étendez vos pratiques de déploiement sécurisées pour inclure tout le code lié aux composants IA de votre charge de travail. Si vous avez des exigences de temps d’arrêt zéro pour votre charge de travail, concevez votre approche de déploiement pour les composants IA en conséquence.

  • Pour les points de terminaison d’inférence, utilisez des déploiements bleu-vert ou canary avec ou sans mise en miroir de trafic, en fonction de votre modèle de déploiement.

  • Pour le service d’index, utilisez un modèle de déploiement côte à côte avec des mises à jour d’alias pour couper le trafic.

  • Pour le code d’orchestration, utilisez des indicateurs de fonctionnalité ou des déploiements bleu-vert.

En fonction de votre application, de votre plateforme de données et de la topologie de réseau spécifique, vous devrez peut-être utiliser une solution de passerelle, telle qu’Azure Application Gateway ou Azure Front Door.

Outils

Azure Machine Learning prend en charge les déploiements bleu-vert en mode natif avec le fractionnement du trafic intégré.

Inutile de réinventer la roue !

Étant donné que les points de terminaison d’inférence en ligne sont essentiellement des microservices, ils fonctionnent en tant que composants de charge de travail entièrement autonomes avec leurs propres données et code qui servent une fonction spécifique dans le flux de travail. Pour cette raison, traitez les points de terminaison d’inférence en ligne comme d’autres microservices critiques qui ont leurs propres cycles de vie. Vous pouvez mettre à jour les points de terminaison d’inférence en ligne individuellement. Toutefois, comme d’autres microservices dans une charge de travail plus grande, ils doivent fonctionner ensemble en toute transparence. Par conséquent, vous devez hiérarchiser les tests d’intégration lorsque vous déployez des mises à jour. Assurez-vous que vos déploiements n’affectent pas négativement d’autres services, tels que le service de modèle et l’orchestrateur. Par ailleurs, les points de terminaison d’inférence par lots sont souvent étroitement couplés au calcul du traitement du travail et sont inclus dans le pipeline de données. Dans ces cas, traitez-les dans le cadre d’une solution plus grande au lieu de microservices.

Prise en charge des tests en production

Les équipes d’exploitation ne concevoiront probablement pas ni n’effectueront probablement pas de tests de charge de travail IA. Toutefois, ils doivent prendre en charge les tests de charge de travail IA par le biais de la surveillance, des alertes et de l’investigation, car les tests sont nécessaires en production. En raison de la nature non déterministe de l’IA, les tests en production sont nécessaires pour vous assurer que la charge de travail fonctionne comme prévu au fil du temps. L’équipe opérationnelle doit collaborer étroitement avec l’équipe de charge de travail pour capturer et diagnostiquer efficacement les résultats des tests anormaux et en fonction des normes opérationnelles. Pour garantir que les opérations peuvent prendre en charge les tests et que les équipes de charge de travail peuvent effectuer des tests, les deux équipes doivent s’aligner sur leurs processus pour travailler ensemble. La formation sur les activités de test dans des environnements hors production permet de familiariser l’équipe avec l’ordre des opérations.

Automatiser les pratiques opérationnelles lorsque cela est possible

Automatisez toutes les pratiques opérationnelles liées à la charge de travail, notamment la surveillance, les alertes et les processus de test. L’automatisation est une stratégie principale pour maintenir les processus reproductibles, efficaces et cohérents. Lorsque vous concevez vos stratégies d’automatisation, exigez une surveillance humaine pour les activités, telles que le diagnostic correct des incohérences de modèle et d’autres signaux de qualité. Cela est particulièrement vrai pour les versions initiales. Les processus liés à la maintenance du modèle sont nouveaux pour les équipes opérationnelles, de sorte que le risque de réponses incorrectes aux signaux de qualité est plus élevé à ce stade. À mesure que votre charge de travail arrive à maturité, vous pouvez utiliser l’automatisation pour identifier les fausses alarmes avec des portes de qualité bien conçues, mais l’obtention de ce point peut être un processus long et complexe.

Si possible, réutilisez les outils d’automatisation existants pour effectuer de nouvelles tâches d’automatisation pour votre charge de travail IA. Par exemple, si vous utilisez déjà Azure Pipelines ou GitHub Workflows, continuez à les utiliser pour déployer du code d’orchestration au lieu d’utiliser un outil distinct. Toutefois, évitez de sur-ingénierie dans le but d’utiliser un seul outil d’automatisation. Si certaines tâches ou travaux ne conviennent pas bien à votre outil choisi, choisissez un outil plus approprié au lieu de créer une solution personnalisée qui ajoute une complexité inutile.

Remarque

Pour prendre entièrement en charge la charge de travail, de nombreux rôles et technologies croisés sont nécessaires. Les équipes de données, d’infrastructure, de sécurité et d’exploitation dépendent toutes de l’automatisation dans une certaine mesure. Utilisez les outils les plus rares possibles et standardisez-les pour aider à maintenir la stratégie d’automatisation gérable et plus facile à former.

Adopter les pratiques DevOps

Au début de votre développement de charge de travail, normalisez l’utilisation des pratiques DevOps dans vos processus de développement. Pour tous les environnements en plus des environnements de bac à sable, les normes strictement définies et appliquées doivent régir l’ensemble du cycle de vie du développement. Appliquez ces normes en interdisant strictement les activités de déploiement manuel. Tous les déploiements, qu’ils soient des mises à jour, des correctifs ou de nouveaux déploiements de ressources, doivent être effectués via un pipeline d’intégration continue et de déploiement continu qui respecte les pratiques de déploiement sécurisées. Les bonnes pratiques d’hygiène DevOps doivent inclure :

  • Contrôle de version : utilisez le contrôle de version pour toutes les ressources de code autant que possible. Le contrôle de version est une pierre angulaire de DevOps et de bonnes pratiques de gestion des changements et est essentiel pour la collaboration fluide. Appliquez le contrôle de version aux packages de bibliothèque, y compris les kits sdk et les images conteneur. Veillez à utiliser une version spécifique des packages de bibliothèque dans le cycle de vie du développement logiciel (SDLC). Différentes versions de bibliothèques telles que XGBoost ou scikit-learn dans différents environnements de développement peuvent entraîner des variations dans le comportement de votre charge de travail. Il en va de même pour le contrôle de version de modèle. Vérifiez que les versions de modèle sont cohérentes dans SDLC afin de ne pas tester une version du modèle dans un environnement de préproduction et de publier une autre version en production.

  • Schéma d’affectation de noms de version simple : utilisez un schéma d’affectation de noms de version simple pour vous assurer que vous utilisez toujours la dernière version approuvée d’une ressource donnée. Les ressources spécifiques à l’IA peuvent inclure :

    • Code du bloc-notes.
    • Code d’orchestrateur.
    • Code du travail de traitement des données.
    • Code de travail Machine Learning.
    • Le modèle .
  • Outils que vous pouvez opérationnaliser : certains outils sont parfaits pour l’expérimentation, mais ne sont pas conçus pour l’opérationnalisation. Cette limitation peut rendre difficile ou impossible de les intégrer à votre automatisation opérationnelle. Par exemple, les notebooks sont un bon outil pour l’expérimentation et le travail d’analyse exploratoire des données, mais ils ne sont pas un bon outil pour le travail de développement de pipeline de production. Lorsque vous effectuez votre expérimentation, extrayez la logique de ces outils et placez-la dans un package Python que vous pouvez utiliser pour votre code de travail.

Adopter de bonnes pratiques de documentation

Les bonnes habitudes de documentation sont importantes pour tous les types de charges de travail. La complexité des charges de travail IA rend ces habitudes encore plus importantes. Vérifiez que vous disposez d’un référentiel spécifique à votre équipe de charge de travail où la documentation est stockée et contrôlée par la version en toute sécurité. Comme avec d’autres charges de travail, vous devez documenter des informations standard. Ces informations standard incluent tous les outils utilisés dans la charge de travail, les configurations de sécurité, les conceptions réseau et les guides de configuration. Envisagez de documenter les informations de charge de travail spécifiques à l’IA suivantes :

  • Formation des modèles et informations de gestion des index de données de base : documentez les sources de données, le propriétaire des sources de données, la fréquence d’actualisation et les processus d’élimination de biais pour établir comment entraîner le modèle et comment gérer les données de base.

  • Historique du processus d’entraînement : détail de la façon dont vous êtes arrivé à la configuration approuvée actuelle en documentant pourquoi vous avez choisi des hyperparamètres, des températures, des poids et d’autres paramètres spécifiques. Incluez les autres configurations que vous avez testées et les modifications comportementales que vous avez observées tout au long du processus d’entraînement. Ces informations permettent d’éviter la répétition de configurations infructueuses ou inefficaces.

  • Informations sur le magasin de fonctionnalités : documentez les fonctionnalités qui ont la meilleure puissance prédictive et la façon dont vous avez effectué cette détermination.

  • Configuration des stations de travail scientifiques des données : documentez soigneusement les configurations de station de travail pour simplifier le processus d’intégration pour les scientifiques des données. Spécifiez les bibliothèques et dépendances nécessaires pour utiliser des environnements conda.

  • Informations sur la transformation des données : documentez l’intégralité du processus de début à la fin lorsque la transformation des données se produit. Documentez la façon dont les données apparaissent lors de l’ingestion et comment elles sont présentées après la transformation.

Outils

Tirez parti de la capture automatisée de la configuration et de l’historique via MLFlow et Machine Learning.

Étapes suivantes