Il SDK Python di Amazon SageMaker è una libreria open source per l'addestramento e la distribuzione di modelli di machine learning (ML). Amazon Sage Maker. I clienti aziendali in settori strettamente controllati come la sanità e la finanza installano protezioni di sicurezza per garantire che i loro dati siano crittografati e che il traffico non attraversi Internet. Per garantire che la formazione e l'implementazione di SageMaker dei modelli ML seguano questi limiti, è prassi comune impostare restrizioni sull'account o Organizzazioni AWS livello attraverso politiche di controllo del servizio e Gestione dell'identità e dell'accesso di AWS (IAM) per imporre l'utilizzo di specifici ruoli IAM, Cloud privato virtuale di Amazon (Amazon VPC) configurazioni e Servizio di gestione delle chiavi AWS (AWS KMS). In tali casi, i data scientist devono fornire manualmente questi parametri al codice di addestramento e distribuzione del modello ML, annotando sottoreti, gruppi di sicurezza e chiavi KMS. Ciò impone ai data scientist l'onere di ricordare di specificare queste configurazioni, di eseguire correttamente i propri lavori ed evitare di ricevere errori di accesso negato.
A partire da SageMaker Python SDK versione 2.148.0, ora puoi configurare valori predefiniti per parametri quali ruoli IAM, VPC e chiavi KMS. Gli amministratori e gli utenti finali possono inizializzare le primitive dell'infrastruttura AWS con valori predefiniti specificati in un file di configurazione in formato YAML. Una volta configurato, Python SDK eredita automaticamente questi valori e li propaga alle chiamate API SageMaker sottostanti come CreateProcessingJob()
, CreateTrainingJob()
e CreateEndpointConfig()
, senza ulteriori azioni necessarie. L'SDK supporta anche più file di configurazione, consentendo agli amministratori di impostare un file di configurazione per tutti gli utenti e gli utenti possono sovrascriverlo tramite una configurazione a livello di utente che può essere archiviata in Servizio di archiviazione semplice Amazon (Amazon S3), File system elastico Amazon (Amazon EFS) per Amazon Sage Maker Studioo il file system locale dell'utente.
In questo post, ti mostriamo come creare e archiviare il file di configurazione predefinito in Studio e utilizzare la funzionalità delle impostazioni predefinite dell'SDK per creare le tue risorse SageMaker.
Panoramica della soluzione
Dimostriamo questa nuova funzionalità con un end-to-end AWS CloudFormazione modello che crea l'infrastruttura richiesta e crea un dominio Studio nel VPC distribuito. Inoltre, creiamo chiavi KMS per crittografare i volumi utilizzati nei lavori di addestramento ed elaborazione. I passi sono come segue:
- Avvia lo stack CloudFormation nel tuo account. In alternativa, se desideri esplorare questa funzione su un dominio o notebook SageMaker esistente, salta questo passaggio.
- Popolare il file
config.yaml
file e salvare il file nella posizione predefinita. - Esegui un notebook di esempio con un caso d'uso ML end-to-end, che include elaborazione dei dati, addestramento del modello e inferenza.
- Sostituisci i valori di configurazione predefiniti.
Prerequisiti
Prima di iniziare, assicurati di disporre di un account AWS e di un utente o ruolo IAM con privilegi di amministratore. Se sei un data scientist che attualmente passa i parametri dell'infrastruttura alle risorse nel tuo notebook, puoi saltare il passaggio successivo della configurazione del tuo ambiente e iniziare a creare il file di configurazione.
Per utilizzare questa funzione, assicurati di aggiornare la tua versione dell'SDK SageMaker eseguendo pip install --upgrade sagemaker
.
Crea l'ambiente
Per implementare un'infrastruttura completa che includa il networking e un dominio di Studio, completa i seguenti passaggi:
- Clona il file Repository GitHub.
- Accedi al tuo account AWS e apri la console AWS CloudFormation.
- Per distribuire le risorse di rete, scegli Crea stack.
- Carica il modello sotto
setup/vpc_mode/01_networking.yaml
. - Fornisci un nome per lo stack (ad esempio,
networking-stack
) e completare i passaggi rimanenti per creare lo stack. - Per implementare il dominio di Studio, scegli Crea stack nuovamente.
- Carica il modello sotto
setup/vpc_mode/02_sagemaker_studio.yaml
. - Fornisci un nome per lo stack (ad esempio,
sagemaker-stack
) e fornire il nome dello stack di rete quando viene richiesto il fileCoreNetworkingStackName
parametro. - Procedi con i passaggi rimanenti, seleziona i riconoscimenti per le risorse IAM e crea lo stack.
Quando lo stato di entrambi gli stack viene aggiornato a CREATE_COMPLETE, procedere al passaggio successivo.
Crea il file di configurazione
Per utilizzare la configurazione predefinita per SageMaker Python SDK, devi creare un file config.yaml nel formato previsto dall'SDK. Per il formato del file config.yaml, fare riferimento a Struttura del file di configurazione. A seconda del tuo ambiente di lavoro, come notebook Studio, istanze notebook SageMaker o IDE locale, puoi salvare il file di configurazione nella posizione predefinita o sovrascrivere le impostazioni predefinite passando un percorso del file di configurazione. Per le posizioni predefinite per altri ambienti, fare riferimento a Posizioni dei file di configurazione. I seguenti passaggi illustrano la configurazione per un ambiente notebook Studio.
Per creare facilmente il config.yaml
file, eseguire le seguenti celle nel terminale di sistema di Studio, sostituendo i segnaposto con i nomi dello stack CloudFormation del passaggio precedente:
Questo script popola automaticamente il file YAML, sostituendo i segnaposto con i valori predefiniti dell'infrastruttura e salva il file nella cartella home. Quindi copia il file nella posizione predefinita per i notebook di Studio. Il file di configurazione risultante dovrebbe essere simile al seguente formato:
Se disponi di un dominio esistente e di una configurazione di rete configurata, crea il file config.yaml
file nel formato richiesto e salvarlo nella posizione predefinita per i notebook di Studio.
Tieni presente che queste impostazioni predefinite compilano automaticamente i valori di configurazione per le chiamate SDK SageMaker appropriate e non impongono all'utente alcun VPC, sottorete o ruolo specifico. In qualità di amministratore, se desideri che i tuoi utenti utilizzino una configurazione o un ruolo specifico, usa Chiavi di condizione IAM per applicare i valori predefiniti.
Inoltre, ogni chiamata API può avere le proprie configurazioni. Ad esempio, nell'esempio di file di configurazione precedente, puoi specificare vpc-a
ed subnet-a
per lavori di formazione e specificare vpc-b
ed subnet-c
, subnet-d
per l'elaborazione dei lavori.
Eseguire un notebook di esempio
Ora che hai impostato il file di configurazione, puoi iniziare a eseguire la creazione del modello e i notebook di addestramento come di consueto, senza la necessità di impostare in modo esplicito i parametri di rete e crittografia, per la maggior parte delle funzioni dell'SDK. Vedere API e parametri supportati per un elenco completo delle chiamate e dei parametri API supportati.
In Studio, scegli l'icona Esplora file nel riquadro di navigazione e apri 03_feature_engineering/03_feature_engineering.ipynb
, come mostrato nella seguente schermata.
Esegui le celle del notebook una per una e nota che non stai specificando alcuna configurazione aggiuntiva. Quando crei l'oggetto processore, vedrai gli output della cella come nell'esempio seguente.
Come puoi vedere nell'output, la configurazione predefinita viene applicata automaticamente al processo di elaborazione, senza bisogno di ulteriori input da parte dell'utente.
Quando esegui la cella successiva per eseguire il processore, puoi anche verificare che i valori predefiniti siano impostati visualizzando il lavoro sulla console SageMaker. Scegliere Lavori di elaborazione per Processando nel riquadro di navigazione, come mostrato nello screenshot seguente.
Scegli il lavoro di elaborazione con il prefisso end-to-end-ml-sm-proc
e dovresti essere in grado di visualizzare la rete e la crittografia già configurate.
Puoi continuare a eseguire i notebook rimanenti per addestrare e distribuire il modello e noterai che le impostazioni predefinite dell'infrastruttura vengono applicate automaticamente sia per i processi di addestramento che per i modelli.
Sovrascrivere il file di configurazione predefinito
Potrebbero verificarsi casi in cui un utente deve ignorare la configurazione predefinita, ad esempio per sperimentare l'accesso a Internet pubblico o aggiornare la configurazione di rete se la sottorete esaurisce gli indirizzi IP. In questi casi, l'SDK Python consente anche di fornire un percorso personalizzato per il file di configurazione, su storage locale oppure puoi puntare a un percorso in Amazon S3. In questa sezione, esploriamo un esempio.
Aprire il user-configs.yaml
file nella tua home directory e aggiorna il file EnableNetworkIsolation
valore a True
, sotto il TrainingJob
.
Ora apri lo stesso taccuino e aggiungi la seguente cella all'inizio del taccuino:
Con questa cella, punti la posizione del file di configurazione all'SDK. Ora, quando crei l'oggetto processore, noterai che la configurazione predefinita è stata sovrascritta per abilitare l'isolamento della rete e il processo di elaborazione avrà esito negativo in modalità di isolamento della rete.
Puoi usare la stessa variabile di ambiente override per impostare il percorso del file di configurazione se stai usando il tuo ambiente locale come VSCode.
Eseguire il debug e recuperare i valori predefiniti
Per una rapida risoluzione dei problemi se si verificano errori durante l'esecuzione di chiamate API dal notebook, l'output della cella mostra le configurazioni predefinite applicate come mostrato nella sezione precedente. Per visualizzare l'esatta chiamata Boto3 creata per visualizzare i valori degli attributi passati dal file di configurazione predefinito, è possibile eseguire il debug attivando la registrazione Boto3. Per attivare la registrazione, esegui la seguente cella nella parte superiore del notebook:
Eventuali successive chiamate Boto3 verranno registrate con la richiesta completa, visibile sotto la sezione body nel log.
È inoltre possibile visualizzare la raccolta delle configurazioni predefinite utilizzando il file session.sagemaker_config
valore come mostrato nell'esempio seguente.
Infine, se utilizzi Boto3 per creare le tue risorse SageMaker, puoi recuperare i valori di configurazione predefiniti utilizzando il sagemaker_config
variabile. Ad esempio, per eseguire il processo di elaborazione in 03_feature_engineering.ipynb
utilizzando Boto3, puoi inserire il contenuto della seguente cella nello stesso taccuino ed eseguire la cella:
Automatizza la creazione del file di configurazione
Per gli amministratori, dover creare il file di configurazione e salvare il file in ogni istanza notebook SageMaker o profilo utente di Studio può essere un'attività ardua. Sebbene sia possibile consigliare agli utenti di utilizzare un file comune archiviato in una posizione S3 predefinita, questo comporta il sovraccarico aggiuntivo di specificare l'override sui data scientist.
Per automatizzare questo, gli amministratori possono utilizzare SageMaker Lifecycle Configurations (LCC). Per i profili utente di Studio o le istanze notebook, puoi allegare il seguente script LCC di esempio come LCC predefinito per l'app Jupyter Server predefinita dell'utente:
See Utilizza le configurazioni del ciclo di vita per Amazon SageMaker Studio or Personalizza un'istanza di Notebook per istruzioni sulla creazione e l'impostazione di uno script del ciclo di vita predefinito.
ripulire
Quando hai finito di sperimentare questa funzione, ripulisci le tue risorse per evitare di pagare costi aggiuntivi. Se hai eseguito il provisioning di nuove risorse come specificato in questo post, completa i seguenti passaggi per ripulire le tue risorse:
- Chiudi le app di Studio per il profilo utente. Vedere Spegni e aggiorna le app SageMaker Studio e Studio per le istruzioni. Assicurati che tutte le app vengano eliminate prima di eliminare lo stack.
- Elimina il volume EFS creato per il dominio Studio. È possibile visualizzare il volume EFS collegato al dominio utilizzando a DescriviDominio Chiamata API.
- Elimina lo stack del dominio di Studio.
- Elimina i gruppi di sicurezza creati per il dominio Studio. Li puoi trovare sul Cloud di calcolo elastico di Amazon (Amazon EC2), con i nomi security-group-for-inbound-nfs-d-xxx e security-group-for-outbound-nfs-d-xxx
- Elimina lo stack di rete.
Conclusione
In questo post, abbiamo discusso della configurazione e dell'utilizzo dei valori predefiniti per i parametri chiave dell'infrastruttura utilizzando SageMaker Python SDK. Ciò consente agli amministratori di impostare configurazioni predefinite per i data scientist, risparmiando così tempo per utenti e amministratori, eliminando l'onere di specificare ripetutamente i parametri e ottenendo un codice più snello e gestibile. Per l'elenco completo dei parametri e delle API supportati, vedere Configurazione e utilizzo delle impostazioni predefinite con SageMaker Python SDK. Per qualsiasi domanda e discussione, iscriviti al Apprendimento automatico e comunità di intelligenza artificiale.
Informazioni sugli autori
Giuseppe Angelo Porcelli è un Principal Machine Learning Specialist Solutions Architect per Amazon Web Services. Con diversi anni di ingegneria del software e background ML, lavora con clienti di qualsiasi dimensione per comprendere a fondo le loro esigenze aziendali e tecniche e progettare soluzioni di intelligenza artificiale e machine learning che sfruttino al meglio il cloud AWS e lo stack Amazon Machine Learning. Ha lavorato a progetti in diversi domini, tra cui MLOps, Computer Vision, NLP e coinvolgendo un'ampia serie di servizi AWS. Nel tempo libero Giuseppe si diverte a giocare a calcio.
Bruno Pistone è un AI/ML Specialist Solutions Architect per AWS con sede a Milano. Lavora con clienti di qualsiasi dimensione per aiutarli a comprendere a fondo le loro esigenze tecniche e progettare soluzioni di intelligenza artificiale e machine learning che utilizzino al meglio il cloud AWS e lo stack di Amazon Machine Learning. I suoi campi di competenza sono Machine Learning end to end, Machine Learning Industrialization e MLOps. Gli piace passare il tempo con i suoi amici ed esplorare nuovi posti, oltre a viaggiare verso nuove destinazioni.
Durga Sury è un ML Solutions Architect del team Amazon SageMaker Service SA. È appassionata di rendere il machine learning accessibile a tutti. Nei suoi 4 anni in AWS, ha contribuito a configurare piattaforme AI/ML per clienti aziendali. Quando non lavora, ama i giri in moto, i romanzi gialli e le lunghe passeggiate con il suo husky di 5 anni.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoAiStream. Intelligenza dei dati Web3. Conoscenza amplificata. Accedi qui.
- Coniare il futuro con Adryenn Ashley. Accedi qui.
- Acquista e vendi azioni in società PRE-IPO con PREIPO®. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/configure-and-use-defaults-for-amazon-sagemaker-resources-with-the-sagemaker-python-sdk/
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 10
- 100
- 20
- 30
- 60
- 7
- 9
- a
- capace
- WRI
- accesso
- accessibile
- Il mio account
- azioni
- aggiungere
- aggiunta
- aggiuntivo
- indirizzi
- amministratori
- ancora
- AI
- AI / ML
- Tutti
- Consentire
- consente
- già
- anche
- Sebbene il
- Amazon
- Amazon EC2
- Apprendimento automatico di Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- ed
- in qualsiasi
- api
- API
- App
- applicato
- opportuno
- applicazioni
- SONO
- AS
- At
- allegare
- automatizzare
- automaticamente
- evitare
- AWS
- AWS CloudFormazione
- sfondo
- basato
- BE
- stato
- prima
- Inizio
- MIGLIORE
- stile di vita
- entrambi
- ampio
- Costruzione
- onere
- affari
- by
- chiamata
- Bandi
- Materiale
- Custodie
- casi
- CD
- Celle
- Scegli
- cliente
- Cloud
- codice
- collezione
- Uncommon
- completamento di una
- Calcolare
- computer
- Visione computerizzata
- condizione
- Configurazione
- consolle
- testuali
- continua
- di controllo
- controllata
- Costi
- potuto
- creare
- creato
- crea
- Creazione
- Attualmente
- costume
- Clienti
- dati
- elaborazione dati
- scienziato di dati
- Predefinito
- defaults
- dimostrare
- Dipendente
- schierare
- schierato
- distribuzione
- deployment
- Design
- Destinazioni
- diverso
- discusso
- discussioni
- display
- non
- dominio
- domini
- fatto
- Dont
- giù
- ogni
- facilmente
- eco
- o
- eliminando
- enable
- crittografato
- crittografia
- fine
- da un capo all'altro
- endpoint
- imporre
- Ingegneria
- garantire
- entrare
- Impresa
- Ambiente
- ambienti
- errori
- tutti
- esempio
- esistente
- aspetta
- esperimento
- competenza
- esplora
- esploratore
- Esplorare
- FAIL
- falso
- caratteristica
- campo
- Compila il
- File
- finanziare
- Trovate
- seguire
- i seguenti
- segue
- Calcio
- Nel
- formato
- Gratis
- amici
- da
- pieno
- funzioni
- ottenere
- ottenere
- Idiota
- Gruppo
- Avere
- avendo
- he
- assistenza sanitaria
- aiutato
- aiutare
- suo
- il suo
- Casa
- Come
- Tutorial
- HTML
- http
- HTTPS
- ICON
- Identità
- if
- importare
- in
- Compreso
- industrie
- Infrastruttura
- ingresso
- install
- esempio
- istruzioni
- Interfaccia
- Internet
- accesso ad Internet
- ai miglioramenti
- coinvolgendo
- IP
- Gli indirizzi IP
- da solo
- IT
- SUO
- Lavoro
- Offerte di lavoro
- join
- jpg
- Le
- Tasti
- grandi
- apprendimento
- Livello
- Biblioteca
- ciclo di vita
- piace
- Lista
- locale
- località
- posizioni
- ceppo
- registrati
- registrazione
- Lunghi
- Guarda
- ama
- macchina
- machine learning
- make
- Fare
- gestione
- manualmente
- MILANO
- ML
- MLOp
- Moda
- modello
- modelli
- Scopri di più
- maggior parte
- MOTO
- multiplo
- Mistero
- Nome
- nomi
- Navigazione
- Bisogno
- di applicazione
- che necessitano di
- esigenze
- Rete
- internazionale
- New
- GENERAZIONE
- nlp
- no
- taccuino
- Avviso..
- notando
- adesso
- oggetto
- of
- on
- una volta
- ONE
- aprire
- open source
- or
- OS
- Altro
- su
- produzione
- Override
- proprio
- vetro
- parametro
- parametri
- Passato
- Di passaggio
- appassionato
- pagamento
- Partner
- Piattaforme
- Platone
- Platone Data Intelligence
- PlatoneDati
- gioco
- punto
- Termini e Condizioni
- Post
- pratica
- precedente
- Direttore
- un bagno
- privilegi
- lavorazione
- Processore
- Profilo
- Profili
- progetti
- fornire
- la percezione
- mette
- Python
- Domande
- Presto
- raccomandare
- rimanente
- ricorda
- richiesta
- necessario
- Risorse
- risposta
- restrizioni
- risultante
- Ruolo
- ruoli
- Correre
- running
- s
- SA
- sagemaker
- stesso
- Risparmi
- risparmio
- Scienziato
- scienziati
- sdk
- Sezione
- problemi di
- vedere
- servizio
- Servizi
- Sessione
- set
- regolazione
- flessibile.
- alcuni
- lei
- dovrebbero
- mostrare attraverso le sue creazioni
- vetrina
- mostrato
- simile
- Un'espansione
- semplicemente
- Taglia
- Software
- Ingegneria del software
- Soluzioni
- qualcosa
- specialista
- specifico
- specificato
- Spendere
- pila
- Stacks
- inizia a
- iniziato
- Stato dei servizi
- step
- Passi
- conservazione
- Tornare al suo account
- memorizzati
- studio
- sottorete
- sottoreti
- successivo
- Con successo
- tale
- supportato
- supporti
- sistema
- Task
- team
- Consulenza
- modello
- terminal
- che
- Il
- loro
- Li
- poi
- in tal modo
- Strumenti Bowman per analizzare le seguenti finiture:
- questo
- Attraverso
- strettamente
- tempo
- a
- top
- traffico
- Treni
- Training
- TURNO
- Svolta
- per
- sottostante
- capire
- Aggiornanento
- upgrade
- Impiego
- uso
- caso d'uso
- utilizzato
- Utente
- utenti
- utilizzando
- APPREZZIAMO
- Valori
- verificare
- versione
- via
- Visualizza
- visualizzazione
- virtuale
- visibile
- visione
- volume
- volumi
- volere
- we
- sito web
- servizi web
- WELL
- quando
- volere
- con
- senza
- Lavora
- lavorato
- lavoro
- lavori
- YAML
- anni
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro