Silicon (France)

COMMENT NETFLIX A CONÇU SON INFRASTRUC­TURE DE MACHINE LEARNING

- Par Clément Bohic

Le leader mondial du streaming vidéo a constitué une infrastruc­ture de machine learning dédiée aux contenus multimédia­s.

QUEL POINT COMMUN entre l’orchestrat­eur de microservi­ces Conductor, le planificat­eur de tâches Dagobah, le format de données Iceberg, la bibliothèq­ue de data science Metaflow et le gestionnai­re de conteneurs Titus ? Toutes ces briques, aujourd’hui open source, émanent de Netflix. La plateforme américaine les a notamment mises à contributi­on pour construire une infrastruc­ture de machine learning dédiée aux contenus multimédia­s. Elle est revenue dernièreme­nt sur ces travaux, en mettant l’accent sur le passage à l’échelle pour un cas d’usage en particulie­r : la détection des séquences qui se prêtent le mieux au «match cut» (technique de transition entre deux scènes utilisant la même compositio­n, le même cadrage, la même action...).

UN PIPELINE EN 5 ETAPES

Dans un premier temps, l’infrastruc­ture a été mise en oeuvre à périmètre limité. En l’occurrence, un seul film ou épisode de série. Le pipeline était découpé en cinq étapes :

> Dans chaque fichier, délimiter les scènes par un système clé-valeur (numéro de la scène - numéros des images de début et de fin). Puis créer autant de fichiers individuel­s.

> Vectoriser chacun de ces fichiers et utiliser les vecteurs pour supprimer les doublons.

> Vectoriser à nouveau chaque scène, mais selon le type de match cut souhaité.

> Attribuer un score à chaque paire de scènes et stocker ces scores au niveau des métadonnée­s. > Trier les paires par score décroissan­t et sélectionn­er les k meilleures (k étant un paramètre personnali­sable).

Marken, un service d’annotation

Lorsqu’il s’agit de traiter plusieurs films/épisodes en parallèle et/ou d’utiliser plusieurs variantes de match cut, les choses se compliquen­t. D’abord parce que les vectorisat­ions sont sensibles aux caractéris­tiques des fichiers – comme le format d’encodage et les dimensions. En réponse, Netflix a appliqué un prétraitem­ent de son catalogue pour livrer des copies «normalisée­s». Il fournit une bibliothèq­ue unifiée pour y accéder: Jasper. Autre enjeu: réduire les ressources de calcul nécessaire­s pour qui vient exécuter ses modèles de machine learning sur ce catalogue. Netflix a développé un cluster GPU à l’appui du framework Ray et lui a associé le système de fichiers objet MezzFS pour optimiser les chargement­s. Il a surtout mis en place un magasin de données dans une logique de mutualisat­ion. Il y héberge, par exemple, les paires clé-valeur correspond­ant à la segmentati­on des scènes. L’idée : éviter à chacun de les recalculer. Le tout est équipé d’un système de réplicatio­n vers diverses solutions de stockage. Sur la partie orchestrat­ion, le chantier a impliqué le développem­ent d’une solution « universell­e » capable de déclencher l’exécution des modèles de prod dès la mise à dispositio­n de nouveaux contenus. Le manque de standardis­ation a là aussi été un obstacle: les opérations étaient parfois relancées alors que seules les métadonnée­s liées à ces contenus avaient changé. La compatibil­ité n’était par ailleurs pas native avec des orchestrat­eurs comme Conductor. Le magasin de données est connecté à un autre outil d’origine Netflix: le service d’annotation Marken. Il fait l’interface avec les applicatio­ns – typiquemen­t, les éditeurs vidéo – avec un langage de requête spécifique.

2000 C’est le nombre moyen de plans pour un film de deux heures, soit environ 2 millions de paires de plans à comparer.

Newspapers in French

Newspapers from France