Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Netflix : Metaflow, notre framework Python pour une data science plus rapide,
Est maintenant disponible en open source

Le , par Stan Adkens

71PARTAGES

9  0 
Metaflow est un framework Python qui facilite l’exécution de projets machine learning depuis le stade du prototype jusqu’à la production. L'outil de Netflix aide les spécialistes des données à déployer plus rapidement des modèles d'apprentissage machine pour la production. Le géant de la diffusion vidéo en continu dit avoir utilisé Metaflow en interne au cours des deux dernières années pour créer et gérer des centaines de projets de science des données, du traitement du langage naturel à la recherche opérationnelle.

Pour aider les scientifiques des données de toutes les entreprises, l'équipe data-science de Netflix a ouvert sa bibliothèque Python Metaflow, selon un article de blog que l’équipe a publié sur Medium le mardi dernier. Metaflow est un élément clé de l'infrastructure d'apprentissage machine « centrée sur l'humain » que l’équipe data-science utilise pour construire et déployer des flux de travail dans le cadre de son activité. Netflix utilise l'apprentissage automatique dans tous les aspects de ses activités, de l'analyse de scénarios à l'optimisation des calendriers de production, en passant par la prévision du taux de désabonnement, la tarification, la traduction et l'optimisation de son vaste réseau de distribution de contenu.


Selon l’article de blog, Netflix dit être parti d’une observation clé pour aboutir à la mise en de son framework. En effet, selon l’entreprise, la plupart de ses spécialistes des données n'avaient rien contre l'écriture de code Python. Ce qu’ils voulaient, c’est de pouvoir conserver la liberté d'utiliser du code Python arbitraire et idiomatique pour exprimer leur logique métier – comme ils le feraient dans un notebook Jupyter. Ces scientifiques des données aiment exprimer la logique métier à travers le code Python, mais ne veulent pas perdre leur temps.

« Cependant, ils ne veulent pas passer trop de temps à penser aux hiérarchies d'objets, aux problèmes d'empaquetage ou à gérer des API obscures sans rapport avec leur travail. L'infrastructure devrait leur permettre d'exercer leur liberté en tant que spécialistes des données, mais elle devrait fournir suffisamment de glissières de sécurité et d'échafaudages pour qu'ils n'aient pas à se soucier trop de l'architecture logicielle », lit-on dans l’article de blog de Netflix.

A partir de cette observation, l'idée derrière Metaflow est donc de donner aux spécialistes des données de Netflix la possibilité de voir très tôt si un modèle prototypé échouerait en production, ce qui leur permettrait de résoudre le problème quel qu'il soit et, idéalement, d'accélérer le déploiement. Netflix a, par ailleurs, révélé lors des conférences QCon à San Francisco en novembre 2018 que Metaflow avait contribué à réduire le temps moyen de déploiement de quatre mois à seulement sept jours.

« Metaflow vous aide à concevoir votre flux de travail, à l'exécuter à l'échelle et à le déployer en production. Il versionne et suit automatiquement toutes vos expériences et données. Il vous permet d'inspecter facilement les résultats dans les ordinateurs portables », c’est une description succincte que fait Netflix de sa bibliothèque Python sur son nouveau site Web metaflow.org.


Selon l’illustration ci-dessus, les spécialistes des données peuvent structurer leur flux de travail sous la forme d'un graphique acyclique dirigé (DAG) des étapes. Les étapes peuvent être du code Python arbitraire. Dans cet exemple hypothétique, le flux entraîne deux versions d'un modèle en parallèle et choisit celle qui obtient le score le plus élevé. Selon l’équipe data-science de Netflix, il existe de nombreux frameworks existants, comme Apache Airflow ou Luigi, qui permettent l'exécution de DAGs composés de code Python arbitraire, à la différence que de nombreux détails ont été inclus dans Metaflow.

Par exemple, « dans de nombreux autres frameworks, le chargement et le stockage des artefacts sont laissés à l'utilisateur comme un exercice, ce qui l'oblige à décider ce qui doit ou non être conservé. Metaflow élimine cette surcharge cognitive », a écrit Netflix. Metaflow peut également être utilisé avec les bibliothèques Python de sciences de données populaires, y compris PyTorch, Tensorflow et SciKit Learn.

Netflix, l'un des plus grands utilisateurs d'Amazon Web Services

Metaflow est un framework natif du cloud, tirant parti de l'élasticité du nuage de par sa conception, tant pour le calcul que pour le stockage. Et Netflix, qui est l'un des plus grands utilisateurs des services Web d'Amazon (AWS) depuis de nombreuses années, a pu accumuler beaucoup d'expérience opérationnelle et d'expertise dans le traitement du cloud, AWS en particulier. Il n’est donc pas étonnant que, dans le cadre de la version open source de son framework, l’entreprise se soit associée à AWS pour assurer une intégration transparente entre Metaflow et les différents services AWS.

