Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Esegui notebook come processi batch in Amazon SageMaker Studio Lab

Recentemente, la Amazon Sage Maker Studio ha lanciato un modo semplice per eseguire i notebook come processi batch che possono essere eseguiti in base a una pianificazione ricorrente. Laboratorio Amazon SageMaker Studio supporta anche questa funzione, consentendoti di eseguire notebook sviluppati in SageMaker Studio Lab nel tuo account AWS. Ciò ti consente di ridimensionare rapidamente i tuoi esperimenti di machine learning (ML) con set di dati più grandi e istanze più potenti, senza dover apprendere nulla di nuovo o modificare una riga di codice.

In questo post, ti guidiamo attraverso il prerequisito una tantum per connettere il tuo ambiente Studio Lab a un account AWS. Successivamente, ti guideremo attraverso i passaggi per eseguire i notebook come processo batch da Studio Lab.

Panoramica della soluzione

Studio Lab ha incorporato la stessa estensione di Studio, che si basa sull'estensione open source Jupyter per quaderni programmati. Questa estensione ha parametri aggiuntivi specifici di AWS, come il tipo di calcolo. In Studio Lab, un taccuino pianificato viene prima copiato in un file Servizio di archiviazione semplice Amazon (Amazon S3) nel tuo account AWS, quindi esegui all'ora pianificata con il tipo di calcolo selezionato. Quando il lavoro è completo, l'output viene scritto in un bucket S3 e il calcolo AWS viene completamente interrotto, evitando costi continui.

Prerequisiti

