Amazon Sage Maker est un service d'apprentissage automatique (ML) entièrement géré. Avec SageMaker, les data scientists et les développeurs peuvent créer et former rapidement et facilement des modèles ML, puis les déployer directement dans un environnement hébergé prêt pour la production. Sagemaker fournit une instance intégrée de bloc-notes de création Jupyter pour un accès facile à vos sources de données à des fins d'exploration et d'analyse, vous évitant ainsi de gérer des serveurs. Il fournit également des algorithmes ML courants optimisés pour s'exécuter efficacement sur des données extrêmement volumineuses dans un environnement distribué.
SageMaker exige que les données d'apprentissage d'un modèle ML soient présentes soit dans Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) ou Amazon FSx for Lustre (pour plus d'informations, consultez Accéder aux données de formation). Afin de former un modèle à l'aide de données stockées en dehors des trois services de stockage pris en charge, les données doivent d'abord être ingérées dans l'un de ces services (généralement Amazon S3). Cela nécessite la construction d'un pipeline de données (à l'aide d'outils tels que Gestionnaire de données Amazon SageMaker) pour déplacer des données vers Amazon S3. Cependant, cette approche peut créer un défi de gestion des données en termes de gestion du cycle de vie de ce support de stockage de données, d'élaboration de contrôles d'accès, d'audit des données, etc., le tout dans le but d'organiser les données de formation pendant la durée de la tâche de formation. Dans de telles situations, il peut être souhaitable que les données soient accessibles à SageMaker dans le support de stockage éphémère attaché aux instances de formation éphémères sans le stockage intermédiaire des données dans Amazon S3.
Ce post montre un moyen de le faire en utilisant Flocon comme source de données et en téléchargeant les données directement depuis Snowflake dans une instance de tâche SageMaker Training.
Vue d'ensemble de la solution
Nous utilisons les Ensemble de données sur le logement en Californie comme ensemble de données de formation pour ce poste et former un modèle ML pour prédire la valeur médiane de la maison pour chaque district. Nous ajoutons ces données à Snowflake en tant que nouveau tableau. Nous créons un conteneur de formation personnalisé qui télécharge les données directement de la table Snowflake dans l'instance de formation plutôt que de télécharger d'abord les données dans un compartiment S3. Une fois les données téléchargées dans l'instance d'entraînement, le script d'entraînement personnalisé effectue des tâches de préparation des données, puis entraîne le modèle ML à l'aide du Estimateur XGBoost. Tout le code pour ce poste est disponible dans le GitHub repo.
La figure suivante représente l'architecture de haut niveau de la solution proposée pour utiliser Snowflake comme source de données pour former des modèles ML avec SageMaker.
Les étapes du flux de travail sont les suivantes :
- Configurer un bloc-notes SageMaker et un Gestion des identités et des accès AWS (IAM) avec les autorisations appropriées pour permettre à SageMaker d'accéder Registre des conteneurs élastiques Amazon (Amazon ECR), Secrets Manager et d'autres services au sein de votre compte AWS.
- Stockez les informations d'identification de votre compte Snowflake dans AWS Secrets Manager.
- Ingérez les données dans une table de votre compte Snowflake.
- Créez une image de conteneur personnalisée pour la formation du modèle ML et transmettez-la à Amazon ECR.
- Lancez une tâche de formation SageMaker pour former le modèle ML. L'instance de formation récupère les informations d'identification Snowflake à partir de Secrets Manager, puis utilise ces informations d'identification pour télécharger directement l'ensemble de données à partir de Snowflake. Il s'agit de l'étape qui élimine le besoin de télécharger d'abord les données dans un compartiment S3.
- Le modèle ML formé est stocké dans un compartiment S3.
Pré-requis
Pour mettre en œuvre la solution fournie dans cet article, vous devez disposer d'un Compte AWSun Compte flocon de neige et familiarité avec SageMaker.
Configurer un bloc-notes SageMaker et un rôle IAM
Nous utilisons AWS CloudFormation pour créer un bloc-notes SageMaker appelé aws-aiml-blogpost-sagemaker-snowflake-example
et un rôle IAM appelé SageMakerSnowFlakeExample
. Choisir Lancer la pile pour la région dans laquelle vous souhaitez déployer des ressources.
Stocker les identifiants Snowflake dans Secrets Manager
Stockez vos informations d'identification Snowflake en tant que secret dans Secrets Manager. Pour savoir comment créer un secret, reportez-vous à Create an AWS Secrets Manager secret
.
- Nommez le secret
snowflake_credentials
. Ceci est nécessaire car le code danssnowflake-load-dataset.ipynb
s'attend à ce que le secret s'appelle ainsi. - Créez le secret sous la forme d'une paire clé-valeur avec deux clés :
- Nom d'utilisateur – Votre nom d'utilisateur Snowflake.
- Mot de passe – Le mot de passe associé à votre nom d'utilisateur Snowflake.
Ingérer les données dans une table de votre compte Snowflake
Pour ingérer les données, procédez comme suit :
- Sur la console SageMaker, choisissez Carnets dans le volet de navigation.
- Sélectionnez le bloc-notes aws-aiml-blogpost-sagemaker-snowflake-example et choisissez Ouvrez JupyterLab.
- Selectionnez
snowflake-load-dataset.ipynb
pour l'ouvrir dans JupyterLab. Ce bloc-notes ingérera le Ensemble de données sur le logement en Californie à une table Snowflake. - Dans le bloc-notes, modifiez le contenu de la cellule suivante pour remplacer les valeurs d'espace réservé par celle correspondant à votre compte snowflake :
- Dans le menu Exécuter, choisissez Exécuter toutes les cellules pour exécuter le code dans ce notebook. Cela téléchargera l'ensemble de données localement dans le bloc-notes, puis l'ingérera dans la table Snowflake.
L'extrait de code suivant dans le bloc-notes ingère l'ensemble de données dans Snowflake. Voir le snowflake-load-dataset.ipynb
cahier pour le code complet.
- Fermez le bloc-notes une fois que toutes les cellules ont été exécutées sans aucune erreur. Vos données sont maintenant disponibles dans Snowflake. La capture d'écran suivante montre le
california_housing
tableau créé dans Snowflake.
Exécutez le sagemaker-snowflake-example.ipynb
cahier
Ce bloc-notes crée un conteneur de formation personnalisé avec une connexion Snowflake, extrait les données de Snowflake dans le stockage éphémère de l'instance de formation sans les mettre en scène dans Amazon S3, et effectue la formation du modèle XGBoost Distributed Data Parallel (DDP) sur les données. La formation DDP n'est pas requise pour la formation du modèle sur un si petit ensemble de données ; il est inclus ici pour illustrer une autre fonctionnalité SageMaker récemment publiée.
Créer un conteneur personnalisé pour la formation
Nous créons maintenant un conteneur personnalisé pour la tâche d'entraînement du modèle ML. Notez qu'un accès root est requis pour créer un conteneur Docker. Ce bloc-notes SageMaker a été déployé avec l'accès root activé. Si les politiques d'organisation de votre entreprise n'autorisent pas l'accès racine aux ressources cloud, vous pouvez utiliser le fichier Docker et les scripts shell suivants pour créer un conteneur Docker ailleurs (par exemple, votre ordinateur portable), puis le transmettre à Amazon ECR. Nous utilisons le conteneur basé sur l'image du conteneur SageMaker XGBoost 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
avec les ajouts suivants :
- La Connecteur flocon de neige pour Python pour télécharger les données de la table Snowflake vers l'instance de formation.
- Un script Python pour se connecter à Secrets Manager afin de récupérer les identifiants Snowflake.
L'utilisation du connecteur Snowflake et du script Python garantit que les utilisateurs qui utilisent cette image de conteneur pour la formation du modèle ML n'ont pas à écrire ce code dans le cadre de leur script de formation et peuvent utiliser cette fonctionnalité qui leur est déjà disponible.
Voici le fichier Dockerfile du conteneur d'entraînement :
L'image du conteneur est créée et transmise à Amazon ECR. Cette image est utilisée pour former le modèle ML.
Former le modèle ML à l'aide d'une tâche de formation SageMaker
Une fois que nous avons réussi à créer l'image du conteneur et à l'envoyer à Amazon ECR, nous pouvons commencer à l'utiliser pour la formation du modèle.
- Nous créons un ensemble de scripts Python pour télécharger les données de Snowflake en utilisant le Connecteur flocon de neige pour Python, préparez les données, puis utilisez le
XGBoost Regressor
pour former le modèle ML. C'est l'étape de téléchargement des données directement sur l'instance de formation qui évite d'avoir à utiliser Amazon S3 comme stockage intermédiaire pour les données de formation. - Nous facilitons la formation parallèle de données distribuées en faisant en sorte que le code de formation télécharge un sous-ensemble aléatoire de données de sorte que chaque instance de formation télécharge une quantité égale de données à partir de Snowflake. Par exemple, s'il existe deux nœuds d'entraînement, chaque nœud télécharge un échantillon aléatoire de 50 % des lignes de la table Snowflake. Consultez le code suivant :
- Nous fournissons ensuite le script de formation au SDK SageMaker
Estimator
avec le répertoire source afin que tous les scripts que nous créons puissent être fournis au conteneur de formation lorsque la tâche de formation est exécutée à l'aide duEstimator.fit
méthode:Pour plus d'informations, reportez-vous à Préparer un script de formation Scikit-Learn.
- Une fois la formation du modèle terminée, le modèle formé est disponible en tant que
model.tar.gz
fichier dans le bucket SageMaker par défaut pour la région :
Vous pouvez maintenant déployer le modèle entraîné pour obtenir des inférences sur de nouvelles données ! Pour obtenir des instructions, reportez-vous à Créez votre point de terminaison et déployez votre modèle.
Nettoyer
Pour éviter des frais futurs, supprimez les ressources. Pour ce faire, supprimez le modèle CloudFormation utilisé pour créer le rôle IAM et le bloc-notes SageMaker.
Vous devrez supprimer les ressources Snowflake manuellement depuis la console Snowflake.
Conclusion
Dans cet article, nous avons montré comment télécharger des données stockées dans une table Snowflake vers une instance de tâche SageMaker Training et former un modèle XGBoost à l'aide d'un conteneur de formation personnalisé. Cette approche nous permet d'intégrer directement Snowflake en tant que source de données avec un bloc-notes SageMaker sans que les données soient stockées dans Amazon S3.
Nous vous encourageons à en savoir plus en explorant les SDK Amazon SageMaker Python et la création d'une solution à l'aide de l'exemple d'implémentation fourni dans cet article et d'un ensemble de données pertinent pour votre entreprise. Si vous avez des questions ou des suggestions, laissez un commentaire.
À propos des auteurs
Amit Arora est un architecte spécialiste de l'IA et du ML chez Amazon Web Services, aidant les entreprises clientes à utiliser des services d'apprentissage automatique basés sur le cloud pour faire évoluer rapidement leurs innovations. Il est également chargé de cours auxiliaire dans le cadre du programme de science et d'analyse des données MS à l'Université de Georgetown à Washington DC.
Divya Muralidharan est architecte de solutions chez Amazon Web Services. Elle se passionne pour aider les entreprises clientes à résoudre des problèmes commerciaux grâce à la technologie. Elle est titulaire d'une maîtrise en informatique du Rochester Institute of Technology. En dehors du bureau, elle passe du temps à cuisiner, à chanter et à faire pousser des plantes.
Sergueï Ermolin est architecte principal des solutions AIML chez AWS. Auparavant, il était architecte de solutions logicielles pour les technologies d'apprentissage en profondeur, d'analyse et de mégadonnées chez Intel. Vétéran de la Silicon Valley passionné par l'apprentissage automatique et l'intelligence artificielle, Sergey s'intéresse aux réseaux de neurones depuis l'époque pré-GPU, lorsqu'il les a utilisés pour prédire le comportement de vieillissement des cristaux de quartz et des horloges atomiques au césium chez Hewlett-Packard. Sergey est titulaire d'un MSEE et d'un certificat CS de Stanford et d'un BS en physique et génie mécanique de la California State University, Sacramento. En dehors du travail, Sergey aime la vinification, le ski, le vélo, la voile et la plongée sous-marine. Sergey est également pilote bénévole pour Vol des anges.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Platoblockchain. Intelligence métaverse Web3. Connaissance Amplifiée. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :est
- $UP
- 1
- 10
- 7
- 8
- a
- A Propos
- accès
- accessible
- Compte
- ajouts
- Après
- à opposer à
- anti-âge
- AI
- Objectif
- algorithmes
- Tous
- permet
- déjà
- Amazon
- Amazon FSx
- Amazon Sage Maker
- Amazon Web Services
- montant
- selon une analyse de l’Université de Princeton
- analytique
- ainsi que
- Une autre
- une approche
- approprié
- architecture
- SONT
- artificiel
- intelligence artificielle
- AS
- associé
- At
- audit
- création
- disponibles
- AWS
- AWS CloudFormation
- base
- basé
- BE
- car
- Big
- Big Data
- construire
- Développement
- construit
- la performance des entreprises
- by
- Californie
- appelé
- CAN
- Cellules
- certificat
- challenge
- des charges
- Selectionnez
- Nettoyage
- Horloges
- le cloud
- code
- Colonne
- Colonnes
- commentaire
- Commun
- complet
- ordinateur
- Informatique
- NOUS CONTACTER
- connexion
- Console
- Contenant
- contient
- contenu
- contrôles
- engendrent
- créée
- crée des
- La création
- Lettres de créance
- Customiser
- Clients
- données
- gestion des données
- Préparation des données
- science des données
- stockage de données
- datetime
- jours
- DDP
- Décider
- profond
- l'apprentissage en profondeur
- Réglage par défaut
- Degré
- déployer
- déployé
- mobiles
- directement
- distribué
- quartier
- Docker
- Ne pas
- download
- téléchargements
- chacun
- même
- efficacement
- non plus
- élimine
- ailleurs
- activé
- encourager
- Endpoint
- ENGINEERING
- Assure
- Entreprise
- Environment
- erreur
- exemple
- exécuter
- existe
- attend
- exploration
- Explorer
- Extraits
- extrêmement
- faciliter
- juste
- Familiarité
- Fonctionnalité
- Figure
- Déposez votre dernière attestation
- finale
- Prénom
- s'adapter
- Abonnement
- suit
- Pour
- De
- plein
- d’étiquettes électroniques entièrement
- avenir
- obtenez
- obtention
- GitHub
- aller
- Croissance
- Vous avez
- ayant
- aider
- ici
- de haut niveau
- détient
- organisé
- hôtes
- Villa
- logement
- Comment
- How To
- Cependant
- HTML
- HTTPS
- Identite
- image
- Mettre en oeuvre
- la mise en oeuvre
- importer
- in
- comprendre
- inclus
- indice
- d'information
- innovations
- installer
- instance
- Institut
- Des instructions
- intégrer
- des services
- Intel
- Intelligence
- intéressé
- IT
- Emploi
- clés
- portatif
- gros
- Nom de famille
- APPRENTISSAGE
- apprentissage
- Laisser
- vos produits
- ln
- localement
- click
- machine learning
- gérer
- gérés
- gestion
- manager
- les gérer
- manuellement
- assorti
- mécanique
- Médias
- moyenne
- Menu
- méthode
- ML
- modèle
- numériques jumeaux (digital twin models)
- PLUS
- Bougez
- MS
- prénom
- Navigation
- Besoin
- Besoins
- réseaux
- les réseaux de neurones
- Nouveauté
- next
- nœud
- nœuds
- cahier
- nombre
- objet
- of
- Bureaux
- on
- ONE
- ouvert
- optimisé
- de commander
- organisation
- Autre
- au contrôle
- paquet
- pandas
- pain
- Parallèle
- partie
- passion
- passionné
- Mot de Passe
- effectue
- autorisations
- Physique
- pilote
- pipeline
- espace réservé
- Plants
- Platon
- Intelligence des données Platon
- PlatonDonnées
- politiques
- peuplé
- Post
- prévoir
- Préparer
- représentent
- précédemment
- Directeur
- d'ouvrabilité
- Programme
- proposé
- fournir
- à condition de
- fournit
- but
- Push
- Poussé
- Python
- fréquemment posées
- vite.
- aléatoire
- rapidement
- plutôt
- Lire
- récemment
- Articles
- réduit
- région
- libéré
- pertinent
- remplacer
- représente
- conditions
- a besoin
- Resources
- retourner
- Rôle
- racine
- RANGÉE
- Courir
- Sacramento
- sagemaker
- départ
- Épargnez
- Escaliers intérieurs
- Sciences
- scientifiques
- scikit-apprendre
- scripts
- Sdk
- secret
- Serveurs
- service
- Services
- set
- Forme
- coquillage
- devrait
- Spectacles
- significative
- Silicium
- Silicon Valley
- étapes
- depuis
- situations
- petit
- So
- Logiciels
- sur mesure
- Solutions
- RÉSOUDRE
- Identifier
- Sources
- Space
- spécialiste
- mise en scène
- Commencer
- Région
- Déclaration
- étapes
- Étapes
- storage
- stockée
- sous-réseaux
- Avec succès
- tel
- Support
- Appareils
- combustion propre
- table
- tâches
- Les technologies
- Technologie
- modèle
- conditions
- qui
- La
- La Source
- leur
- Les
- Ces
- trois
- Avec
- fiable
- à
- les outils
- Total
- Train
- qualifié
- Formation
- les trains
- typiquement
- université
- Mises à jour
- us
- utilisé
- Utilisateur
- utilisateurs
- Vallée
- Plus-value
- Valeurs
- vétéran
- bénévole
- Washington
- Façon..
- web
- services Web
- qui
- WHO
- sera
- comprenant
- dans les
- sans
- activités principales
- écrire
- XGBoost
- Vous n'avez
- Votre
- zéphyrnet