Metaflow s'intègre à de nombreux services AWS, y compris la possibilité de faire un aperçu tout le code et les données dans Amazon S3, que Netflix utilise comme son " lac de données ". La société dispose ainsi d'une solution complète de gestion des versions et de suivi des expériences sans aucune intervention de l'utilisateur. Cette capacité devrait aider les utilisateurs à mettre rapidement à l'échelle les modèles en utilisant les services de stockage, de calcul et d'apprentissage machine d'AWS.

De plus, Metaflow est livré avec un client S3 haute performance qui peut charger des données jusqu'à 10 Gbps. D’après Netflix, « ce client a été massivement populaire parmi nos utilisateurs, qui peuvent maintenant charger les données dans leurs flux de travail un ordre de grandeur plus rapidement qu'auparavant, permettant ainsi des cycles d'itération plus rapides ».


Le client permet aux spécialistes des données de n'importe quelle organisation de réaliser ce que les spécialistes des données de Netflix ont pu faire au cours des dernières années. Par exemple, Netflix a révélé en avril dernier qu'il utilisait Metaflow pour « repousser les limites de Python », lui permettant d'utiliser « du code Python parallélisé et optimisé pour récupérer des données à 10 Gbps, gérer des centaines de millions de points de données en mémoire, et orchestrer le calcul sur des dizaines de milliers de cœurs CPU ».

Selon Netflix, bon nombre des périphériques composant Open Connect, son réseau de diffusion de contenu, sont principalement gérés par des applications Python, qui effectuent différentes tâches telles que le suivi de l'inventaire des périphériques réseau, de leur état et de leur emplacement. Divers logiciels sont nécessaires à la conception, à la construction et à l'exploitation de leur infrastructure CDN (réseau de diffusion de contenu), et un nombre important d'entre eux sont écrits en Python. Les périphériques réseau qui sous-tendent une grande partie du CDN sont principalement gérés par les applications Python.

Metaflow s'intègre également à Batch, la plateforme de calcul basée sur les conteneurs AWS. Netflix soutient que Metaflow sur AWS permet aux développeurs d'obtenir la vitesse de développement sur un ordinateur portable, avec les ressources de calcul plus profondes disponibles dans le cloud. En production, dans le cadre de l’open source, Netflix veut compter sur AWS Step Functions à la place de Meson – son cadre général où les utilisateurs peuvent exporter leurs cycles Metaflow pour exécution avec une seule commande. Meson n'est pas disponible en open source.

Sources : Medium

Et vous ?

Que pensez-vous de Metaflow rendu open source ?
Utilisez-vous Metaflow ? Quels avantages offre-t-il maintenant qu’il est en open source et intégré avec les différents services AWS.

Lire aussi

Netflix : Python est derrière chaque film que vous regardez, voici comment l'entreprise utilise le langage de programmation pour ses services
:fleche : Un ingénieur en informatique de Netflix gagne plus de 300 000$ par année, pourquoi cette entreprise paie-t-elle plus que Google et Facebook ?
Python va supprimer les termes "master/slave" de sa documentation et sa base de code, pour des raisons de diversité et leur connotation à l'esclavage
Python est sacré langage de programmation de l'année 2018 par l'index TIOBE, deviendra-t-il le langage le plus utilisé des programmeurs ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de defZero
Membre extrêmement actif https://www.developpez.com
Le 06/12/2019 à 16:14
Que pensez-vous de Metaflow rendu open source ?
Dans l'absolue, c'est toujours pour le mieux quand un projet fermé devient open source.
Après, je pense qu'il y a une oxymore dans la raison d'être de ce framework : "Metaflow, notre framework Python pour une data science plus rapide est disponible en open source".
S'ils voulaient vraiment quelque chose de plus rapide, pourquoi s'en tenir à Python (langage de scripting & généraliste) ?
Non, parce qu'un bon DSL sur un moteur en Fortran/C aurait me semble t-il était un meilleur choix pour le but recherché .
Mais, bon que voulez-vous, ils veulent absolument tout faire en Python/JS, grand bien leur fasse.

Utilisez-vous Metaflow ? Quels avantages offre-t-il maintenant qu’il est en open source et intégré avec les différents services AWS.
Non, je ne fait pas dans le SM .
En ce qui concerne les avantages qu'apportent une intégration à AWS, je dirais qu'il s'agit d'un projet fait par et pour Netflix, donc ils ont composés avec leur environnement de travail et c'est plutôt sains.
Après dire si c'est un avantage, c'est une question de contexte de projet.
Si vous utilisez déjà le cloud Amazon, c'est forcement plus pertinent que si vous avez votre stack sur Azure, GWS ou autre cloud privé (OpenStack, ...etc).

Sinon, bon article et merci à l'auteur
3  0 
Avatar de ddoumeche
Membre extrêmement actif https://www.developpez.com
Le 06/12/2019 à 18:52
Ce gif animé a l'air extrêmement lent, surtout pour un pauvre Helloworld parallélisé sur 8 serveurs.

Cela vient-il de la plate-forme AWS, de python ou du framework lui même ?
1  0