Versionnage des données et ML reproductible avec DVC et MLflow
30 sept. 2020
- Catégories
- Data Science
- DevOps & SRE
- Évènements
- Tags
- Data Engineering
- Databricks
- Delta Lake
- Git
- Machine Learning
- MLflow
- Storage [plus][moins]
Ne ratez pas nos articles sur l'open source, le big data et les systèmes distribués, fréquence faible d’un email tous les deux mois.
Notre présentation sur la gestion de versions sur des données et le développement reproductible d’algorithmes de Machine Learning proposé au Data + AI Summit (anciennement Spark + AI) est accepté. La conférence aura lieu en ligne les 17 et 19 novembre. L’inscription est maintenant ouverte, inscrivez-vous et rejoignez notre présentation. La discussion s’appuie sur deux articles publiés précédemment sur la façon d’utiliser DVC pour la gestion des versions des données et sur comment reproduire des expériences de Data Science avec MLflow. Voici ci-dessous notre proposition.
Le développement de Machine Learning implique la comparaison de modèles et le stockage des artefacts qu’ils ont produits. Nous comparons souvent plusieurs algorithmes pour sélectionner les plus efficaces. Nous évaluons différents hyper-paramètres pour affiner le modèle. Git nous aide à stocker plusieurs versions de notre code. En complément, il est nécessaire de garder une trace des jeux de données utilisés. Ceci est important non seulement à des fins d’audit mais aussi pour évaluer les performances des modèles, développés ultérieurement. Git est un outil de gestion des versions de code populaire dans le développement de logiciels. Il peut aussi être utilisé pour stocker vos jeux de données mais la solution n’est pas optimale.
Une solution alternative consiste à utiliser Data Version Control (DVC). Malgré son nom, il ne s’agit pas seulement d’un outil de gestion des versions de données. Il permet également le suivi des modèles et des pipelines. Il s’exécute par dessus Git, ce qui le rend facile à apprendre pour les utilisateurs déjà familiers à Git. Dans le même temps, il surmonte les limitations du stockage de gros fichiers en déléguant le stockage à un service distant (par exemple Azure, S3) et en ne conservant dans Git que leurs métadonnées.
MLflow est un outil qui s’intègre facilement au code de votre modèle et peut suivre les dépendances, les paramètres du modèle, les métriques et les artefacts. Chaque exécution est liée à un commit Git correspondant. Une fois le modèle entraîné, MLflow peut le conditionner sous différentes déclinaisons (par exemple, fonctions Python/R, H2O, Spark, TensorFlow…) prêt à être déployé. DVC fonctionne également avec Git. Lorsque MLflow vous aide à gérer le cycle de vie du Machine Learning, DVC vous aide à gérer vos jeux de données.
Dans ce tutorial, nous allons apprendre à tirer parti des capacités de ces puissants outils. Nous nous baserons sur un projet de ML typique et examinerons comment améliorer la reproductibilité de chaque étape.