Amazon Sage Maker è un servizio di machine learning (ML) completamente gestito. Con SageMaker, data scientist e sviluppatori possono creare e addestrare rapidamente e facilmente modelli ML, quindi distribuirli direttamente in un ambiente ospitato pronto per la produzione. Sagemaker fornisce un'istanza notebook di authoring Jupyter integrata per un facile accesso alle origini dati per l'esplorazione e l'analisi, in modo da non dover gestire i server. Fornisce inoltre algoritmi ML comuni ottimizzati per funzionare in modo efficiente su dati estremamente grandi in un ambiente distribuito.
SageMaker richiede che i dati di addestramento per un modello ML siano presenti in Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) o Amazon FSx for Lustre (per ulteriori informazioni, consulta Access Training Data). Per addestrare un modello utilizzando i dati archiviati al di fuori dei tre servizi di archiviazione supportati, i dati devono prima essere inseriti in uno di questi servizi (in genere Amazon S3). Ciò richiede la creazione di una pipeline di dati (utilizzando strumenti come Gestore di dati di Amazon SageMaker) per spostare i dati in Amazon S3. Tuttavia, questo approccio può creare una sfida di gestione dei dati in termini di gestione del ciclo di vita di questo supporto di archiviazione dei dati, creazione di controlli di accesso, verifica dei dati e così via, tutto allo scopo di mettere in scena i dati di addestramento per la durata del lavoro di addestramento. In tali situazioni, potrebbe essere auspicabile che i dati siano accessibili a SageMaker nel supporto di archiviazione temporaneo collegato alle istanze di addestramento effimere senza l'archiviazione intermedia dei dati in Amazon S3.
Questo post mostra un modo per farlo usando Fiocco di neve come origine dati e scaricando i dati direttamente da Snowflake in un'istanza lavoro SageMaker Training.
Panoramica della soluzione
Usiamo il Set di dati sull'edilizia abitativa della California come set di dati di addestramento per questo post e addestrare un modello ML per prevedere il valore medio della casa per ogni distretto. Aggiungiamo questi dati a Snowflake come nuova tabella. Creiamo un container di addestramento personalizzato che scarica i dati direttamente dalla tabella Snowflake nell'istanza di addestramento invece di scaricare prima i dati in un bucket S3. Dopo che i dati sono stati scaricati nell'istanza di addestramento, lo script di addestramento personalizzato esegue le attività di preparazione dei dati e quindi addestra il modello ML utilizzando il Stimatore XGBoost. Tutto il codice per questo post è disponibile nel file Repository GitHub.
La figura seguente rappresenta l'architettura di alto livello della soluzione proposta per utilizzare Snowflake come origine dati per addestrare modelli ML con SageMaker.
I passaggi del flusso di lavoro sono i seguenti:
- Configura un notebook SageMaker e un Gestione dell'identità e dell'accesso di AWS (IAM) con le autorizzazioni appropriate per consentire l'accesso a SageMaker Registro dei contenitori Amazon Elastic (Amazon ECR), Secrets Manager e altri servizi all'interno del tuo account AWS.
- Archivia le credenziali del tuo account Snowflake in AWS Secrets Manager.
- Inserisci i dati in una tabella nel tuo account Snowflake.
- Crea un'immagine di container personalizzata per l'addestramento del modello ML e inviala ad Amazon ECR.
- Avvia un processo SageMaker Training per addestrare il modello ML. L'istanza di addestramento recupera le credenziali di Snowflake da Secrets Manager e quindi utilizza queste credenziali per scaricare il set di dati direttamente da Snowflake. Questo è il passaggio che elimina la necessità di scaricare prima i dati in un bucket S3.
- Il modello ML addestrato viene archiviato in un bucket S3.
Prerequisiti
Per implementare la soluzione fornita in questo post, dovresti avere un file Account AWS, un Conto fiocco di neve e familiarità con SageMaker.
Imposta un ruolo SageMaker Notebook e IAM
Utilizziamo AWS CloudFormation per creare un notebook SageMaker chiamato aws-aiml-blogpost-sagemaker-snowflake-example
e un ruolo IAM chiamato SageMakerSnowFlakeExample
. Scegliere Avvia Stack per la regione in cui desideri distribuire le risorse.
Archivia le credenziali di Snowflake in Secrets Manager
Archivia le tue credenziali Snowflake come segreto in Secrets Manager. Per istruzioni su come creare un segreto, fare riferimento a Create an AWS Secrets Manager secret
.
- Dai un nome al segreto
snowflake_credentials
. Questo è necessario perché il codice insnowflake-load-dataset.ipynb
si aspetta che il segreto si chiami così. - Crea il segreto come coppia chiave-valore con due chiavi:
- nome utente – Il tuo nome utente Snowflake.
- parola d'ordine – La password associata al tuo nome utente Snowflake.
Inserisci i dati in una tabella nel tuo account Snowflake
Per importare i dati, completare i seguenti passaggi:
- Sulla console di SageMaker, scegli Notebook nel pannello di navigazione.
- Seleziona il notebook aws-aiml-blogpost-sagemaker-snowflake-example e scegli Apri JupyterLab.
- Scegli
snowflake-load-dataset.ipynb
per aprirlo in JupyterLab. Questo taccuino ingerirà il file Set di dati sull'edilizia abitativa della California a un tavolo Snowflake. - Nel taccuino, modifica il contenuto della cella seguente per sostituire i valori segnaposto con quello corrispondente al tuo account fiocco di neve:
- Scegliere dal menu Esegui Esegui tutte le celle per eseguire il codice in questo notebook. Questo scaricherà il set di dati localmente nel notebook e quindi lo inserirà nella tabella Snowflake.
Il seguente frammento di codice nel notebook inserisce il set di dati in Snowflake. Vedi il snowflake-load-dataset.ipynb
taccuino per il codice completo.
- Chiudere il notebook dopo che tutte le celle sono state eseguite senza errori. I tuoi dati sono ora disponibili in Snowflake. Lo screenshot seguente mostra il
california_housing
tabella creata in Snowflake.
Corri il sagemaker-snowflake-example.ipynb
taccuino
Questo notebook crea un container di addestramento personalizzato con una connessione Snowflake, estrae i dati da Snowflake nello storage temporaneo dell'istanza di addestramento senza staging in Amazon S3 ed esegue l'addestramento del modello XGBoost DDP (Distributed Data Parallel) sui dati. L'addestramento DDP non è richiesto per l'addestramento del modello su un set di dati così piccolo; è incluso qui per illustrare un'altra funzionalità di SageMaker rilasciata di recente.
Crea un contenitore personalizzato per l'addestramento
Ora creiamo un contenitore personalizzato per il processo di addestramento del modello ML. Tieni presente che è necessario l'accesso root per creare un contenitore Docker. Questo notebook SageMaker è stato distribuito con l'accesso root abilitato. Se le policy della tua organizzazione aziendale non consentono l'accesso root alle risorse cloud, potresti voler utilizzare il seguente file Docker e gli script shell per creare un container Docker altrove (ad esempio, il tuo laptop) e quindi inviarlo ad Amazon ECR. Utilizziamo il contenitore basato sull'immagine del contenitore SageMaker XGBoost 246618743249.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.5-1
con le seguenti aggiunte:
- Il Connettore fiocco di neve per Python per scaricare i dati dalla tabella Snowflake nell'istanza di addestramento.
- Uno script Python per connettersi a Secrets Manager per recuperare le credenziali di Snowflake.
L'uso del connettore Snowflake e dello script Python assicura che gli utenti che usano questa immagine del contenitore per l'addestramento del modello ML non debbano scrivere questo codice come parte dello script di addestramento e possano usare questa funzionalità già disponibile.
Di seguito è riportato il Dockerfile per il contenitore di addestramento:
L'immagine del container viene creata e inviata ad Amazon ECR. Questa immagine viene utilizzata per addestrare il modello ML.
Addestra il modello ML utilizzando un processo di formazione SageMaker
Dopo aver creato correttamente l'immagine del container e averla inviata ad Amazon ECR, possiamo iniziare a usarla per l'addestramento del modello.
- Creiamo un set di script Python per scaricare i dati da Snowflake usando il Connettore fiocco di neve per Python, preparare i dati e quindi utilizzare il file
XGBoost Regressor
addestrare il modello ML. È la fase di download dei dati direttamente nell'istanza di addestramento che evita di dover utilizzare Amazon S3 come storage intermedio per i dati di addestramento. - Semplifichiamo l'addestramento in parallelo dei dati distribuiti facendo in modo che il codice di addestramento scarichi un sottoinsieme casuale di dati in modo tale che ogni istanza di addestramento scarichi una quantità uguale di dati da Snowflake. Ad esempio, se sono presenti due nodi di addestramento, ogni nodo scarica un campione casuale del 50% delle righe nella tabella Snowflake.Vedi il seguente codice:
- Quindi forniamo lo script di addestramento all'SDK di SageMaker
Estimator
insieme alla directory di origine in modo che tutti gli script che creiamo possano essere forniti al contenitore di addestramento quando il lavoro di addestramento viene eseguito utilizzando ilEstimator.fit
Metodo:Per ulteriori informazioni, fare riferimento a Prepara un copione di addestramento Scikit-Learn.
- Al termine dell'addestramento del modello, il modello addestrato è disponibile come a
model.tar.gz
file nel bucket SageMaker predefinito per la regione:
Ora puoi distribuire il modello addestrato per ottenere inferenza su nuovi dati! Per le istruzioni, fare riferimento a Crea il tuo endpoint e distribuisci il tuo modello.
ripulire
Per evitare di incorrere in addebiti futuri, eliminare le risorse. Puoi farlo eliminando il modello CloudFormation utilizzato per creare il ruolo IAM e il notebook SageMaker.
Dovrai eliminare manualmente le risorse Snowflake dalla console Snowflake.
Conclusione
In questo post, abbiamo mostrato come scaricare i dati archiviati in una tabella Snowflake in un'istanza di lavoro SageMaker Training e addestrare un modello XGBoost utilizzando un container di addestramento personalizzato. Questo approccio ci consente di integrare direttamente Snowflake come origine dati con un notebook SageMaker senza disporre dei dati in Amazon S3.
Ti invitiamo a saperne di più esplorando il SDK Python di Amazon SageMaker e costruire una soluzione utilizzando l'implementazione di esempio fornita in questo post e un set di dati rilevante per la tua attività. Se hai domande o suggerimenti, lascia un commento.
Circa gli autori
Amit Arora è un architetto specializzato in AI e ML presso Amazon Web Services, che aiuta i clienti aziendali a utilizzare i servizi di machine learning basati su cloud per ridimensionare rapidamente le proprie innovazioni. È anche docente a contratto nel programma MS data science and analytics presso la Georgetown University di Washington DC
Divya Muralidharan è un architetto di soluzioni presso Amazon Web Services. È appassionata di aiutare i clienti aziendali a risolvere i problemi aziendali con la tecnologia. Ha conseguito un master in informatica presso il Rochester Institute of Technology. Fuori dall'ufficio, passa il tempo a cucinare, cantare e coltivare piante.
Sergej Ermolin è Principal AIML Solutions Architect presso AWS. In precedenza, è stato architetto di soluzioni software per tecnologie di deep learning, analisi e big data presso Intel. Un veterano della Silicon Valley con una passione per l'apprendimento automatico e l'intelligenza artificiale, Sergey si è interessato alle reti neurali sin dai tempi precedenti alla GPU, quando le utilizzava per prevedere il comportamento di invecchiamento dei cristalli di quarzo e degli orologi atomici al cesio di Hewlett-Packard. Sergey ha conseguito un MSEE e un certificato CS di Stanford e una laurea in fisica e ingegneria meccanica presso la California State University, Sacramento. Al di fuori del lavoro, Sergey ama la vinificazione, lo sci, la bicicletta, la vela e le immersioni subacquee. Sergey è anche un pilota volontario per Volo d'angelo.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/use-snowflake-as-a-data-source-to-train-ml-models-with-amazon-sagemaker/
- :È
- $ SU
- 1
- 10
- 7
- 8
- a
- WRI
- accesso
- accessibile
- Il mio account
- integrazioni
- Dopo shavasana, sedersi in silenzio; saluti;
- contro
- INVECCHIAMENTO
- AI
- AIML
- Algoritmi
- Tutti
- consente
- già
- Amazon
- AmazonFSx
- Amazon Sage Maker
- Amazon Web Services
- quantità
- .
- analitica
- ed
- Un altro
- approccio
- opportuno
- architettura
- SONO
- artificiale
- intelligenza artificiale
- AS
- associato
- At
- revisione
- autore
- disponibile
- AWS
- AWS CloudFormazione
- base
- basato
- BE
- perché
- Big
- Big Data
- costruire
- Costruzione
- costruito
- affari
- by
- California
- detto
- Materiale
- Celle
- a livello internazionale
- Challenge
- oneri
- Scegli
- Pulizia
- Orologi
- Cloud
- codice
- Colonna
- colonne
- commento
- Uncommon
- completamento di una
- computer
- Informatica
- Connettiti
- veloce
- consolle
- Contenitore
- contiene
- testuali
- controlli
- creare
- creato
- crea
- Creazione
- Credenziali
- costume
- Clienti
- dati
- gestione dei dati
- Preparazione dei dati
- scienza dei dati
- memorizzazione dei dati
- datetime
- Giorni
- DDP
- Decidere
- deep
- apprendimento profondo
- Predefinito
- Laurea
- schierare
- schierato
- sviluppatori
- direttamente
- distribuito
- distretto
- docker
- Dont
- scaricare
- download
- ogni
- facilmente
- in modo efficiente
- o
- elimina
- altrove
- abilitato
- incoraggiare
- endpoint
- Ingegneria
- assicura
- Impresa
- Ambiente
- errore
- esempio
- eseguire
- esiste
- aspetta
- esplorazione
- Esplorare
- estratti
- estremamente
- facilitare
- fiera
- Familiarità
- caratteristica
- figura
- Compila il
- finale
- Nome
- in forma
- i seguenti
- segue
- Nel
- da
- pieno
- completamente
- funzionalità
- futuro
- ottenere
- ottenere
- GitHub
- andando
- Crescita
- Avere
- avendo
- aiutare
- qui
- alto livello
- detiene
- ospitato
- padroni di casa
- Casa
- alloggiamento
- Come
- Tutorial
- Tuttavia
- HTML
- HTTPS
- Identità
- Immagine
- realizzare
- implementazione
- importare
- in
- includere
- incluso
- Index
- informazioni
- innovazioni
- install
- esempio
- Istituto
- istruzioni
- integrare
- integrato
- Intel
- Intelligence
- interessato
- IT
- Lavoro
- Tasti
- laptop
- grandi
- Cognome
- IMPARARE
- apprendimento
- Lasciare
- ciclo di vita
- ln
- a livello locale
- macchina
- machine learning
- gestire
- gestito
- gestione
- direttore
- gestione
- manualmente
- corrispondenza
- meccanico
- Media
- medie
- Menu
- metodo
- ML
- modello
- modelli
- Scopri di più
- cambiano
- MS
- Nome
- Navigazione
- Bisogno
- esigenze
- reti
- reti neurali
- New
- GENERAZIONE
- nodo
- nodi
- taccuino
- numero
- oggetto
- of
- Office
- on
- ONE
- aprire
- ottimizzati
- minimo
- organizzazione
- Altro
- al di fuori
- pacchetto
- panda
- vetro
- Parallel
- parte
- passione
- appassionato
- Password
- esegue
- permessi
- Fisica
- pilota
- conduttura
- segnaposto
- piante
- Platone
- Platone Data Intelligence
- PlatoneDati
- Termini e Condizioni
- popolata
- Post
- predire
- Preparare
- presenti
- in precedenza
- Direttore
- problemi
- Programma
- proposto
- fornire
- purché
- fornisce
- scopo
- Spingi
- spinto
- Python
- Domande
- rapidamente
- casuale
- rapidamente
- piuttosto
- Leggi
- recentemente
- record
- riduce
- regione
- rilasciato
- pertinente
- sostituire
- rappresenta
- necessario
- richiede
- Risorse
- ritorno
- Ruolo
- radice
- RIGA
- Correre
- Sacramento
- sagemaker
- vela
- Risparmi
- Scala
- Scienze
- scienziati
- scikit-impara
- script
- sdk
- Segreto
- Server
- servizio
- Servizi
- set
- Forma
- Conchiglia
- dovrebbero
- Spettacoli
- significativa
- Silicio
- Silicon Valley
- Un'espansione
- da
- situazioni
- piccole
- So
- Software
- soluzione
- Soluzioni
- RISOLVERE
- Fonte
- fonti
- lo spazio
- specialista
- messa in scena
- inizia a
- Regione / Stato
- dichiarazione
- step
- Passi
- conservazione
- memorizzati
- sottoreti
- Con successo
- tale
- supporto
- supportato
- sistema
- tavolo
- task
- Tecnologie
- Tecnologia
- modello
- condizioni
- che
- Il
- L’ORIGINE
- loro
- Li
- Strumenti Bowman per analizzare le seguenti finiture:
- tre
- Attraverso
- tempo
- a
- strumenti
- Totale
- Treni
- allenato
- Training
- forma
- tipicamente
- Università
- Aggiornanento
- us
- uso
- Utente
- utenti
- Valle
- APPREZZIAMO
- Valori
- veterano
- volontario
- Washington
- Modo..
- sito web
- servizi web
- quale
- OMS
- volere
- con
- entro
- senza
- Lavora
- scrivere
- XGBoost
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro