Plateforme d’applications pour les charges de travail IA sur Azure
Vous devez examiner attentivement la plateforme d’hébergement d’applications sur laquelle votre charge de travail IA est déployée pour vous assurer que vous pouvez optimiser l’efficacité, la sécurité des opérations et la fiabilité.
Cette zone de conception couvre plusieurs types d’applications susceptibles d’être pertinentes pour votre charge de travail IA :
- Analyse exploratoire des données (EDA)
- Entraînement du modèle et réglage précis
- Inférence
Cet article fournit des conseils pour sélectionner la meilleure plateforme pour chacune de ces fonctions afin de répondre à vos besoins métier. Il existe également des recommandations générales que vous pouvez appliquer à toutes ces fonctions.
Recommandations
Voici le résumé des recommandations fournies dans cet article.
Recommandation | Description |
---|---|
Réutiliser les outils. | Commencez par évaluer les outils que vous utilisez déjà pour comprendre s’ils peuvent être réutilisés pour votre charge de travail IA. S’ils prennent en charge les fonctionnalités requises et peuvent répondre à vos besoins en matière de fiabilité, de sécurité, de coût et de performances, l’introduction d’un nouvel outil peut ne pas valoir le coût et l’effort. |
Tenez compte des exigences de conformité pour vos données et les régions dans lesquelles vous envisagez de procéder au déploiement. | Vous devrez peut-être limiter les régions que vous déployez ou isoler les parties de votre charge de travail les unes des autres pour répondre aux exigences de conformité. Passer à votre phase de conception avec ces informations peut vous aider à vous protéger contre la nécessité de reconcevoir ultérieurement. |
Réduisez le bâtiment. | Envisagez d’utiliser des solutions PaaS (Platform as a Service) ou SaaS (Platform as a Service) pour réduire le fardeau opérationnel que la création de votre propre solution introduit, comme la mise à jour corrective et d’autres maintenances. La réduction de la charge de jour 2 requise pour la nouvelle technologie simplifie votre adoption. De nombreuses fonctions IA sont complexes. Nous vous déconseillons donc de créer votre propre plateforme. |
Comprendre vos quotas et vos limites. | Lorsque vous concevez pour l’utilisation de solutions PaaS ou SaaS, comprenez les quotas ou limites qui s’appliquent. Votre capacité à effectuer un scale-out pour répondre à des demandes de trafic élevées peut être affectée par des quotas ou des limites. Vous devrez peut-être ajuster votre conception pour réduire ce risque. |
Déployez dans la même région. | Essayez de déployer toutes les ressources associées dans la même région pour réduire la latence et simplifier la conception. |
Pratiquez un déploiement sécurisé. | En général, vous devez traiter les API de votre charge de travail IA de la même façon que toute autre API de votre environnement. Toutes les API doivent être placées derrière une passerelle et tout le code doit être géré avec les mêmes pratiques de déploiement sécurisées que toutes les autres ressources de code. |
Établissez des benchmarks de performances par le biais d’expérimentations. | Chaque charge de travail IA est différente et la quantité de calcul dont vous avez besoin dépend de votre cas d’usage. Déterminez la quantité et les types de calcul optimaux pour votre charge de travail en effectuant des tests d’évaluation approfondis. Ce guide vous aide à choisir une plateforme, mais vous savez uniquement quelles références SKU sont appropriées pour votre charge de travail après les tests de benchmark. |
Considérations relatives à la plateforme EDA
EDA est une fonction préliminaire courante que les scientifiques des données effectuent avant la modélisation ou l’analyse statistique. Il peut donc être considéré comme une phase de développement, ce qui signifie que les objectifs de fiabilité et de performances peuvent être considérablement inférieurs à ceux des ressources de production et maintenir la productivité est le facteur plus important.
Cette section fournit des conseils sur les fonctionnalités à prendre en compte lorsque vous sélectionnez une solution de plateforme EDA.
Besoins fonctionnels
Lorsque vous évaluez une plateforme EDA, tenez compte des questions suivantes :
La plateforme prend-elle en charge l’utilisation temporaire ?
La plateforme doit prendre en charge les espaces de travail temporaires et le calcul, ce qui signifie que vous devez être en mesure d’arrêter les ressources nécessaires lorsqu’elles ne sont pas utilisées. Cette fonctionnalité permet de contrôler les coûts. Les travaux EDA sont généralement interactifs, de sorte que les utilisateurs doivent être en mesure de démarrer des machines virtuelles et de les arrêter au fur et à mesure qu’ils exécutent des travaux.
La plateforme prend-elle en charge l’option de calcul ?
La plateforme doit activer l’accès à la demande aux GPU en fonction des besoins et fournir différentes options de calcul pour faciliter la taille de la plateforme.
La plateforme prend-elle en charge MLflow ?
Votre plateforme EDA doit permettre de choisir une technologie qui permet l’intégration à MLflow pour le suivi de vos expériences. Nous vous recommandons MLflow comme protocole de développement, de déploiement et de gestion de modèle, car il offre les avantages suivants :
- Suivi des expériences. MLflow vous permet de suivre les expériences en enregistrant des paramètres, des métriques et des artefacts. Cette fonctionnalité est essentielle pendant EDA afin que vous puissiez suivre les différentes étapes de prétraitement des données et des techniques d’ingénierie des caractéristiques et leurs impacts sur les performances du modèle.
- Reproductibilité. Étant donné qu’il enregistre tous les détails de vos expériences, MLflow vous permet de reproduire vos résultats, ce qui est essentiel pour valider les résultats.
- Contrôle de version des données et du modèle. MLflow permet d’utiliser des jeux de données et des modèles de contrôle de version, ce qui facilite la gestion de différentes versions des transformations de données et des modèles testés.
- Travail collaboratif. MLflow fournit une plateforme centralisée où les scientifiques des données peuvent partager leurs expériences et résultats, ce qui facilite la collaboration et le partage des connaissances.
Exigences non fonctionnelles
Tenez compte de ces questions également :
Comment la plateforme peut-elle aider à contrôler les coûts ?
La plateforme doit permettre aux scientifiques des données d’effectuer leur travail en fonction de leurs exigences de planification, mais il doit être correctement dimensionné pour s’assurer que les attentes en matière de coûts sont satisfaites.
Quelles exigences de sécurité doivent être respectées pour la plateforme ?
Les données utilisées pendant votre phase EDA seront probablement des données de production, ce qui vous oblige à suivre les pratiques de production pour sécuriser ces données et surveiller la plateforme. À cette fin, votre plateforme doit prendre en charge tous les contrôles de sécurité nécessaires, notamment :
- Accès et autorisation.
- Chiffrement au repos et en transit.
- Exigences régionales en matière de protection des données.
- Fonctionnalités de supervision et d’alerte robustes, notamment la journalisation et l’audit.
- Accès réseau privé aux référentiels centralisés pour les images conteneur, les données et les ressources de code.
Outils
Utilisez une instance de calcul Azure Machine Learning avec des partages de fichiers au niveau de l’équipe comme plateforme EDA. L’une des exceptions est que votre équipe ou votre organisation utilise déjà une plateforme d’hébergement appropriée, comme les clusters de calcul avec GPU dans Databricks, par exemple. Dans ce cas, il peut être plus approprié de rester sur cette plateforme.
Remarque
Ne créez pas de plateforme EDA complète, sauf si vous avez besoin de le faire. Le calcul optimisé par GPU est coûteux et n’est pas approprié si votre cas d’utilisation ne le nécessite pas.
Considérations relatives à la plateforme d’apprentissage et de réglage du modèle
Lorsque vous passez à l’entraînement de modèle et au réglage précis, vous aurez probablement besoin d’un calcul optimisé pour gpu hautes performances pour le travail nécessitant beaucoup de ressources de calcul requis par ces activités. La fiabilité n’est généralement pas aussi importante que les performances, car la plupart de ces travaux se produisent en arrière-plan. Si la fiabilité élevée est requise, évaluez si la répartition de la charge de travail entre les zones de disponibilité ou les régions est nécessaire. La fiabilité élevée devient plus importante lorsque l’actualisation du modèle est mise à jour fréquemment, ce qui nécessite que l’entraînement soit effectué selon un calendrier plus serré. Votre RTO doit déterminer la conception de fiabilité que vous choisissez.
Les instructions de cette section s’appliquent à la fois à l’entraînement du modèle et au réglage précis. Sauf si vous êtes obligé d’utiliser des plateformes distinctes pour ces fonctions, vous devez utiliser une plateforme unique.
Besoins fonctionnels
Lorsque vous évaluez des plateformes pour l’apprentissage du modèle et le réglage précis, tenez compte des questions suivantes :
La plateforme prend-elle en charge l’utilisation temporaire ?
Comme les activités EDA, l’entraînement des modèles et le réglage précis ne sont généralement pas exécutés à temps plein. Vous devez donc utiliser une plateforme qui peut être arrêtée lorsqu’elle n’est pas utilisée pour contrôler les coûts. Contrairement à EDA, toutefois, l’entraînement du modèle est généralement un processus de traitement par lots. Le calcul est donc nécessaire uniquement lorsque le lot s’exécute et peut être arrêté jusqu’à la prochaine exécution.
La plateforme fournit-elle une orchestration ?
En raison de la complexité requise pour la gestion du calcul pour l’entraînement du modèle et le réglage précis, nous vous recommandons d’effectuer un orchestrateur.
Les technologies existantes dans votre environnement peuvent-elles faire partie de la solution ?
Si votre plateforme de données existante dispose de fonctionnalités de Machine Learning, comme Azure Databricks , vous pouvez l’utiliser pour certaines étapes, telles que la transformation de données et l’ingénierie des fonctionnalités, l’apprentissage, le réglage précis et d’autres étapes de Machine Learning. La combinaison de technologies peut vous aider à réduire le coût et la complexité impliqués dans l’utilisation d’une plateforme de données pour les fonctions qui peuvent ne pas être idéales.
Exigences non fonctionnelles
Considérez également cette question :
Quel est le compromis tolérable entre les coûts et les performances ?
Étant donné les exigences de calcul optimisées par GPU, vérifiez que vous testez et testez votre entraînement et réglage précis pour déterminer la référence SKU idéale qui équilibre les performances par rapport aux coûts.
Outils
Nous recommandons Azure Machine Learning pour la plateforme d’entraînement et de réglage du modèle, car elle fournit des fonctionnalités d’orchestration avec prise en charge du calcul par lots. Il existe deux options de calcul à évaluer :
- Le calcul serverless est idéal pour les exécutions courtes et peu fréquentes qui peuvent tolérer des effets voisins bruyants. Vous pouvez choisir la tarification standard ou la tarification spot. La tarification Spot est recommandée uniquement pour une formation hautement interromptible. N’utilisez pas de calcul serverless pour les opérations à temps plein. Les coûts peuvent augmenter rapidement.
- Les clusters de calcul vous donnent un contrôle significatif sur le matériel disponible et sont paramétrés pour une formation parallèle ou distribuée.
Remarque
Pour les modèles de base, votre choix de plateforme d’hébergement de modèle peut limiter vos options de réglage précis. Par exemple, l’utilisation d’Azure OpenAI Service pour l’hébergement de modèles limite vos options de réglage précis à la fonctionnalité intégrée d’optimisation d’Azure OpenAI.
Considérations relatives à l’hébergement et à la plateforme d’inférence du modèle
Les fonctions d’hébergement et d’inférence de modèle constituent la couche service de la charge de travail IA. Ces fonctions sont effectuées avec des points de terminaison spécifiques au logiciel que vous utilisez. Les solutions logicielles de service de modèle, telles que NVIDIA Triton, TorchServe et TensorFlow Serving, sont essentiellement des kits SDK Python qui frontent un modèle avec une API et ajoutent des fonctionnalités spécifiques à la solution. Vous pouvez choisir votre plateforme d’hébergement en fonction de votre choix de logiciels ou choisir votre logiciel en fonction de votre choix de plateforme d’hébergement.
Lorsque vous utilisez des solutions SaaS ou PaaS avec des modèles préconfigurés, comme les modèles de langage volumineux disponibles dans Azure OpenAI, vous avez peu ou pas d’opportunités de sélectionner un logiciel de service. Au lieu de cela, le service que vous consommez fournit une API. Cela réduit la flexibilité du processus de création d’un déploiement de modèle, ce qui peut offrir des avantages et des inconvénients. Par exemple, il peut simplifier le processus de développement de votre charge de travail. En revanche, elle réduit la flexibilité de la façon dont votre application peut appeler et interagir avec le modèle.
Fondamentalement, les API pour la couche service sont des microservices. Vous devez donc suivre les mêmes pratiques pour ces API que celles que vous suivez pour d’autres microservices dans votre environnement. Ils doivent être conteneurisés, encapsités à partir d’autres services et avoir leurs propres cycles de vie qui sont indépendants d’autres services et API. Gardez à l’esprit toutefois que les API de couche servent généralement davantage de puissance de calcul basée sur GPU et d’images conteneur plus volumineuses que les API traditionnelles.
Cette section fournit des conseils sur les fonctionnalités à prendre en compte lorsque vous sélectionnez une plateforme d’hébergement et d’inférence de modèle.
Besoins fonctionnels
Lorsque vous évaluez les plateformes pour l’hébergement de modèles et l’inférence, tenez compte des questions suivantes :
Votre charge de travail nécessite-t-elle un traitement par lots ou une inférence en ligne ?
Les points de terminaison d’inférence sont utilisés pour les processus d’inférence en ligne ou par lots, et la méthode d’inférence permet de déterminer la plateforme d’hébergement appropriée. L’inférence par lots est mieux hébergée sur une plateforme qui prend en charge l’utilisation temporaire et permet au calcul d’être arrêté lorsqu’il n’est pas utilisé. L’inférence en ligne est mieux hébergée sur une plateforme qui prend en charge l’utilisation élastique du calcul, qui s’adapte automatiquement en fonction de la charge à tout moment donné.
La plateforme prend-elle en charge la traçabilité ?
La traçabilité est essentielle pour maintenir l’intégrité des modèles utilisés dans votre charge de travail. Il est important de connaître les informations sur le modèle, comme la version actuelle, qui l’a déployée, lors du déploiement et de la traçabilité des données du modèle.
Appliquez des balises significatives aux images de votre registre de conteneurs pour vous assurer que votre service d’hébergement de modèle extrait une version spécifique que l’équipe peut facilement identifier. Cette approche aide à la gouvernance des données en réduisant le risque de modèles obsolètes ou incorrects utilisés en production.
Votre plateforme d’hébergement sera-t-elle une ressource centralisée ?
De nombreuses organisations utilisent une plateforme d’hébergement de modèle centralisée utilisée par différentes équipes pour leurs propres charges de travail. Si votre plateforme d’hébergement est centralisée, vous devez déterminer si vous avez besoin d’un support pour la rétrofacturation. Cette fonctionnalité vous permet de suivre l’utilisation de la plateforme par équipe et charge de travail.
Exigences non fonctionnelles
Tenez compte de ces questions également :
Quelles sont les exigences de fiabilité pour la plateforme ?
Les API de couche de service sont des ressources de production. Vous devez donc appliquer les mêmes exigences de fiabilité qu’à d’autres flux de charge de travail qui correspondent à leur évaluation de la criticité . Si leur criticité nécessite une haute disponibilité, votre plateforme d’hébergement doit prendre en charge les zones de disponibilité ou une conception multirégion.
Quels sont les contrôles réseau requis pour la plateforme ?
Déterminez si vous avez besoin d’un réseau privé ou d’un pare-feu de sortie pour fournir une protection pour la plateforme.
Quelles sont les exigences de sécurité des identités et des accès pour la plateforme ?
Déterminez les contrôles d’identité et d’accès requis pour vos points de terminaison. Déterminez si vous avez besoin d’un contrôle d’accès en fonction du rôle (RBAC) natif ou d’une prise en charge intégrée de votre plateforme d’identité et d’accès, par exemple, Microsoft Entra ID.
Quelles fonctionnalités de supervision la plateforme prend-elle en charge ?
Déterminez les fonctionnalités de surveillance requises pour vos points de terminaison. Selon la plateforme, vous pouvez avoir un accès limité aux journaux et aux métriques, ce qui peut limiter votre capacité à auditer les activités ou à détecter les dysfonctionnements.
Quelles sont les exigences en matière de performances pour la plateforme ?
La latence d’inférence est un problème courant, et différentes plateformes ont des profils de performances différents. Les services Serverless et PaaS qui utilisent un modèle utilitaire peuvent être affectés par le problème de voisin bruyant et n’ont souvent aucune garantie de débit. En revanche, les mêmes plateformes peuvent offrir une option auto-hébergée qui fournit un débit garanti avec un modèle de pré-achat. Vous pouvez également envisager l’auto-hébergement sur Kubernetes pour un comportement de latence plus prévisible.
Tenez compte des limites et des quotas de service susceptibles d’affecter vos performances, comme celles d’Azure OpenAI. Ces quotas et limites sont souvent définis de manière agressive pour répondre aux demandes de capacité. Par conséquent, si votre choix de plateforme ne fournit pas les performances dont vous avez besoin, vous devrez peut-être adopter des stratégies pour répartir la demande de calcul entre les instances.
Les architectures avancées peuvent combiner plusieurs déploiements pour obtenir un débit fixe pour la majeure partie de la charge de travail et des fonctionnalités de rafale pour un calcul plus flexible.
Outils
Inférence par lot
Si vous effectuez une inférence sur des données qui résident dans une plateforme qui prend en charge l’hébergement de modèles, comme Databricks, envisagez d’utiliser cette plateforme pour l’inférence. Veillez à isoler le calcul d’inférence d’autres fonctions effectuées par la plateforme de données.
Nous recommandons l’API Azure OpenAI Batch pour les modèles de base.
Pour les modèles non fondamentaux, tenez compte des recommandations suivantes :
Envisagez d’utiliser des points de terminaison de lot Azure Machine Learning pour les scénarios suivants :
Vous devez effectuer une inférence sur un jeu de données volumineux distribué dans plusieurs fichiers et vous n’avez pas besoin d’une faible latence.
Vous devez effectuer des opérations de traitement par lots longues sur des jeux de données volumineux et tirer parti de la parallélisation.
Vous devez déployer des composants de pipeline pour le traitement par lots.
Si vous devez exécuter des travaux Spark pour le traitement des données distribuées, envisagez d’utiliser Azure Synapse Analytics, Databricks ou Machine Learning serverless Spark compute.
Si aucun de ces scénarios ne s’applique, nous vous recommandons de mettre en place des points de terminaison de lot Machine Learning.
Inférence en ligne
Évaluez paaS de plateforme et les solutions serverless en tant que première étape. Ces services sont généralement les plus faciles à adopter et à gérer, car ils simplifient votre conception et réduisent le fardeau opérationnel. Par exemple, Azure OpenAI est un bon choix pour les modèles de base.
- Envisagez d’utiliser l’API Serverless Azure Machine Learning pour agréger l’accès au point de terminaison même si vous utilisez Azure OpenAI ou une autre solution d’hébergement de modèle de base.
Considérez Machine Learning avec des clusters de calcul managés lorsque les solutions PaaS ou serverless ne sont pas les mieux adaptées. Le calcul géré par Machine Learning prend en charge le fractionnement et la mise en miroir du trafic pour les tests A/B, le débogage et l’audit robuste. Étant donné que le calcul est géré par le service, les opérations Day-2 sont plus faciles lorsque vous hébergez automatiquement votre modèle. Le calcul managé offre également une large sélection de configurations de calcul et de fonctionnalités de mise à l’échelle.
Si vous choisissez d’héberger automatiquement votre modèle sur un cluster Azure Kubernetes Service (AKS) attaché à Machine Learning ou à une autre plateforme basée sur un conteneur, assurez-vous que le pool de nœuds est isolé d’autres API ou toute autre charge de travail sur le cluster pour obtenir des performances prévisibles et optimiser la sécurité. Évitez d’utiliser le calcul basé sur GPU ou optimisé pour GPU pour tout autre que vos fonctions de charge de travail IA afin de réduire les coûts. Au lieu de cela, établissez votre base de référence de performances par le biais de tests et de taille appropriée de votre calcul pour répondre à vos besoins en matière de performances sans surapprovisionnement.
Vous pouvez également héberger automatiquement votre modèle à l’aide de solutions IaaS (Infrastructure as a Service), comme Azure Science des données Virtual Machine.
Considérations relatives à la plateforme d’orchestration
L’orchestration, dans le contexte des plateformes d’applications de charge de travail IA, fait référence à des outils tels que le flux d’invite dans Machine Learning et Azure AI Studio. Ces outils sont conçus pour simplifier l’ensemble du cycle de développement des applications IA en automatisant de nombreuses fonctions de flux de travail courantes.
Exigences non fonctionnelles
Comme avec toutes les autres charges de travail de production dans votre patrimoine cloud, lorsque vous évaluez les outils d’orchestration, vous devez prendre en compte :
Fiabilité, sécurité et surveillance. Les outils d’orchestration doivent respecter les normes de fiabilité, de sécurité et de surveillance des charges de travail de production.
Les performances. Les outils d’orchestration ne nécessitent pas de calcul gpu optimisé ou basé sur GPU, envisagez des références SKU à usage général.
Optimisation des coûts. Les outils d’orchestration sont toujours activés, envisagez des options de calcul élastique pour réduire les coûts d’utilisation.
Outils
Préférez une solution prête à l’emploi comme le flux d’invite. Déterminez si ses fonctionnalités correspondent à vos besoins d’orchestration avant d’examiner l’hébergement personnalisé avec des outils tels que LangChain ou le noyau sémantique.
Points de terminaison d’hôte pour des solutions telles que le flux d’invite sur Machine Learning avec des instances de calcul ou sur AKS avec auto-hébergement.