Vous pouvez réduire le coût des charges de travail d’apprentissage automatique dans le cloud en optimisant la taille des ressources de calcul, en séparant les environnements d’entraînement de ceux d’inférence, en éliminant l’infrastructure inutilisée et en mettant en œuvre une gouvernance FinOps afin d’instaurer une responsabilisation au sein des équipes d’ingénierie et financières. Les gains les plus importants proviennent du fait de considérer les dépenses de calcul liées au ML comme une discipline gérée plutôt que comme un sous-produit incontrôlé de l’expérimentation. Les sections ci-dessous détaillent chacun de ces leviers.
Pourquoi les charges de travail d'apprentissage automatique dans le cloud sont-elles si coûteuses ?
Les charges de travail d'apprentissage automatique (ML) dans le cloud sont coûteuses, car elles consomment d'importantes ressources de calcul GPU et CPU, souvent sous forme de pics imprévisibles, tout en générant des coûts significatifs liés au stockage et au transfert de données. Contrairement aux charges de travail des applications standard, les pipelines ML combinent des tâches d'entraînement très gourmandes en ressources de calcul, des points de terminaison d'inférence fonctionnant en permanence et des opérations sur des ensembles de données volumineux, chacun présentant son propre profil de coûts.
Plusieurs facteurs font grimper les coûts liés au ML dans le cloud au-delà des prévisions des équipes :
- Coûts des instances GPU : Les instances GPU hautes performances peuvent coûter plusieurs fois plus cher à l'heure que les instances de calcul standard, et les sessions d'entraînement peuvent durer des heures, voire des jours.
- Ressources inutilisées : Les ordinateurs portables, les environnements de développement et les points de terminaison d'inférence fonctionnent souvent alors que personne ne les utilise activement, ce qui engendre des coûts sans aucun retour sur investissement.
- Transfert et stockage des données : Les volumineux ensembles de données d'entraînement stockés dans un système de stockage objet dans le cloud, combinés à des transferts de données répétés entre les services, prennent rapidement de l'ampleur.
- Coûts liés à l'expérimentation : Les équipes de science des données mènent de nombreuses expériences, dont la plupart échouent ou sont abandonnées, mais le coût de calcul de chaque exécution est bien réel.
- Absence d'étiquetage et d'affectation : Sans une répartition adéquate des coûts, les équipes ne peuvent pas identifier les modèles, projets ou expériences à l'origine des dépenses, ce qui rend impossible la définition des priorités en matière d'optimisation.
Il en résulte que les dépenses consacrées au ML dans le cloud augmentent souvent plus rapidement que la valeur commerciale qu'elles génèrent, en particulier lorsqu'il n'existe aucune structure de gouvernance permettant de relier les décisions techniques aux résultats financiers.
En quoi le « rightsizing » permet-il de réduire les coûts de calcul en ML ?
Le « rightsizing » permet de réduire les coûts de calcul en machine à apprendre (ML) en adaptant le type et la taille des instances aux besoins réels en ressources de chaque charge de travail, éliminant ainsi le gaspillage lié à un surprovisionnement des machines. De nombreuses équipes ont tendance à opter par défaut pour des instances GPU de grande taille, par habitude ou par prudence, même lorsque des instances plus petites ou une puissance de calcul basée sur le CPU suffiraient amplement à accomplir la tâche.
Dans la pratique, l'optimisation des charges de travail d'apprentissage automatique implique plusieurs mesures concrètes :
- Analyser les tâches de formation afin de mesurer l'utilisation réelle de la mémoire du GPU et du CPU avant de choisir les types d'instances
- Utiliser des familles d'instances plus petites pour le prétraitement des données et l'ingénierie des caractéristiques, qui nécessitent rarement une accélération par GPU
- Opter pour des instances « spot » ou « préemptibles » pour les tâches d'entraînement tolérantes aux pannes, ce qui peut réduire les coûts de calcul de 60 à 80 % par rapport aux tarifs « à la demande »
- Arrêt automatique des ordinateurs portables de développement et des points de terminaison d'inférence de test lorsqu'ils ne sont pas utilisés
- Adapter dynamiquement les capacités d'inférence en fonction du trafic, plutôt que de prévoir en permanence une capacité suffisante pour faire face aux pics de charge
Le redimensionnement n'est pas une opération ponctuelle. À mesure que les modèles évoluent et que les schémas de charge de travail changent, la configuration optimale des ressources évolue elle aussi. Intégrer un rythme de révision régulier dans votre processus d'exploitation du ML garantit que les décisions de redimensionnement restent d'actualité et que les économies réalisées s'accumulent au fil du temps.
Quelle est la différence entre le coût de l'entraînement et celui de l'inférence dans le cloud ?
Le coût d'entraînement correspond aux dépenses informatiques liées à la construction d'un modèle, qui se traduisent généralement par une utilisation intensive et ponctuelle des GPU, limitée dans le temps. Le coût d'inférence correspond aux dépenses récurrentes liées à la mise à disposition de ce modèle aux utilisateurs ou aux systèmes ; il peut être continu et évolue en fonction du volume de requêtes. Ces deux coûts présentent des structures de coûts fondamentalement différentes et nécessitent des stratégies d'optimisation distinctes.
Optimisation des coûts de formation
Les sessions d’entraînement sont des événements distincts que vous pouvez planifier, interrompre et relancer. Elles sont donc particulièrement adaptées aux instances « spot » ou « préemptibles », qui offrent des réductions significatives en échange d’une éventuelle interruption. Vous pouvez également réduire les coûts d’entraînement en utilisant l’entraînement en précision mixte, qui traite les données dans des formats de précision inférieure afin d’accélérer les calculs et de réduire les besoins en mémoire. Le choix d’une combinaison appropriée entre framework et matériel, par exemple en adaptant les charges de travail TensorFlow ou PyTorch à l’architecture GPU sur laquelle elles fonctionnent le mieux, a également un impact mesurable sur le coût par session d’entraînement.
Optimisation des coûts d'inférence
L'inférence est plus difficile à optimiser car elle doit rester réactive. Les leviers les plus efficaces sont les techniques de compression des modèles, telles que la quantification et l'élagage, qui réduisent la charge de calcul requise par prédiction sans dégrader significativement la précision. Le regroupement des requêtes d’inférence, plutôt que leur traitement une par une, améliore le débit et réduit le coût par prédiction. Pour les charges de travail présentant un trafic variable, l’auto-scaling des points de terminaison d’inférence à zéro pendant les périodes creuses et leur mise à l’échelle à la demande peuvent éliminer une grande partie des dépenses liées à l’inactivité.
Comprendre laquelle de ces deux catégories est à l'origine de vos difficultés en matière de gestion des coûts liés à l'IA dans le cloud constitue le point de départ de tout effort de réduction significatif. De nombreuses entreprises se concentrent sur l'entraînement, car il s'agit d'un aspect visible et spectaculaire, mais les coûts d'inférence représentent souvent la majeure partie des dépenses totales liées au machine learning dans les environnements de production.
Comment les pratiques FinOps peuvent-elles être appliquées aux charges de travail liées à l'apprentissage automatique ?
Les pratiques FinOps s'appliquent aux charges de travail liées à l'apprentissage automatique en instaurant une responsabilité partagée en matière de dépenses cloud entre les équipes de science des données, d'ingénierie et de finance, et en mettant en place un cycle décisionnel régulier autour des compromis entre coûts, performances et valeur. Sans cette gouvernance, les dépenses cloud liées à l'apprentissage automatique augmentent de manière incontrôlée, car les équipes qui engendrent ces coûts ne sont pas celles chargées de gérer les budgets.
Postuler FinOps pour les charges de travail d'apprentissage automatique comporte généralement les étapes suivantes :
- Ajoutez un tag à chaque ressource : Attribuez des balises de répartition des coûts à chaque tâche ML, chaque notebook, chaque ensemble de données et chaque point de terminaison, par équipe, projet et modèle. Sans cela, vous ne pouvez pas imputer les dépenses aux tâches qui les ont générées.
- Mettre en place un rythme régulier d'analyse des coûts : Organisez régulièrement des réunions au cours desquelles les équipes d'ingénierie et financières examinent ensemble les dépenses liées au ML, identifient les anomalies et prennent des décisions de hiérarchisation en se basant sur des indicateurs de rapport coût/valeur.
- Définir des seuils de dépenses et des alertes : Définissez des alertes budgétaires au niveau du projet ou de l'équipe afin que les missions de formation hors budget ou les terminaux oubliés soient repérés rapidement, plutôt que d'être découverts en fin de mois.
- Établir un lien entre les coûts et les résultats : Suivez le coût de chaque modèle en cours de développement par rapport à la valeur commerciale qu'il est censé générer, ce qui permet de déprioriser plus facilement les expériences à faible valeur ajoutée avant qu'elles n'engorgent le budget.
Le FinOps appliqué au machine learning ne se résume pas à une simple réduction des coûts. Il s'agit de s'assurer que chaque dollar dépensé dans le cloud pour le machine learning constitue un investissement mûrement réfléchi, et non une dépense inconsidérée.
Quelles sont les techniques d'optimisation des coûts du cloud les plus efficaces pour les pipelines d'apprentissage automatique ?
Les techniques d'optimisation des coûts du cloud les plus efficaces pour les pipelines d'apprentissage automatique sont l'utilisation d'instances spot pour l'entraînement, l'orchestration des pipelines afin d'éliminer les ressources de calcul inutilisées, les politiques de cycle de vie du stockage pour les ensembles de données et la tarification basée sur des engagements pour les charges de travail d'inférence prévisibles. La combinaison la plus adaptée dépend de la structure de votre pipeline et du degré de prévisibilité de vos modèles de charge de travail.
Voici les techniques qui permettent systématiquement d'obtenir les meilleurs résultats en matière de réduction des coûts liés aux charges de travail d'apprentissage automatique :
- Instances Spot et préemptibles : Utilisez-les pour les tâches d'entraînement pouvant faire l'objet de points de contrôle et être reprises. La réduction est importante et le risque lié à la fiabilité reste gérable grâce à une logique de points de contrôle appropriée.
- Orchestration du pipeline : Les outils qui activent des ressources de calcul uniquement lorsqu'une étape du pipeline le nécessite et les désactivent immédiatement après éliminent les temps d'inactivité qui s'accumulent lorsque les équipes gèrent manuellement ces ressources.
- Hiérarchisation du stockage : Déplacez les ensembles de données d'entraînement qui ne sont plus utilisés vers des niveaux de stockage moins coûteux. Les grands ensembles de données stockés sur des niveaux haut de gamme pendant des mois après la fin d'un projet constituent un véritable gaspillage.
- Remises pour utilisation réservée ou engagée : Pour les points de terminaison d'inférence fonctionnant en continu, s'engager pour une durée d'un ou trois ans permet de réduire considérablement les coûts horaires par rapport aux tarifs à la demande.
- Optimisation du modèle avant le déploiement : La quantification et la distillation des modèles avant leur déploiement en production réduisent la puissance de calcul nécessaire par requête d'inférence, ce qui permet de diminuer les coûts d'exploitation sans nécessiter de modifications de l'infrastructure.
- Suivi et élagage des expériences : Utilisez des outils de suivi des expériences pour identifier et interrompre rapidement les séries d'entraînement peu performantes, afin d'éviter les coûts liés à la poursuite des expériences jusqu'à leur terme lorsque les premiers indicateurs laissent présager un échec.
Comment instaurer une culture soucieuse des coûts au sein des équipes de machine learning et de science des données ?
Pour instaurer une culture soucieuse des coûts au sein des équipes de machine learning et de science des données, il faut rendre les dépenses liées au cloud visibles tant au niveau individuel qu'au niveau de l'équipe, établir un lien direct entre les coûts et la valeur du travail effectué, et éliminer les obstacles qui font qu'il est plus difficile d'adopter un comportement soucieux des coûts qu'un comportement insouciant à cet égard. La culture découle de la structure ; l’objectif est donc de concevoir des systèmes dans lesquels les comportements par défaut sont également les plus rentables.
Parmi les mesures concrètes permettant d'induire un changement de comportement durable, on peut citer :
- Partager en temps réel des tableaux de bord sur les coûts avec les équipes de science des données afin que les ingénieurs puissent évaluer l'impact financier de leurs choix en matière de ressources au fur et à mesure qu'ils les effectuent
- Intégrer les indicateurs de coût aux indicateurs de performance des modèles dans le suivi des expériences, afin que le « coût par précision » devienne un critère standard d'évaluation des modèles
- Fixer des budgets « cloud » au niveau des équipes et leur donner l'autonomie nécessaire pour les gérer, ce qui favorise l'appropriation du projet sans nécessiter d'approbation centrale pour chaque décision
- Reconnaître et saluer les progrès réalisés en matière d'optimisation des coûts parallèlement aux améliorations apportées à la précision des modèles, ce qui montre que la rigueur budgétaire est tout autant valorisée
- Sensibiliser les data scientists aux implications financières des choix courants, tels que la sélection des instances, les niveaux de stockage et la fréquence des expériences
Le passage d'une approche « sans souci des coûts » à une approche « soucieuse des coûts » ne se fait pas uniquement par le biais de politiques. Il nécessite que les services financiers, informatiques et d'ingénierie partagent un langage commun et un ensemble commun d'indicateurs, ce qui est précisément ce qu'apporte une pratique FinOps aboutie.
Comment nous vous aidons à réduire vos coûts liés au ML dans le cloud
Nous aidons les entreprises à passer d'une gestion réactive des dépenses cloud à une gouvernance active des coûts pour l'ensemble des charges de travail, y compris les pipelines d'apprentissage automatique et d'intelligence artificielle. Nos services FinOps vous apportent la structure, les outils et la coordination interfonctionnelle nécessaires pour faire des dépenses cloud liées à l'apprentissage automatique une discipline maîtrisée plutôt qu'une variable incontrôlée.
En travaillant avec nous, vous bénéficiez :
- Répartition complète des coûts pour les charges de travail d'apprentissage automatique : Nous mettons en place des systèmes de suivi et d'affectation qui permettent d'attribuer chaque dollar dépensé en apprentissage automatique à l'équipe, au projet ou au modèle qui l'a généré, que ce soit sur AWS, Azure ou GCP.
- Adéquation des effectifs et analyse de l'engagement : Nous identifions les ressources de calcul ML surdimensionnées et modélisons l'impact financier de l'adoption d'instances spot, de la capacité réservée et des changements de famille d'instances.
- Conception de la gouvernance FinOps : Nous vous aidons à mettre en place le modèle opérationnel, le rythme décisionnel et les structures de responsabilité qui permettent d'aligner durablement les dépenses en apprentissage automatique sur les priorités de l'entreprise.
- Évaluation du niveau de maturité FinOps : Si vous ne savez pas par où commencer, notre évaluation permet de déterminer votre niveau actuel de maturité en matière de gestion financière dans le cloud et d'établir une feuille de route des améliorations à apporter, classées par ordre de priorité.
Si vous souhaitez savoir où en est votre organisation et quelles sont les prochaines étapes les plus efficaces, contactez-nous pour discuter de votre situation.