Guide de démarrage rapide pour Sagemaker + Snowflake (première partie)

Guide de démarrage rapide pour Sagemaker + Snowflake (première partie)


L’apprentissage automatique (ML) et l’analyse prédictive deviennent rapidement des outils irremplaçables pour les petites startups et les grandes entreprises. Les questions auxquelles ML peut répondre sont illimitées. Par exemple, vous voudrez peut-être demander : « Quel travail intéresserait quelqu’un en fonction de ses intérêts ou des intérêts de demandeurs d’emploi comme lui ? » Ou, « Cette tentative d’accès au réseau est-elle une indication d’un intrus? » Ou, « Quel type d’utilisation de carte de crédit indique une fraude ? »

La mise en place d’un environnement d’apprentissage automatique, en particulier pour l’infrastructure sur site, présente des défis. Une équipe d’infrastructure doit demander des machines physiques et/ou virtuelles, puis créer et intégrer ces ressources. Cette approche est à la fois chronophage et sujette aux erreurs en raison du nombre d’étapes manuelles impliquées. Cela peut fonctionner dans un petit environnement, mais la tâche devient exponentiellement plus compliquée et peu pratique à grande échelle.

Il existe de nombreux systèmes de ML parmi lesquels choisir, y compris TensorFlow, XGBoost, Étincelle ML et MXNet, pour n’en nommer que quelques-uns. Ils viennent tous avec leurs propres guides d’installation, configuration système requise et dépendances. De plus, la mise en œuvre n’est que la première étape. Le prochain défi consiste à déterminer comment rendre la sortie de l’étape d’apprentissage automatique (par exemple, un modèle) disponible pour la consommation. Ensuite, tous les composants de création d’un modèle au sein du niveau d’apprentissage automatique et l’accès au modèle au niveau de l’API doivent être mis à l’échelle pour fournir des prédictions en temps réel. Enfin, l’équipe doit déterminer où stocker toutes les données nécessaires à la construction du modèle.

La gestion de l’ensemble de ce processus de bout en bout devient beaucoup plus facile lorsque vous utilisez des technologies basées sur le cloud. La possibilité de provisionner l’infrastructure à la demande (IaaS) résout le problème de la demande manuelle de machines virtuelles. Il fournit également un accès immédiat aux ressources de calcul dès qu’elles sont nécessaires. Mais cela laisse toujours les frais administratifs liés à la gestion du logiciel ML et de la plate-forme pour stocker et gérer les données.

Lors de la conférence des développeurs AWS de l’année dernière, AWS a annoncé Sagemakerun « Service d’apprentissage automatique de bout en bout entièrement géré qui permet aux scientifiques des données, aux développeurs et aux experts en apprentissage automatique de créer, former et héberger rapidement des modèles d’apprentissage automatique à grande échelle. »

Sagemaker peut accéder aux données de nombreuses sources différentes (en particulier les noyaux sous-jacents comme Python, PySparkNameSpark et R), et accéder aux données fournies par Flocon de neige. Le stockage des données dans Snowflake présente également des avantages significatifs.

Source unique de vérité

Si les données sont stockées à plusieurs endroits, ces emplacements seront inévitablement désynchronisés. Même si les données sont censées être immuables, un emplacement est souvent modifié pour résoudre un problème pour un système alors que d’autres emplacements ne le sont pas. En revanche, si les données sont stockées dans un référentiel central, évolutif et de niveau entreprise, elles servent de « source unique de vérité », car la synchronisation des données est facilitée. Différents outils ne sont pas nécessaires pour les données structurées et semi-structurées. Les données peuvent être modifiées de manière transactionnelle, ce qui réduit immédiatement le risque de problèmes.

Raccourcir le cycle de préparation des données

Selon un étude publié dans Forbes, la préparation des données représente environ 80% du travail effectué par les data scientists. Raccourcir le cycle de préparation des données a donc un impact majeur sur l’efficacité globale des data scientists.

Snowflake est particulièrement bien placé pour raccourcir le cycle de préparation des données grâce à son excellente prise en charge des données structurées et semi-structurées dans le langage SQL. Cela signifie que les données semi-structurées et les données structurées peuvent être analysées, combinées, jointes et modifiées de manière transparente via des instructions SQL dans des opérations basées sur des ensembles. Cela permet aux data scientists d’utiliser la puissance d’un moteur SQL complet pour un nettoyage et une préparation rapides des données.

Échelle au fur et à mesure

Un autre problème que les implémenteurs ML rencontrent fréquemment est ce que nous appelons chez Snowflake le syndrome « ​​fonctionne sur ma machine ». Les petits ensembles de données fonctionnent facilement sur une machine locale, mais lorsqu’ils sont migrés vers la taille de l’ensemble de données de production, la lecture de toutes les données sur une seule machine ne s’adapte pas ou peut se comporter de manière inattendue. Même s’il termine le travail, le chargement d’un ensemble de données de la taille d’un téraoctet peut prendre des heures. Dans Snowflake, il n’y a pas d’infrastructure qui doit être provisionné, et la fonction d’élasticité de Snowflake vous permet de mettre à l’échelle horizontalement et verticalement, le tout en appuyant sur un bouton.

Connecter Sagemaker et Snowflake

Sagemaker et Snowflake utilisent tous deux l’infrastructure cloud en tant qu’offre de service d’AWS, ce qui nous permet de construire l’infrastructure quand nous en avons besoin, là où nous en avons besoin (géographiquement) et à n’importe quelle échelle requise.

Étant donné que la construction des services est simplifiée avec Sagemaker et Snowflake, la question est de savoir comment connecter les deux services. Et c’est exactement le sujet des parties suivantes de ce post. Comment démarrer ? De quelle configuration supplémentaire avez-vous besoin dans AWS pour la sécurité et la mise en réseau ? Comment stockez-vous les informations d’identification ?

Dans la deuxième partie de ce blog en quatre parties, j’expliquerai comment créer un environnement Sagemaker ML dans AWS à partir de zéro. Dans le troisième article, je vais tout rassembler et vous montrer comment connecter un Jupyter Notebook à Snowflake via le connecteur Snowflake Python. Avec le connecteur Python, vous pouvez importer des données de Snowflake dans un Jupyter Notebook. Une fois connecté, vous pouvez commencer à explorer les données, exécuter des analyses statistiques, visualiser les données et appeler les interfaces Sagemaker ML.

Cependant, pour effectuer une analyse à grande échelle, vous ne voulez vraiment pas utiliser une seule configuration de serveur comme Jupyter exécutant un noyau python. Jupyter exécutant un noyau PySpark sur un cluster Spark sur EMR est une bien meilleure solution pour ce cas d’utilisation. Ainsi, dans la quatrième partie de cette série, je vais connecter un Cahier Jupyter à une instance Spark locale et à un cluster EMR à l’aide du connecteur Snowflake Spark.

La différence Snowflake

Snowflake est le seul entrepôt de données conçu pour le cloud. Snowflake offre les performances, la simultanéité et la simplicité nécessaires pour stocker et analyser toutes les données disponibles pour une organisation en un seul endroit. La technologie de Snowflake combine la puissance de l’entreposage de données, la flexibilité des plateformes de mégadonnées, l’élasticité du nuage et le partage de données en direct à une fraction du coût des solutions traditionnelles. Snowflake : vos données, sans limites.

Vous pouvez consulter toute la série de blogs ici : Pun art > Deuxième partie > Partie trois > Quatrième partie.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.