Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : ✔️ AKS Automatic ✔️ AKS Standard
Dans cet article, vous découvrez les opérations d’apprentissage automatique (MLOps), notamment les types de pratiques et d’outils impliqués, et comment cela peut simplifier et accélérer vos flux de travail IA et d’apprentissage automatique sur Azure Kubernetes Service (AKS).
Modes de cluster AKS pour MLOps
AKS prend en charge deux modes de cluster : AKS Automatic et AKS Standard. Choisissez AKS Automatic lorsque vous souhaitez une base prête pour la production avec moins de gestion de plateforme post-déploiement. Choisissez AKS Standard quand vous avez besoin d’un contrôle plus approfondi sur l’infrastructure de cluster et la configuration de la plateforme.
Les concepts de cycle de vie MLOps de cet article s’appliquent aux deux modes. Toutefois, la responsabilité de l’implémentation diffère par mode : AKS Automatic fournit des valeurs par défaut plus préconfigurées, tandis que AKS Standard nécessite généralement une configuration de plateforme et une propriété de cycle de vie plus explicites.
| Domaine | AKS Automatic | AKS Standard |
|---|---|---|
| Configuration du cluster de référence | Autres valeurs par défaut préconfigurées | Choix de configuration plus explicites |
| Opérations du pool de nœuds système | Comportement plus géré par le service | Comportement plus géré par l’opérateur |
| Contrôles de base de référence de sécurité | Plusieurs contrôles sont préconfigurés dans les scénarios courants | Les contrôles sont couramment activés et gérés par les opérateurs |
| Base de référence de mise en réseau | Valeurs par défaut avisées pour les modèles courants | Flexibilité plus large de la configuration du réseau |
| Opérations et mises à niveau | Comportement opérationnel plus managé | Comportement plus dirigé par l’opérateur |
| Priorités de mise en œuvre de MLOps | Valider, régir et régler les valeurs par défaut | Concevoir et configurer des contrôles de plateforme |
Qu’est-ce que MLOps ?
Les opérations d’apprentissage automatique (MLOps) englobent des pratiques qui facilitent la collaboration entre les scientifiques des données, les opérations informatiques et les parties prenantes de l’entreprise, ce qui garantit que les modèles d’apprentissage automatique sont développés, déployés et gérés efficacement. MLOps applique des principes DevOps aux projets d’apprentissage automatique, visant à automatiser et à simplifier le cycle de vie de l’apprentissage automatique de bout en bout. Ce cycle de vie inclut l’apprentissage, l’empaquetage, la validation, le déploiement, la supervision et le réentraînement des modèles.
MLOps nécessite que plusieurs rôles et outils travaillent ensemble efficacement. Les scientifiques des données se concentrent sur les tâches liées à l’apprentissage du modèle, appelé boucle interne. Les ingénieurs machine learning et les équipes d’opérations informatiques gèrent la boucle externe, où elles appliquent des pratiques DevOps pour empaqueter, valider, déployer et surveiller des modèles. Lorsque le modèle nécessite un réglage précis ou un réentraînement, le processus revient à la boucle interne.
Ces étapes de cycle de vie sont cohérentes entre les modes de cluster AKS. La principale différence réside dans le degré de mise en place de la plateforme et de configuration opérationnelle que vos équipes gèrent directement.
Pipeline MLOps
Votre pipeline MLOps peut tirer profit de différents outils et microservices déployés séquentiellement ou en parallèle. Voici des exemples de composants clés de votre pipeline qui bénéficient de l’implémentation des meilleures pratiques suivantes pour réduire le traitement et permettre une itération plus rapide :
- Magasin de données non structuré pour les nouvelles données entrant dans votre application
- Base de données vectorielle pour stocker et interroger des données structurées et prétraitées
- Infrastructure d’ingestion et d’indexation des données
- Processus d’ingestion de vecteurs et/ou de réentraînement de modèles
- Outils de collecte de mesures et d’alerte (suivi des performances du modèle, volume de données ingérées, etc.)
- Outils de gestion du cycle de vie
Ces composants de pipeline sont pertinents pour AKS Automatic et AKS Standard. Le choix du mode affecte principalement les limites de propriété de la plateforme plutôt que l’intention du pipeline.
DevOps et MLOps
DevOps est une combinaison d’outils et de pratiques qui vous permet de créer des applications robustes et reproductibles. L’objectif de l’utilisation de DevOps consiste à offrir rapidement une valeur à vos utilisateurs finaux. La création, le déploiement et la surveillance de modèles robustes et reproductibles pour offrir une valeur aux utilisateurs finaux est le principal objectif de MLOps.
Il existe trois processus essentiels à MLOps :
- Charges de travail d’apprentissage automatique dont un scientifique des données est responsable, notamment l’analyse exploratoire des données (EDA), l’ingénierie des fonctionnalités et l’apprentissage et le réglage des modèles.
- Pratiques de développement logiciel, notamment la planification, le développement, le test et l’empaquetage du modèle pour le déploiement.
- Aspects opérationnels de déploiement et de maintenance du modèle en production, notamment la publication, la configuration des ressources et la surveillance du modèle.
Dans AKS Automatic, les équipes peuvent souvent consacrer moins d’efforts à la configuration commune de la plateforme et plus encore à l’orchestration des stratégies, de la qualité et du cycle de vie des modèles. Dans AKS Standard, les équipes effectuent généralement une conception et une configuration de plateforme plus explicites.
Principes DevOps qui s’appliquent à MLOps
MLOps tire profit de plusieurs principes de DevOps pour améliorer le cycle de vie de l’apprentissage automatique, comme l’automatisation, l’intégration continue et la livraison continue (CI/CD), le contrôle de code source, la planification Agile et l’infrastructure en tant que code (IaC) .
Automatisation
En automatisant les tâches, vous pouvez réduire les erreurs manuelles, augmenter l’efficacité et garantir la cohérence tout au long du cycle de vie ML. L’automatisation peut être appliquée à différentes étapes, notamment la collecte de données, l’apprentissage du modèle, le déploiement et la surveillance. Grâce à l’automatisation, vous pouvez également appliquer des mesures proactives dans le pipeline IA pour garantir la conformité des données avec les stratégies de votre organisation.
Par exemple, votre pipeline peut automatiser :
- Le réglage/réentraînement du modèle à intervalles réguliers ou lorsqu’une certaine quantité de nouvelles données est collectée dans votre application.
- La détection d’une dégradation des performances pour lancer un réglage précis ou un réentraînement sur un autre sous-ensemble de données.
- Analyse des vulnérabilités et des expositions courantes (CVE) sur les images conteneur de base extraites des registres de conteneurs externes pour garantir des pratiques de sécurité sécurisées.
Dans les deux modes de cluster AKS, prévoyez une automatisation pour la validation des stratégies, la détection des dérives de configuration et la gouvernance des mises en production, en plus des déclencheurs liés à la qualité du modèle.
Intégration continue (CI)
L’intégration continue couvre la création et la vérification des aspects du processus de développement du modèle. L’objectif de CI est de créer le code et de vérifier la qualité du code et du modèle avant son déploiement. Cela inclut des tests sur une plage d’un échantillon de jeux de données pour s’assurer que le modèle s’exécute comme prévu et répond aux normes de qualité.
En MLOps, la CI peut impliquer :
- Refactorisation du code exploratoire dans les notebooks Jupyter dans des scripts Python ou R.
- La validation de nouvelles données d’entrée pour des valeurs manquantes ou d’erreur.
- Tests unitaires et d’intégration dans le pipeline de bout en bout.
Pour effectuer des tests unitaires et de linting, vous pouvez utiliser des outils d’automatisation tels qu’Azure Pipelines dans Azure DevOps ou GitHub Actions.
Dans AKS Automatic, CI valide couramment les artefacts par rapport aux valeurs par défaut de la plateforme attendues. Dans AKS Standard, CI valide souvent les hypothèses par rapport aux paramètres de plateforme configurés explicitement.
Déploiement continu (CD)
La livraison continue implique les étapes nécessaires au déploiement en toute sécurité d’un modèle en production. La première étape consiste à empaqueter et déployer le modèle dans des environnements de préproduction, tels que des environnements de développement et de test. La portabilité des paramètres, des hyperparamètres et d’autres artefacts de modèle est un aspect important à conserver lorsque vous promouvez le code via ces environnements. Cette portabilité est particulièrement importante lorsqu’il s’agit de grands modèles de langage (LLM) et de modèles de diffusion stables. Une fois que le modèle réussit les tests unitaires et d’assurance qualité (QA), vous pouvez l’approuver pour un déploiement dans l’environnement de production.
Les pratiques de promotion sont similaires dans les deux modes de cluster AKS, mais les pipelines AKS Standard incluent souvent une validation plus spécifique à l’infrastructure avant la mise en production.
Contrôle de source
Le contrôle de code source, ou contrôle de version, est essentiel pour gérer les modifications apportées au code et aux modèles. Dans un système ML, cela fait référence au contrôle de version des données, du code et du modèle, ce qui permet aux équipes interfonctionnelles de collaborer efficacement et de suivre les modifications au fil du temps. L’utilisation d’un système de contrôle de code source basé sur Git, comme Azure Repos dans Azure DevOps ou un référentiel GitHub, vous permet de conserver par programmation un historique des modifications, de revenir aux versions précédentes et de gérer les branches pour différentes expériences.
Planification agile
La planification Agile implique de diviser un travail en sprints, qui sont des délais courts d’exécution de tâches spécifiques. Cette approche permet aux équipes de s’adapter rapidement aux modifications et de fournir des améliorations incrémentielles au modèle. L’apprentissage du modèle peut être un processus continu, et la planification Agile peut aider à étendre le projet et à améliorer l’alignement de l’équipe.
Vous pouvez utiliser des outils comme Azure Boards dans Azure DevOps ou des problèmes GitHub pour gérer votre planification Agile.
Infrastructure en tant que code (IaC)
Vous utilisez une infrastructure en tant que code pour répéter et automatiser l’infrastructure nécessaire à l'apprentissage, au déploiement et au service de vos modèles. Dans un système de ML, l’IaC permet de simplifier et de définir dans le code les ressources Azure appropriées nécessaires au type de tâche spécifique, et ce code est stocké dans un dépôt. Cela vous permet de contrôler la version de votre infrastructure et d’apporter des modifications pour une optimisation des ressources, une efficacité des coûts, etc. si nécessaire.
Dans AKS Automatic, IaC met généralement l’accent sur les définitions de charge de travail, les contrôles de gouvernance et la cohérence de l’environnement. Dans AKS Standard, IaC inclut souvent une configuration de cluster et de plateforme explicite plus large.
Contenu connexe
Consultez les articles suivants pour en savoir plus sur les meilleures pratiques de MLOps dans vos applications intelligentes sur AKS :
- Meilleures pratiques relatives aux opérations d’apprentissage automatique sur AKS
- Comparaison des fonctionnalités AKS Automatic et AKS Standard
- Déployer un modèle d’IA avec un gestionnaire de chaîne d'outils IA
- Meilleures pratiques de gestion des ressources sur AKS
- Appliquer la sécurité des pods sur votre cluster AKS en tant que développeur d’applications