BIGDATA#1 : Docker et Python pour la plate-forme Data Science de BNP Paribas

Afin de fédérer ses initiatives Big Data, BNP Paribas Personal Finance s’est doté d’un datalab en 2017. Une cellule qui a fait le choix de développer sa propre plate-forme de data science en misant sur une approche 100% Python.

Inauguré en 2017 à Paris, le DataLab de BNP Paribas Personal Finance compte aujourd’hui une vingtaine de personnes.

À l’image des grands groupes internationaux, BNP Paribas Personal Finance, la branche spécialisée dans les financements aux particuliers s’est dotée d’un DataLab voici déjà plusieurs années. L’idée de cette structure a été émise en 2016 et le DataLab a été officiellement inauguré début 2017. Physiquement localisé à Paris, il compte actuellement une vingtaine de personnes, mais tous les Data Scientists n’y sont pas concentrés comme l’explique Jérémie Guez, responsable du DataLab : « Le parti pris a été de créer ce centre de compétences en Data Science avec des Data Scientists qui lui sont rattachés, mais aussi maintenir des Data Scientists auprès des métiers, principalement auprès du Marketing, de la gestion du Risque et des Opérations. »

Directement rattaché à la DSI, ce pôle Data Science assume plusieurs missions. Il dispose de Data Scientists en propre qui mènent des projets pour les métiers qui ne disposent pas de ressources Big Data en propre. En outre, ceux-ci travaillent avec leurs alter egos dans les métiers en soutien sur tel ou tel projet si ceux-ci ont besoin de renforts. Ils interviennent également pour d’autres métiers qui ont moins de maturité ou pas la masse critique pour avoir besoin de Data Scientist permanents mais qui ont des données à analyser. Le but est de les faire gagner en maturité progressivement sur le Big Data. Enfin, sur les Data Sciences, le DataLab a pris le virage depuis un peu plus d’un an maintenant vers le traitement des données non structurées. « Même si nous faisions déjà beaucoup de Machine Learning avant, c’est le véritable début de l’Intelligence artificielle pour le DataLab », considère Jérémie Guez. « Pour moi, l’IA commence à partir du moment où l’on commence à s’intéresser à de la donnée non structurée, qu’il s’agisse de textes, d’images, de vidéos. Nous concentrons actuellement notre effort sur le volet compréhension du langage. »

Enfin, la troisième activité du DataLab porte sur la problématique de la mise en production des modèles élaborés par les Data Scientists. La plate-forme mise en place permet de faire de l’exploration sur les données, mais un gros travail a été mené sur l’automatisation du flux de livraison des modèles et faire en sorte de déployer les modèles le plus rapidement possible dès lors que le modèle est validé.

Une plate-forme « maison » préférée aux solutions éditeurs

Étonnamment, plutôt que de se tourner vers l’un des (nombreux) éditeurs qui proposent des plates-formes Big Data, l’équipe de BNP Paribas Personal Finance a préféré bâtir sa propre plateforme de Data Science, Sparrow. Cette plate-forme est clé dans la stratégie Big Data de Personal Finance car c’est elle qui permet à tous les Data Scientists de BNP Paribas Personal Finance de travailler sur les données et de développer ses modèles analytiques. C’est un outil commun qui permet au DataLab d’évangéliser les métiers sur la Data et qui donne accès à tous les Data Scientists à des outils puissants.

Jérémie Guez explique pourquoi ce choix de créer une plate-forme sur-mesure s’est imposé à BNP Paribas Personal Finance : « Initialement, c’est pour des raisons de sécurité que nous avons souhaité créer notre propre plateforme. Par ricochet, ce choix nous a permis de réaliser des économies et surtout d’être totalement indépendants dans nos choix vis-à-vis d’un éditeur de logiciel commercial qui aurait pu faire valoir sa propriété intellectuelle sur tel ou tel algorithme. » Ainsi, la banque garde une mainmise totale sur ses algorithmes et les packages mis à disposition de ses Data Scientists, en outre elle maîtrise totalement la sécurité des accès à ses données internes, stockées dans le Cloud privé BNP Paribas qui met en œuvre des infrastructures IBM.

Python s’est imposé sur la plate-forme

Au lancement du projet, les Data Scientists utilisaient essentiellement le langage R et le Python, mais l’équipe a décidé de capitaliser sur cette expertise Python si bien qu’aujourd’hui la plateforme est Full Python. Elle permet de développer les modèles en Python ou PySpark. En termes d’architecture technique, la plate-forme est 100 % en conteneurs Docker, ce qui permet à l’équipe du DataLab de proposer de multiples conteneurs à ses utilisateurs, en fonction de leurs besoins mais aussi de leurs préférences personnelles. « Nous leur offrons ainsi plusieurs écosystèmes de développement, selon que vous soyez un puriste qui préfère travailler en Shell avec un vim, ou le Data Scientist qui préfère les Jupyter Notebook, chacun peut avoir l’environnement de son choix en piochant dans les bons conteneurs. C’est particulièrement intéressant car notre plateforme s’adresse à différents profils de Data Scientists, et tout est parfaitement synchronisé. On peut commencer à développer un modèle en shell puis retrouver ce même modèle avec un autre outil. »

L’équipe de Jérémie Guez travaille aujourd’hui à l’évolution de cette approche microservices en déployant Kubernetes. « Lorsque nous avons bâti cette infrastructure, nous ne nous attendions pas à un tel succès. A l’époque nous étions 5 utilisateurs puis 7, puis 10. Aujourd’hui nous en sommes à 200 utilisateurs. Tous ne sont pas actifs, tous ne sont pas des Data Scientists, des Data Analysts peuvent aussi réaliser des opérations sur la plate-forme. »

La plate-forme bénéficie d’un GitLab privé qui permet d’offrir un écosystème IT et Data très complet aux Data Scientists et Data Analysts, notamment sur la thématique DevOps qui constitue une priorité pour ITG. Une priorité a été donnée sur le volet industrialisation des déploiements des modèles avec une chaîne d’intégration continue dans la lignée de ce que fait BNP Paribas dans le DevOps.

L’architecture logicielle de la plate-forme de Data Science de BNP Paribas Personal Finance fait la part belle aux solutions open source. Elle s’appuie désormais essentiellement sur Python et Docker.

Le Data Lake, prochain chantier du DataLab Personal Finance

Actuellement, cette plate-forme Data Science n’est pas directement connectée à un Data Lake. Les données sont stockées dans les Data Warehouse historiques de BNP Paribas et l’accès aux données est un processus très cadré par le service juridique. « Nous sommes en train de construire notre Data Lake et c’est l’un de nos grands chantiers pour ce premier trimestre 2019. Demain, le Data Lake pourra, par construction, collecter les données à destination de plusieurs services, dont notre plate-forme Data Science mais aussi un service de Business Intelligence, de Data Visualization, etc. C’est cette capacité à pouvoir délivrer des données à de multiples services qui nous demande un peu plus de temps d’implémentation. Le principal frein, c’est de trouver le juste équilibre entre des technologies qui évoluent encore très vite et une DSI qui doit délivrer des services robustes. »

Désormais, c’est sur le traitement du langage que l’équipe de Jérémie Guez compte faire prendre de l’avance à BNP Paribas Personal Finance.

Cet article est paru dans le dossier Big Data de L'Informaticien n°175.