Recommandations de calcul pour les charges de travail IA sur l’infrastructure Azure (IaaS)
Cet article fournit des recommandations de calcul pour les organisations exécutant des charges de travail IA sur l’infrastructure Azure (IaaS). L’approche recommandée consiste à démarrer votre adoption de l’IA avec des solutions PaaS (Platform-as-a-service) Azure AI. Toutefois, si vous avez accès aux GPU Azure, suivez ces instructions pour exécuter des charges de travail IA sur Azure IaaS.
Les charges de travail IA nécessitent des machines virtuelles spécialisées pour gérer les demandes de calcul élevées et le traitement des données à grande échelle. Le choix des machines virtuelles appropriées optimise l’utilisation des ressources et accélère le développement et le déploiement de modèles IA. Le tableau suivant fournit une vue d’ensemble des options de calcul recommandées.
Phase IA | Image de machine virtuelle | IA générative | IA non générative (modèles complexes) | IA non générative (petits modèles) |
---|---|---|---|---|
Entraîner des modèles IA | Machines virtuelles Data Science | GPU (préférez la famille ND). Vous pouvez également utiliser la famille NC avec des machines virtuelles interconnectées ethernet) | GPU (préférez la famille ND). Vous pouvez également utiliser la famille NC avec des machines virtuelles interconnectées ethernet) | Mémoire optimisée (PROCESSEUR) |
Inférence des modèles IA | Machines virtuelles Data Science | GPU (famille NC ou ND) | GPU (famille NC ou ND) | Optimisé pour le calcul (PROCESSEUR) |
Choisir l’image de machine virtuelle appropriée
Choisissez une image de machine virtuelle appropriée, telle que la Science des données Machines Virtuelles, pour accéder rapidement aux outils préconfigurés pour les charges de travail IA. Ce choix permet de gagner du temps et des ressources tout en fournissant le logiciel nécessaire pour un traitement d’IA efficace
Commencez par les images Science des données Machines Virtuelles. L’image de machine virtuelle Science des données offre un accès préconfiguré aux outils de science des données. Ces outils incluent PyTorch, TensorFlow, scikit-learn, Jupyter, Visual Studio Code, Azure CLI et PySpark. Lorsqu’elle est utilisée avec des GPU, l’image inclut également des pilotes Nvidia, CUDA Toolkit et cuDNN. Ces images servent d’image de base. Si vous avez besoin d’un logiciel supplémentaire, ajoutez-le via un script au moment du démarrage ou incorporez-le dans une image personnalisée. Ils maintiennent la compatibilité avec vos solutions d’orchestration.
Recherchez d’autres images si nécessaire. Si l’image de machine virtuelle Science des données ne répond pas à vos besoins, utilisez la Place de marché Azure ou d’autres méthodes de recherche pour rechercher d’autres images. Par exemple, avec des GPU, vous pouvez avoir besoin d’images Linux qui incluent des pilotes InfiniBand, des pilotes NVIDIA, des bibliothèques de communication, des bibliothèques MPI et des outils de supervision.
Choisir une taille de machine virtuelle
La sélection d’une taille de machine virtuelle appropriée s’aligne sur la complexité de votre modèle IA, la taille des données et les contraintes de coût. La mise en correspondance du matériel à des besoins d’entraînement ou d’inférence optimise l’efficacité et empêche la sous-utilisation ou la surcharge.
Limitez vos options de machine virtuelle. Choisissez les dernières références SKU de machine virtuelle pour des heures d’apprentissage et d’inférence optimales. Pour l’entraînement, sélectionnez des références SKU qui prennent en charge les interconnexions RDMA et GPU pour le transfert de données à haute vitesse entre les GPU. Pour l’inférence, évitez les références SKU avec InfiniBand, ce qui n’est pas nécessaire. Les exemples incluent la série ND MI300X v5, la série ND H100 v5, la série NDm A100 v4 et la série ND A100 v4.
Vérifiez la tarification des machines virtuelles. Utilisez les pages de tarification des machines virtuelles Linux et Windows pour obtenir une vue d’ensemble des coûts généraux. Pour obtenir une estimation détaillée, utilisez la calculatrice de prix Azure.
Considérez les instances spot. Les instances Spot sont rentables pour les scénarios d’inférence avec un risque minimal de perte de données. Les instances Spot offrent des économies significatives en utilisant la capacité de centre de données inutilisée à une remise. Toutefois, cette capacité peut être récupérée à tout moment, de sorte que les instances spot sont optimales pour les charges de travail qui peuvent gérer les interruptions. Points de contrôle réguliers pour réduire la perte lorsqu’elles sont supprimées. Pour plus d’informations, consultez Utilisation de machines virtuelles Spot dans Azure CycleCloud.
Choisir une solution d’orchestration de calcul
Les solutions d’orchestration de calcul facilitent la gestion des tâches IA sur les clusters de machines virtuelles. Même pour les déploiements simples, un orchestrateur peut aider à réduire les coûts et à garantir qu’un environnement est reproductible. Les orchestrateurs vous permettent de vous assurer que vous utilisez uniquement le calcul dont vous avez besoin pour une durée spécifique. Sélectionnez un outil d’orchestration en fonction de votre planification, de votre conteneurisation et de votre mise à l’échelle pour améliorer les opérations et l’extensibilité.
Utilisez Azure CycleCloud pour les planificateurs open source. Azure CycleCloud est idéal pour les planificateurs open source tels que Slurm, Grid Engine ou Couple/PBS. Il fournit une gestion flexible des clusters, des configurations personnalisables et des fonctionnalités de planification avancées. Les machines virtuelles au sein du cluster ont besoin d’une configuration pour l’exécution de la charge de travail IA. Les machines virtuelles pour CycleCloud et Batch ne sont pas persistantes. L’orchestrateur crée et supprime des machines virtuelles si nécessaire pour faciliter les économies. Pour plus d’informations, consultez l’espace de travail Azure CycleCloud pour les bidonvilles.
Utilisez Azure Batch pour la planification intégrée. Azure Batch offre des fonctionnalités de planification intégrées sans nécessiter d’installation ou de gestion de logiciels supplémentaires. Il a un modèle de tarification de la consommation et aucun frais de licence. Il prend également en charge les tâches conteneurisées en mode natif. Pour connaître les meilleures pratiques de déploiement, consultez l’accélérateur Azure Batch.
Utilisez Azure Kubernetes Service (AKS) pour la mise à l’échelle des conteneurs. AKS est un service managé pour le déploiement, la mise à l’échelle et la gestion des conteneurs sur un cluster. Il convient d’exécuter des charges de travail IA dans des conteneurs à grande échelle. Pour plus d’informations, consultez Utiliser Azure Kubernetes Service pour héberger des charges de travail basées sur GPU.
Orchestrez manuellement des travaux pour des tâches plus simples. Si les besoins d’orchestration sont minimes, gérez manuellement les ressources IA. Tenez compte des étapes suivantes pour les charges de travail à petite échelle :
- Définissez votre flux de travail. Comprendre votre flux de travail de bout en bout, y compris les dépendances et la séquence de travaux. Réfléchissez à la façon de gérer les défaillances à n’importe quelle étape.
- Journaliser et surveiller les travaux. Implémentez des infrastructures de journalisation et de supervision claires pour vos travaux.
- Valider les prérequis. Assurez-vous que votre environnement répond à toutes les exigences de flux de travail, notamment les bibliothèques et infrastructures nécessaires.
- Utilisez la gestion de versions. Suivez et gérez les modifications à l’aide du contrôle de version.
- Automatisez les tâches. Utilisez des scripts pour automatiser le prétraitement, l’entraînement et l’évaluation des données.
Prendre en compte les conteneurs
Les conteneurs fournissent un environnement cohérent et reproductible qui s’adapte efficacement. Les conteneurs simplifient les transitions entre les environnements, ce qui les rend essentiels pour les solutions IA évolutives.
Installer les pilotes. Vérifiez que les pilotes nécessaires sont installés pour activer la fonctionnalité de conteneur dans différents scénarios. Pour les configurations de cluster, les outils tels que Pyxis et Enroot sont souvent nécessaires.
Utilisez NVIDIA Container Toolkit. Ce kit de ressources active les ressources GPU au sein des conteneurs. Installez tous les pilotes requis, tels que les pilotes CUDA et GPU, et utilisez votre runtime de conteneur et votre moteur préférés pour l’exécution de la charge de travail IA.