Snowflake place Python au cœur de sa stratégie applicative
Attendu de longue date, le support de Python par Snowflake entre enfin en préversion publique. Cette capacité est clé pour accueillir des algorithmes de machine learning sur le data warehouse cloud. Elle s’inscrit désormais dans une stratégie plus globale d’enrichissement de la place de marché Snowflake.
Le fournisseur du data warehouse cloud éponyme avait présenté cette fonctionnalité à un petit nombre de clients dès la fin de l’année 2021. Le « Data Cloud » supportait déjà les workloads Java et Scala via les User Defined Functions (UDF) et la bibliothèque d’API Snowpark.
Dans la même veine, le code Python peut être exécuté à côté du moteur du data warehouse dans une « sandbox sécurisée ». Il faut d’abord spécifier une fonction tabulaire UDF (UDTF) pour que l’entrepôt de données interprète le code Python en requêtes SQL. L’interface Worksheet, qui permet originellement d’écrire des requêtes SQL, sera prochainement compatible – en préversion publique – avec le langage de programmation.
Outre la possibilité de se connecter à l’API depuis un notebook Jupyter, Snowflake a rappelé son partenariat avec Anaconda. Cet éditeur propose environ 1 000 packages et frameworks (Scikit-learn, XGBoost, TensorFlow, Pytorch, Numpy, Geopandas, etc.) Python pour développer des algorithmes ou lancer des modèles préentraînés.
Snowpark for Python, une fonctionnalité très attendue par les clients par Snowflake
Pendant la conférence Snowflake Summit 2022, les porte-parole du fournisseur et ceux d’Anaconda ont démontré que Snowpark for Python peut servir à entraîner et inférer des modèles de différentes sortes : extractions d’entités nommées, prédictions, classifications (gradient boosting), etc.
Si ces fonctions sont plutôt utiles pour les data scientists et les data engineers, elles servent généralement dans la phase de feature engineering. Ces techniques peuvent aussi propulser des modèles ML simples, ceux que les entreprises sont plus à même de déployer en production.
Christian KleinermanSVP Product Management, Snowflake
Cette promesse de Snowflake résonne chez les clients. « Python est sans doute le langage de programmation et de manipulation de données le plus réclamé par nos clients », affirme Christian Kleinerman, SVP Product Management chez Snowflake, lors d’une conférence de presse en amont de l’événement. Les dires du dirigeant se vérifient chez les clients français du groupe américain.
Le label de musique français Believe est le seul ou l’un des seuls clients européens à avoir pu essayer Snowpark for Python. Novartis est également intéressée par la fonctionnalité : le laboratoire pharmaceutique emploie environ 2 000 data scientists qui développent des modèles R et Python depuis d’autres environnements. Les startups Swile (anciennement Lunchr) et Pricemoov accueillent favorablement Snowpark for Python.
Selon leurs dires, ces utilisateurs attendent les mêmes avantages qu’ils observent au quotidien avec le « Data Cloud » : la robustesse de la plateforme, des performances satisfaisantes et la relative simplicité d’administration.
« Cela [Snowpark for Python] va couvrir beaucoup de cas d’usage », anticipe Paolo Torzi, Head of data chez Swile. « Il n’y aura pas besoin d’adopter une autre solution […] et cela permettra de simplifier les workflows de data science ».
En l’occurrence, Snowflake promet que les sandbox bénéficient du même accès aux ressources serverless. Des capacités que les partenaires de Snowflake, éditant une plateforme de data science (dont DataRobot, H20 et Dataiku), comptent également utiliser pour convaincre les clients du « Data Cloud ». Car Snowpark peut aussi servir à pousser des modèles depuis ces outils spécialisés au plus près des tables du data warehouse.
Paolo TorziHead of data, Swile
Les limites connues de Snowpark for Python
Dans un premier temps, il ne faut pas s’attendre à ce que Snowpark accueille les modèles ML et de deep learning les plus avancés. Bien conscient que les plus grosses charges de travail mettront à mal les capacités de ses instances en matière de consommation de mémoire, le fournisseur développe des instances Large Memory Warehouse capables en principe de les supporter.
Pour le moment, Snowflake ne met pas à disposition d’instances dotées de GPU, ce qui réduit les possibilités, notamment en matière de NLP et de computer vision. En outre, dans un premier temps, l’inférence des modèles se fera uniquement en batch. Mais de l’avis des clients, le support de Python par Snowflake pourrait remettre en question leur utilisation d’autres solutions déjà déployées dans leur SI.
Ce ne sont que des souhaits formulés par des utilisateurs qui ont rapidement vu l’intérêt du support de Python par le fournisseur. De plus, ils attendent depuis près de deux ans cette capacité. À savoir pourquoi la prise en charge de ce langage de programmation a pris autant de temps chez Snowflake, Benoît Dageville, cofondateur et président des produits chez Snowflake, et Christian Kleinerman font la même réponse. « Ce n’est pas la prise en charge de Python qui est difficile, c’est le fait de le faire dans un environnement qui ne risque pas de mettre à mal la sécurité des données des clients ».
Les discussions avec les partenaires semblent participer à ce retard. De fait, Snowflake compte faire des capacités de développement par-dessus son data warehouse un argument de poids pour enrichir l’offre disponible sur sa marketplace. En ce sens, le fournisseur compte ouvrir le code des API de Snowpark. Tout comme il espère convaincre les éditeurs, les ESN et ses clients de proposer des algorithmes et des applications packagées sur sa place de marché, en sus des jeux de données déjà vendus par 260 entreprises.
Les native applications, de nouveaux actifs dans la marketplace Snowflake
Pour cela, le fournisseur a introduit Snowflake Native Applications. « L’objectif principal est de vous permettre de rapprocher les applications de vos données et de créer, de monétiser et de déployer des applications entièrement dans le Data Cloud », affirme Chris Child, Senior Director, Product Management chez Snowflake.
Plus spécifiquement, ces applications natives sont « un moyen pour packager un ensemble d’objets Snowflake et de les déployer de manière sécurisée via la marketplace Snowflake au sein des comptes des clients », précise le directeur.
Ces objets sont des tables et des procédures stockées, à savoir du code procédural qui exécute des requêtes SQL. Ce sont les mêmes capacités mises en branle pour intégrer Streamlit. Snowflake a racheté la startup éponyme, au début du mois de mars 2022 pour 800 millions de dollars, qui revendique 10 millions de téléchargements de son logiciel rassemblant une communauté de 50 000 développeurs.
Streamlit est une librairie Python open source pour créer des web apps consacrées aux projets de machine learning et de deep learning, plus précisément des front-ends pour visualiser et manipuler les résultats d’un algorithme. Tout comme les natives apps, Streamlit devra permettre aux partenaires et aux clients de Snowflake de proposer des applications et des algorithmes prépackagés sur la marketplace.
En l’occurrence, les applications et les modèles qui commencent à apparaître sur la plateforme ont des UI simplistes ou inexistantes. « Une fois que Streamlit sera inclus dans Snowflake, vous serez susceptible de bâtir des applications relativement complexes sous forme de native apps », assure Chris Child.
Ces natives apps tireront non seulement parti de Snowpark, mais également d’Unistore, un moteur de traitement translytique, et du support des tables Apache Iceberg. Ces deux capacités annoncées lors de la conférence annuelle du fournisseur sont les fondations nécessaires pour héberger des applications sur la plateforme.
Une vision à long terme
Benoît DagevilleCofondateur et président des produits, Snowflake
Les promesses foisonnent et la route semble longue. Selon les estimations du MagIT, basées sur la précédente fournée de fonctionnalités présentées en 2020, il faut s’attendre à ce que la majorité des fonctionnalités dévoilées ces derniers jours soient disponibles dans deux ans, à l’horizon 2024.
Questionné par LeMagIT à ce sujet, Benoît Dageville semble confirmer cette observation. « Tous les deux à trois ans, nous étendons ce qu’est Snowflake. Dans un même temps, nous travaillons beaucoup sur les technologies de data warehousing, de big data et de data lake. Cela ne s’arrête jamais », répond-il. « Nous ne sommes plus une petite entreprise et nous avons de grandes ambitions », ajoute-t-il. S’il ne donne pas de chronologie précise, le dirigeant prévient qu’il faudra être « patient » pour voir se concrétiser tous ces projets.