Per utilizzare i lavori del notebook di Studio Lab, è necessario l'accesso amministrativo all'account AWS con cui ti connetterai (o l'assistenza di qualcuno con questo accesso). Nel resto di questo post, presumiamo che tu sia l'amministratore di AWS, in caso contrario, chiedi al tuo amministratore o al proprietario dell'account di rivedere questi passaggi con te.

Crea un ruolo di esecuzione SageMaker

Dobbiamo assicurarci che l'account AWS disponga di un Gestione dell'identità e dell'accesso di AWS (IAM) Ruolo di esecuzione di SageMaker. Questo ruolo viene utilizzato dalle risorse SageMaker all'interno dell'account e fornisce l'accesso da SageMaker ad altre risorse nell'account AWS. Nel nostro caso, i nostri lavori notebook vengono eseguiti con queste autorizzazioni. Se SageMaker è stato utilizzato in precedenza in questo account, allora un ruolo potrebbe già esistere, ma potrebbe non disporre di tutte le autorizzazioni richieste. Quindi andiamo avanti e facciamone uno nuovo.

I seguenti passaggi devono essere eseguiti una sola volta, indipendentemente dal numero di ambienti SageMaker Studio Lab che accederanno a questo account AWS.

  1. Sulla console IAM, scegli Ruoli nel pannello di navigazione.
  2. Scegli Crea ruolo.
  3. Nel Tipo di entità attendibile, selezionare Servizio AWS.
  4. Nel Casi d'uso per altri servizi AWSscegli SageMaker.
  5. Seleziona SageMaker – Esecuzione.
  6. Scegli Avanti.
  7. Esamina le autorizzazioni, quindi scegli Avanti.Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  8. Nel Nome del ruolo, inserisci un nome (per questo post, usiamo sagemaker-execution-role-notebook-jobs).
  9. Scegli Crea ruolo.
  10. Prendere nota dell'ARN del ruolo.

L'ARN del ruolo sarà nel formato di arn:aws:iam::[account-number]:role/service-role/[role-name] ed è richiesto nella configurazione di Studio Lab.

Crea un utente IAM

Affinché un ambiente Studio Lab possa accedere ad AWS, dobbiamo creare un utente IAM all'interno di AWS e concedergli le autorizzazioni necessarie. Dobbiamo quindi creare un set di chiavi di accesso per quell'utente e fornirle all'ambiente Studio Lab.

Questo passaggio deve essere ripetuto per ogni ambiente SageMaker Studio Lab che accederà a questo account AWS.

Tieni presente che gli amministratori e i proprietari di account AWS devono garantire che vengano seguite, nella massima misura possibile, pratiche di sicurezza ben architettate. Ad esempio, le autorizzazioni utente dovrebbero sempre essere limitate e le chiavi di accesso dovrebbero essere ruotate regolarmente per ridurre al minimo l'impatto della compromissione delle credenziali.

In questo blog mostriamo come utilizzare il AmazonSageMakerFullAccess politica gestita. Questa policy fornisce un ampio accesso ad Amazon SageMaker che può andare oltre quanto richiesto. Dettagli su AmazonSageMakerFullAccess possono essere trovati qui.

Sebbene Studio Lab utilizzi la sicurezza aziendale, va notato che le credenziali utente di Studio Lab non fanno parte del tuo account AWS e pertanto, ad esempio, non sono soggette alla tua password AWS o alle policy MFA.

Per limitare il più possibile le autorizzazioni, creiamo un profilo utente specifico per questo accesso.

  1. Sulla console IAM, scegli Utenti nel pannello di navigazione.
  2. Scegli Aggiungi utenti.
  3. Nel nome utente, inserisci un nome. È buona norma utilizzare un nome collegato a una singola persona che utilizzerà questo account; questo aiuta se si esaminano i registri di controllo.
  4. Nel Seleziona il tipo di accesso AWS, selezionare Chiave di accesso: accesso programmatico.
  5. Scegli Avanti: Autorizzazioni.Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  6. Scegli Allegare direttamente le politiche esistenti.
  7. Cerca e seleziona AmazonSageMakerFullAccess.Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  8. Cerca e seleziona AmazonEventBridgeFullAccess.Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  9. Scegli Avanti: Tag.
  10. Scegli Avanti: Revisione.
  11. Conferma le tue politiche, quindi scegli Creare un utente.Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.La pagina finale del processo di creazione dell'utente dovrebbe mostrare le chiavi di accesso dell'utente. Lascia aperta questa scheda, perché non possiamo tornare qui e abbiamo bisogno di questi dettagli.
  12. Apri una nuova scheda del browser in Studio Lab.
  13. Sulla Compila il menù, scegliere Nuovo lanciatore, Quindi scegliere terminal.Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  14. Alla riga di comando, inserisci il seguente codice:
    aws configure

  15. Inserisci il seguente codice:
    1. Inserisci i valori dalla pagina della console IAM per l'ID chiave di accesso e la chiave di accesso segreta.
    2. Nel Default region name, accedere us-west-2.
    3. Lasciare Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure 
      AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: 
      
      (studiolab) studio-lab-user@default:~$

Congratulazioni, ora il tuo ambiente Studio Lab dovrebbe essere configurato per accedere all'account AWS. Per testare la connessione, immetti il ​​seguente comando:

aws sts get-caller-identity

Questo comando dovrebbe restituire i dettagli sull'utente IAM configurato per l'utilizzo.

Crea un lavoro sul taccuino

I processi notebook vengono creati utilizzando i notebook Jupyter all'interno di Studio Lab. Se il tuo notebook viene eseguito in Studio Lab, può essere eseguito come processo notebook (con più risorse e accesso ai servizi AWS). Tuttavia, ci sono un paio di cose da tenere d'occhio.

Se hai installato pacchetti per far funzionare il tuo notebook, aggiungi i comandi per caricare questi pacchetti in una cella nella parte superiore del tuo notebook. Utilizzando un simbolo & all'inizio di ogni riga, il codice verrà inviato alla riga di comando per l'esecuzione. Nell'esempio seguente, la prima cella utilizza pip per installare le librerie PyTorch:

%%capture
%pip install torch
%pip install torchvision

Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il nostro notebook genererà un modello PyTorch addestrato. Con il nostro codice normale, salviamo il modello nel file system in Studio Labs.

Quando lo eseguiamo come lavoro notebook, dobbiamo salvare il modello da qualche parte in cui possiamo accedervi in ​​seguito. Il modo più semplice per farlo è salvare il modello in Amazon S3. Abbiamo creato un bucket S3 per salvare i nostri modelli e utilizzare un'altra cella della riga di comando per copiare l'oggetto nel bucket.

Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Usiamo il Interfaccia della riga di comando di AWS (AWS CLI) qui per copiare l'oggetto. Potremmo anche usare il SDK AWS per Python (Boto3) se volessimo avere un controllo più sofisticato o automatizzato del nome del file. Per ora, ci assicureremo di cambiare il nome del file ogni volta che eseguiamo il notebook in modo che i modelli non vengano sovrascritti.

Ora siamo pronti per creare il lavoro notebook.

  1. Scegli (fai clic con il pulsante destro del mouse) il nome del taccuino, quindi scegli Crea lavoro notebook.Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
    Se questa opzione di menu non è presente, potrebbe essere necessario aggiornare l'ambiente di Studio Lab. Per fare ciò, apri Terminale dal programma di avvio ed esegui il seguente codice:
    conda deactivate && conda env remove —name studiolab

  2. Successivamente, riavvia la tua istanza JupyterLab scegliendo Laboratorio Amazon SageMaker Studio dal menu in alto, quindi scegli Riavvia JupyterLab.In alternativa, vai alla pagina del progetto, chiudi e riavvia il runtime.
  3. Sulla Crea lavoro pagina, per Tipo di calcolo, scegli il tipo di calcolo adatto al tuo lavoro.

    Per ulteriori informazioni sui diversi tipi di capacità di elaborazione, incluso il costo, vedere Prezzi di Amazon SageMaker (scegliere Prezzi su richiesta e vai al Training scheda. Potrebbe anche essere necessario verificare la disponibilità della quota del tipo di calcolo nel tuo account AWS. Per ulteriori informazioni sulle quote di servizio, vedere: Quote di servizio AWS.Per questo esempio, abbiamo selezionato un'istanza ml.p3.2xlarge, che offre 8 vCPU, 61 GB di memoria e una GPU Tesla V100.Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

    Se non ci sono avvisi in questa pagina, dovresti essere pronto per partire. Se sono presenti avvisi, verificare che sia specificato l'ARN del ruolo corretto Opzioni aggiuntive. Questo ruolo deve corrispondere all'ARN del ruolo di esecuzione di SageMaker che abbiamo creato in precedenza. L'ARN è nel formato arn:aws:iam::[account-number]:role/service-role/[role-name].

    Ci sono altre opzioni disponibili all'interno Opzioni aggiuntive; ad esempio, puoi selezionare un'immagine e un kernel particolari che potrebbero già avere la configurazione di cui hai bisogno senza la necessità di installare librerie aggiuntive.

  4. Se desideri eseguire questo blocco appunti in base a una pianificazione, seleziona Eseguire su un programma e specificare la frequenza con cui si desidera eseguire il processo.Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Vogliamo che questo notebook venga eseguito una volta, quindi selezioniamo Corri adesso.
  5. Scegli Creare.
    Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Elenco dei lavori del notebook

I Lavori per notebook pagina elenca tutti i lavori attualmente in esecuzione e quelli eseguiti in passato. Puoi trovare questo elenco dal Launcher (scegli, Compila il , Nuovo lanciatore), quindi scegliere Lavori per notebook nel Altro .

Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Quando il lavoro del notebook è completo, vedrai lo stato cambiare in Completed (utilizzare il Ricaricare opzione se necessario). È quindi possibile scegliere l'icona di download per accedere ai file di output.

Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Una volta scaricati i file, è possibile esaminare il blocco appunti insieme all'output del codice e al registro dell'output. Nel nostro caso, poiché abbiamo aggiunto il codice per cronometrare l'esecuzione della cella di addestramento, possiamo vedere quanto tempo ha impiegato il processo di addestramento: 16 minuti e 21 secondi, che è molto più veloce rispetto a se il codice fosse stato eseguito all'interno di Studio Lab (1 ora , 38 minuti e 55 secondi). In effetti, l'intero notebook ha funzionato in 1,231 secondi (poco più di 20 minuti) a un costo inferiore a $ 1.30 (USD).

Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

W può ora aumentare il numero di epoche e regolare gli iperparametri per migliorare il valore di perdita del modello e inviare un altro processo notebook.

Conclusione

In questo post, abbiamo mostrato come utilizzare i lavori notebook di Studio Lab per ridimensionare il codice che abbiamo sviluppato in Studio Lab ed eseguirlo con più risorse in un account AWS.

Aggiungendo le credenziali AWS al nostro ambiente Studio Lab, non solo possiamo accedere ai lavori del notebook, ma possiamo anche accedere ad altre risorse da un account AWS direttamente dai nostri notebook Studio Lab. Dai un'occhiata all'SDK AWS per Python.

Questa capacità aggiuntiva di Studio Lab solleva i limiti dei tipi e delle dimensioni dei progetti che puoi realizzare. Facci sapere cosa costruisci con questa nuova funzionalità!


Circa gli autori

Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Mike Camere è Developer Advocate per AI e ML presso AWS. Ha trascorso gli ultimi 7 anni aiutando i costruttori a imparare il cloud, la sicurezza e il machine learning. Originario del Regno Unito, Mike è un appassionato bevitore di tè e costruttore di Lego.

Esegui notebook come processi batch in Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. Michele Monclova è uno dei principali product manager di AWS nel team SageMaker. È una nativa newyorkese e veterana della Silicon Valley. È appassionata di innovazioni che migliorano la qualità della nostra vita.

Timestamp:

Di più da Apprendimento automatico di AWS