Introduction
Alors que de plus en plus d'entreprises adoptent les avantages des opérations d'apprentissage automatique (MLOps), la question qui préoccupe les cadres dirigeants est la suivante : faut-il construire ou acheter une plateforme MLOps ?
La création de votre propre plateforme MLOps nécessite une expertise dans de nombreux domaines tels que la science des données, le génie logiciel, l'architecture des données et le DevOps. Cela nécessite également une quantité importante de temps et de ressources. Mais, en même temps, construire votre propre plateforme ML peut vous aider à personnaliser votre solution pour vos besoins spécifiques et les exigences de votre secteur.
D'autre part, l'achat d'une pile MLOps prête à l'emploi signifie qu'elle a déjà été construite pour vous (et que beaucoup d'efforts ont été déployés pour sa réalisation et son support), ce qui vous permet de vous concentrer sur la formation et la maintenance de vos modèles.
Certaines entreprises ont décidé de construire une plateforme MLOps complète qui s'adapte à leurs besoins, tandis que d'autres ont acheté des plateformes qui ne disposent pas de tous les outils nécessaires à leurs projets MLOps, et ont dû construire des outils supplémentaires pour couvrir leurs besoins. Si vous ne savez pas si vous devez acheter ou construire votre propre plateforme MLOps de bout en bout, nous allons vous donner quelques indications qui vous aideront à prendre votre décision.
Quand dois-je créer une plateforme MLOps ?
Construire une plateforme ML en interne pourrait être une bonne option pour un cas d'utilisation très spécifique qui nécessite des fonctionnalités particulièrement personnalisées. Cependant, dans certains cas, il est également possible de personnaliser dans une certaine mesure des solutions tierces, afin de répondre à vos besoins spécifiques et aux exigences de votre secteur.
Le meilleur exemple des besoins spécifiques d'un secteur est celui des images médicales. Étant donné la multitude de formats de données généralement utilisés dans ce domaine, il est vraiment compliqué de trouver une plateforme prête à l'emploi capable de tous les gérer.
Dans un autre ordre d'idées, créer votre propre plate-forme MLOps signifie que vous avez le contrôle total des données, ce qui implique de mettre en place votre propre norme (élevée) de sécurité. Si vous achetez une plateforme MLOps commerciale, vous devrez accepter d'utiliser les normes de sécurité de votre fournisseur.
Quand dois-je acheter une plateforme MLOps ?
L'achat d'une plateforme MLOps est un excellent choix pour les entreprises qui recherchent une mise en œuvre rapide, la rapidité et l'efficacité.
L'un des avantages les plus importants de l'achat d'une solution MLOps est que vous pouvez vous concentrer sur ce qui est important pour votre entreprise pendant que la plateforme s'occupe de tout le reste. Ainsi, vous aurez plus de temps pour développer votre produit et vous concentrer sur la science des données, et vous éviterez de prendre du retard face à la croissance de vos concurrents.
Les entreprises qui achètent des plateformes MLOps prêtes à l'emploi peuvent être assurées de la qualité de la technologie dans laquelle elles investissent. Beaucoup de temps et de ressources ont été consacrés au développement de ces technologies.
Les plateformes de bout en bout déjà existantes permettent à vos équipes de travailler et de collaborer sur une seule et même plateforme, sans avoir à utiliser divers outils pour mener à bien le cycle de vie des MLOps.
Ces avantages augmentent la productivité de vos équipes et leur permettent de développer vos produits plus rapidement.
De quoi ai-je besoin pour créer une plateforme MLOps de qualité ?
Pour construire des modèles ML précis, il est essentiel de tenir compte de la vitesse d'itération de vos expériences, et c'est là que les outils MLOps entrent en jeu. Cependant, le processus de construction d'une plateforme MLOps bien conçue en interne implique de disposer d'une infrastructure robuste et évolutive qui s'adapte à vos besoins à mesure que votre organisation se développe.
En même temps, une infrastructure solide est nécessaire pour déployer des systèmes ML de production. De cette façon, vous pouvez continuellement réentraîner vos modèles sur les données entrantes pour que vos modèles restent représentatifs du monde réel sans interruption.
Les fonctionnalités qui apportent le plus de valeur à une plateforme MLOps ne sont pas toujours les plus évidentes. Par exemple, un système d'alerte et de notification qui se déclenche en fonction des besoins de l'utilisateur, comme l'examen des prédictions ou la validation des performances du modèle, peut sembler être un gadget, mais peut certainement vous faire gagner beaucoup de temps (et de temps d'arrêt).
Chez Picsellia, nous avons développé une plateforme qui couvre toute la pile MLOps, y compris les flux de travail automatiques avec des notifications qui vous alertent lorsque de nouvelles données à étiqueter arrivent ou lorsque votre modèle nécessite une attention particulière. De cette façon, vous pourrez facilement identifier toute dérive ou dégradation du modèle et la traiter à temps.
Source : Introducing MLOps. Comment faire évoluer l'apprentissage automatique dans l'entreprise. Pg. 85 (Treveil M., the Daitaku Team, 2020)
Pour accélérer votre mise en production, votre plate-forme doit être capable d'exécuter plusieurs tâches en parallèle sur différentes ressources. C'est pourquoi vous devrez déployer votre plateforme MLOps personnalisée sur le cloud ou exploiter le cluster de calcul de votre propre organisation.
En outre, vous aurez besoin d'une équipe multidisciplinaire au moins expérimentée en ingénierie logicielle, en science des données, en architecture des données et en DevOps.
Afin de prendre une décision qui réponde au mieux aux besoins de votre organisation, vous devez fixer des objectifs clairs. Quelle valeur voulez-vous que la plate-forme apporte ? Combien de temps et d'argent êtes-vous prêt à y consacrer, en tenant compte du coût d'opportunité ? Devez-vous mettre en place l'ensemble de la pile MLOps ou seulement une partie de celle-ci ?
Sur le plan technique, vous devrez connaître l'infrastructure dont vous disposez (en nuage ou sur site), la langue requise, le cadre d'apprentissage profond utilisé ou même les besoins en annotation exotique. Il est également très important de bien comprendre vos objectifs et les mesures de performance, car ils détermineront vos besoins en matière de dashboarding et d'analyse.
Combien de temps faut-il pour créer une plateforme MLOps ?
Vous devez non seulement tenir compte du temps nécessaire à la construction d'une plateforme ML en interne, mais aussi du coût total de possession. En d'autres termes, vous devez prévoir du temps pour la réparation, la maintenance et la surveillance de votre solution, une fois qu'elle est construite.
Lors de la TWIMLCon à San Francisco, un sondage informel a été réalisé au cours d'une session de non-conférence, sur le temps nécessaire aux équipes pour construire leur propre plateforme ML en interne. Les réponses variaient en fonction de la maturité de la plateforme et allaient de quelques ingénieurs ML travaillant pendant quelques mois à une douzaine d'ingénieurs travaillant jusqu'à deux ans.
Étant donné que l'ensemble de ce processus peut prendre jusqu'à deux ans et qu'une maintenance est nécessaire, vous voudrez peut-être identifier soigneusement vos priorités et votre budget. N'oubliez pas que, si vous décidez de construire, vous ne pourrez pas réaliser d'expériences et vous concentrer sur la science des données.
Alors qu'avec une plateforme existante, vous pouvez itérer dès le départ, au fur et à mesure que votre plateforme mûrit à différents stades du cycle de vie.
Quel est le coût de la mise en place d'une plateforme MLOps ?
Effectifs
Outre le temps nécessaire à la mise en place d'une solide plateforme MLOps, vous devez tenir compte d'autres facteurs économiques plus directs.
Non seulement vous devrez investir dans des data scientists, mais vous voudrez également disposer d'une équipe d'ingénieurs logiciels pour construire la plateforme et corriger tous les bugs qui pourraient survenir. Il est également important de former des équipes expérimentées dans toutes les parties de la pile MLOps, telles que l'infrastructure Cloud, la gestion des ressources de calcul, la configuration, le suivi des modèles, le déploiement et la surveillance (la liste est longue).
Parmi les postes que vous devrez couvrir, citons le(s) développeur(s) backend, le(s) ingénieur(s) de données, le(s) scientifique(s) de données, DevOps, et probablement un chef de projet.
Le coût des effectifs varie d'une année à l'autre et dépend de la ville. Au début de l'année 2022, nous avons fait une estimation en utilisant Glassdoor pour une équipe ML sur le marché de Paris (France). Pour une équipe multidisciplinaire de 6 membres travaillant pendant un an, il vous en coûtera environ 400 k€.
- Développeur backend : 65k € /an
- Ingénieur en données : 63k € /an
- Data scientist : 60k € /an
- DevOps : 72k € /an
- Chef de projet : 61k € /an
- Architecte en apprentissage automatique : 81k € /an
Les tâches des data scientists se situent généralement du côté de la construction de modèles et impliquent de traiter des données, des processus ML et des outils cloisonnés. Comme suggéré dans "Introducing MLOps. How to Scale Machine Learning in the Enterprise" (O'Reilly, 2020), les scientifiques des données devraient aller au-delà de ces tâches strictement ML et aider les experts en la matière (qu'il est également recommandé d'inclure dans l'équipe pour garantir le succès) à résoudre les problèmes de l'entreprise.
Les ingénieurs de données sont principalement chargés du stockage, de l'ordonnancement, du traitement et de la transformation des données nécessaires au cycle de vie de votre modèle ML. Et surtout, ils doivent s'assurer que tout se passe bien du point de vue de l'ingestion des données (ETL) et de l'infrastructure.
Les ingénieurs logiciels doivent collaborer avec les scientifiques des données pour s'assurer que le code, l'apprentissage, les tests et le déploiement du ML s'intègrent dans les pipelines CI/CD que le reste du logiciel utilise.
Les équipes DevOps sont chargées de la gestion du pipeline CI/CD, et sont généralement impliquées dans la conduction et la construction de systèmes opérationnels et de tests. Ceci est essentiel pour optimiser les performances de vos modèles ML. Les DevOps sont un pont entre les ingénieurs logiciels et les serveurs de production déployés, garantissant l'évolutivité des produits. Cependant, comme les principales plateformes de cloud computing ont grandement simplifié la gestion des serveurs, les rôles DevOps sont de plus en plus délaissés dans les petites équipes, car les ingénieurs logiciels peuvent se charger de cette tâche.
Les architectes du Machine Learning doivent s'assurer que l'architecture de l'entreprise répond à toutes les exigences en matière de données. Ils suggéreront les nouvelles technologies nécessaires à l'optimisation des performances des modèles ML. Pour cette raison, ils doivent constamment collaborer avec toutes les équipes afin d'allouer les ressources avec précision.
Source : Introducing MLOps. Comment faire évoluer l'apprentissage automatique dans l'entreprise. (Treveil M., l'équipe Daitaku, 2020)
Cloud Computing
En outre, vous devez prendre en compte le coût des ressources, par exemple en disposant de votre propre cluster de calcul ou en payant un fournisseur de cloud computing pour un ou plusieurs serveurs. Une plateforme de cloud computing pour le ML peut coûter environ 400 $/mois pour un serveur sans GPU, et 15 000 $ pour une infrastructure complète de back-office.
Si vous souhaitez estimer les coûts de vos plates-formes de cloud computing personnalisées, certaines des plates-formes les plus populaires proposent des calculateurs en ligne, comme celui-ci.
- Calculateur du cloud Amazon AWS
- Calculateur de cloud Google GCP
- Calculatrice Microsoft Azure Cloud
Pour en savoir plus sur la comparaison de ces trois plateformes de cloud computing, nous vous suggérons de lire cet article.
Au contraire, si vous décidez d'acheter une plateforme ML, vous utiliserez diverses ressources simultanément, notamment l'entraînement parallèle du modèle à effectuer et le réglage des hyperparamètres. Si vous décidez de faire ce processus vous-même, vous devrez gérer toutes les communications entre votre cluster et votre code. De plus, les outils ML incluent généralement la gestion des clusters pour nettoyer vos expériences après leur achèvement, évitant ainsi d'occuper le stockage de vos ressources.
Les outils ML s'intègrent souvent à diverses plateformes cloud, de sorte que vous pouvez choisir celle qui répond le mieux à vos besoins. En fait, Picsellia a conclu un partenariat avec OVH Cloud, le premier fournisseur de cloud européen, qui offre un stockage et des ressources robustes pour toutes vos données, expériences et modèles, ce qui augmente considérablement la vitesse d'itération.
Conclusion
Construire une plateforme ML complète à partir de zéro est une tâche exigeante qui vous coûtera beaucoup d'argent et de temps que vous pourriez utiliser pour faire des recherches, mener des expériences et développer votre produit. Si vous avez une petite équipe, vous pourriez envisager d'utiliser vos ressources pour le développement du produit plutôt que d'investir vos ressources à réinventer la roue.
Commencez par identifier les besoins de votre produit et ce que vous cherchez à réaliser avec une plateforme ML. Veillez à déterminer la portée de votre projet, notamment les fonctionnalités, la configuration requise et les besoins d'évolutivité. Une fois que vous avez ces éléments en tête, nous vous conseillons d'effectuer une recherche approfondie des plateformes MLOps disponibles, car il est probable que vous en trouviez une qui corresponde à vos besoins.
Nous ne vous suggérons de créer vos propres outils que lorsque vous avez déjà fait votre enquête et que vous n'avez toujours pas trouvé d'outil qui s'adapte à votre cas d'utilisation. Même dans ce cas, vous pouvez toujours ne construire qu'une partie du cycle de vie des MLOps - par exemple, un outil d'étiquetage spécifique - et acheter une plate-forme à laquelle vous pouvez vous intégrer et qui couvre le reste de la pile ML.
Si vous avez décidé d'acheter une plateforme ML complète ou de n'en construire qu'une partie, Picsellia a développé une plateforme robuste qui couvre l'ensemble du cycle de vie MLOps pour les projets de vision par ordinateur. Cela va de la gestion des données et du suivi des expériences au déploiement des modèles, en passant par la surveillance et les pipelines automatisés.
Si vous voulez commencer à itérer et à former vos modèles dès le départ, nous vous suggérons de tester Picsellia. Pour en savoir plus sur notre solution et comment elle peut répondre à vos besoins, n'hésitez pas à réserver une démo avec nous !