Alexander - stock.adobe.com
Cloud IaaS : quelle VM EC2 choisir pour votre IA ?
Certains traitements nécessitent des instances spécifiques sur le cloud public AWS. Cet article explique lesquelles équilibrent les exigences fonctionnelles, les performances et les coûts pour entraîner des modèles d’IA.
Qu’il s’agisse d’automatiser des tâches, d’optimiser des processus métier, de détecter des fraudes ou de prendre des décisions plus éclairées sur la base de prévisions, les entreprises cherchent des moyens de tirer profit de l’IA et du Machine learning. Mais pour optimiser la puissance de l’IA, les entreprises doivent utiliser les bonnes instances EC2, à savoir les machines virtuelles proposées en ligne par le cloud public AWS.
AWS propose un service applicatif dédié au machine learning : SageMaker. Pour autant, même s’il propose des options sans serveur, de nombreux scénarios nécessitent de conjuguer ce service avec des machines virtuelles EC2.
Lors du choix d’un type d’instance, les utilisateurs doivent bien comprendre leur charge de travail et évaluer les exigences de calcul et d’application de la tâche. Pour une charge de travail de machine learning, les utilisateurs ont besoin d’instances qui offrent des performances optimales pour l’entraînement et le calcul profond. La famille d’instances de calcul accéléré, qui comprend les machines virtuelles p5, g5, trn1 et inf2, peut fournir ces fonctionnalités.
Cet article explique pourquoi les types d’instance sont importants, quelles sont les options pour le machine learning et comment les équipes peuvent déterminer laquelle est la plus adaptée.
Pourquoi le type d’instance est-il important ?
Les types d’instances EC2 disponibles depuis SageMaker varient en fonction de la tâche à effectuer : développement, entraînement ou inférence. Tous les types d’instance ne sont pas adaptés à tous les types de tâches ; par exemple, les types disponibles pour l’entraînement ne sont pas nécessairement disponibles pour accélérer l’écriture de code ou le traitement d’un prompt. De même, certaines tâches peuvent être plus gourmandes en calcul ou en mémoire, ou nécessiter un stockage particulier ou un débit réseau plus important.
SageMaker propose plusieurs familles d’instances EC2 à usage général, ainsi que des familles plus optimisées, comme le montre le tableau ci-dessous. Ces familles d’instances contiennent des types d’instances spécialisées créées pour une variété de tâches.
Certaines instances offrent une combinaison d’optimisations – par exemple, calcul et réseau (c5n) ou mémoire et stockage (r5d).
La quantité de données traitées a également un impact significatif sur le type d’instance optimal pour une tâche particulière. Si les données sont stockées dans les instances EC2, un type d’instance optimisé pour le stockage convient parfaitement. Si de grandes quantités de données sont récupérées à partir d’un stockage externe, les instances optimisées pour le réseau peuvent convenir. Les types d’instances de calcul accéléré sont recommandés pour l’apprentissage profond et les grands modèles de langage (LLM).
Quelles sont les instances EC2 pour le machine learning ?
SageMaker propose des instances de calcul accéléré, telles que p5, g5, trn1 et inf2. Ces instances sont optimales pour de multiples tâches de machine learning. Regardons de plus près les instances suivantes.
P5. Les instances P5 sont alimentées par des GPU Nvidia H100 et fournissent de hautes performances pour le deep learning et le calcul. Pour l’instant, SageMaker ne propose que ml.p5.48xlarge, qui, selon le type de composant, peut coûter entre 113 et 118 dollars par heure. Ce prix peut être rédhibitoire pour de nombreuses équipes.
Ces instances conviennent parfaitement aux charges de travail extrêmement exigeantes, telles que les applications d’IA générative, les LLM, la génération de graphiques et de vidéos dans un code, l’entraînement et l’inférence.
G5. Les instances G5 sont alimentées par des GPU Nvidia A10G Tensor Core et sont également adaptées aux charges de travail lourdes d’entraînement et d’inférence. SageMaker propose plusieurs options de taille pour les instances G5, offrant davantage de flexibilité aux propriétaires d’applications en matière de capacité de calcul et de gestion des coûts par rapport aux instances P5. Les tailles disponibles sont les suivantes :
- ml.g5.xlarge.
- ml.g5.2xlarge.
- ml.g5.4xlarge.
- ml.g5.8xlarge.
- ml.g5.12xlarge.
- ml.g5.48xlarge.
Trn1. Les instances Trn1 utilisent la puce AWS Trainium, qui a été conçue explicitement pour les tâches d’entraînement par apprentissage profond, tout en maintenant les coûts à un niveau bas. Selon AWS, ce type d’instance permet de réaliser jusqu’à 50 % d’économies sur le coût de l’entraînement par rapport à des instances EC2 similaires. De plus, pour les entreprises soucieuses du développement durable, il est dit qu’une instance Trn1 est 25 % plus économe en énergie lors de l’entraînement en Deep learning par rapport à d’autres instances EC2 de calcul accéléré.
Deux tailles sont actuellement disponibles : ml.trn1.2xlarge et ml.trn1.32xlarge.
Les cas d’utilisation courants comprennent le traitement du langage naturel, la vision par ordinateur et la recherche, ainsi que la recommandation et le classement.
Inf2. Les instances Inf2 utilisent les puces AWS Inferentia2 et sont destinées aux tâches d’inférence en Deep learning. Comme les instances trn1, les instances inf2 offrent des avantages en matière d’écoresponsabilité et des performances jusqu’à 50 % supérieures à celles d’instances Amazon EC2 similaires.
Les tailles d’instance disponibles sont les suivantes :
- ml.inf2.xlarge.
- ml.inf2.8xlarge.
- ml.inf2.24xlarge.
- ml.inf2.48xlarge.
Ces instances sont couramment utilisées pour la génération et le résumé d’images et de textes, ainsi que pour la reconnaissance vocale.
Quelle instance accélérée vous convient le mieux ?
Étant donné que le processus de lancement des applications de machine learning se compose de plusieurs étapes, il est nécessaire de disposer de différents types de capacité de calcul. La capacité dépend des tâches effectuées. Voici quelques exemples de tâches liées au déploiement de modèles de Machine learning :
- Développement.
- Prétraitement et post-traitement.
- Évaluation.
- Entraînement.
- Préparation des données.
- Inférence.
Dans la plupart des cas, chaque type de tâche a ses propres exigences et contraintes en matière de calcul et d’application. Il est important de choisir les instances EC2 appropriées, en fonction de la tâche spécifique à effectuer.
Comment déterminer les besoins en matière de performances ?
Avant de choisir un type et une taille d’instance particuliers, il est essentiel d’identifier les exigences de performance pour chaque tâche. Il existe de nombreux cas où des instances optimisées peuvent avoir un coût de 30 à 75 % plus élevé que des instances plus génériques ayant une capacité similaire. Certains objectifs business peuvent justifier le coût supplémentaire, comme la latence maximale ou le volume de données à traiter, à entraîner ou à déduire.
Dans certains cas, un type d’instance générique peut répondre aux exigences de l’application. Mais il y a aussi des situations où des performances plus élevées peuvent se traduire par des coûts moindres. Exécutez plusieurs tests pour chaque tâche afin de déterminer les besoins en matière de performances. Chaque test doit être effectué avec le volume de données et de transactions prévu. Calculez le coût en utilisant plusieurs types d’instances et mesurez les paramètres pertinents qui ont un impact sur l’expérience utilisateur et la performance de l’application.
Examinez les mesures
CloudWatch offre des mesures pertinentes dans des domaines tels que les invocations, la latence, les erreurs ou encore l’utilisation du CPU et de la mémoire. Étant donné que les tâches de machine learning peuvent rapidement atteindre plusieurs milliers de dollars, concentrez-vous sur les coûts d’infrastructure optimaux pour des exigences spécifiques. Les métriques de CloudWatch sont un outil essentiel pour évaluer si un type d’instance particulier est le bon selon les objectifs d’une charge de travail particulière.
Économisez votre budget
SageMaker s’accompagne d’offres promotionnelles (Amazon SageMaker Savings Plans), qui permettent de réduire les coûts en engageant les utilisateurs sur une dépense horaire pour une période d’un ou trois ans. En fonction du type d’instance et de la période d’engagement, les économies peuvent aller d’environ 20 % à 64 %. Il est important de noter que tous les types d’instance pour un type de composant particulier, comme le traitement, l’inférence, l’entraînement et l’aide au code, ne sont pas pris en charge. Par exemple, SageMaker ne supporte pas les instances réservées.