I notebook Jupyter sono molto apprezzati dai data scientist per la loro capacità di elaborare i dati in modo interattivo, creare modelli ML e testare questi modelli effettuando inferenze sui dati. Tuttavia, esistono scenari in cui i data scientist potrebbero preferire la transizione dallo sviluppo interattivo sui notebook ai processi batch. Esempi di tali casi d'uso includono lo scaling up di un lavoro di ingegneria delle funzionalità che è stato precedentemente testato su un piccolo set di dati di esempio su una piccola istanza notebook, l'esecuzione di report notturni per ottenere informazioni dettagliate sulle metriche aziendali e il riaddestramento dei modelli ML in base a una pianificazione man mano che diventano disponibili nuovi dati.
La migrazione dallo sviluppo interattivo sui notebook ai processi batch richiedeva di copiare frammenti di codice dal notebook in uno script, impacchettare lo script con tutte le sue dipendenze in un contenitore e pianificare l'esecuzione del contenitore. Per eseguire ripetutamente questo lavoro in base a una pianificazione, è stato necessario impostare, configurare e supervisionare l'infrastruttura cloud per automatizzare le distribuzioni, sottraendo tempo prezioso alle attività di sviluppo di data science di base.
Per semplificare il processo di passaggio dai blocchi appunti interattivi ai processi batch, nel dicembre 2022, Amazon Sage Maker Studio ed Laboratorio Studio ha introdotto la possibilità di eseguire i notebook come lavori pianificati, utilizzando flussi di lavoro basati su notebook. Ora puoi usare la stessa funzionalità per eseguire i tuoi notebook Jupyter da qualsiasi ambiente JupyterLab come Amazon Sage Maker istanze notebook e JupyterLab in esecuzione sul computer locale. SageMaker fornisce un'estensione open source che può essere installata su qualsiasi ambiente JupyterLab e utilizzata per eseguire notebook come lavori temporanei e in base a una pianificazione.
In questo post, ti mostriamo come eseguire i tuoi notebook dall'ambiente JupyterLab locale come processi notebook pianificati su SageMaker.
Panoramica della soluzione
L'architettura della soluzione per la pianificazione dei processi notebook da qualsiasi ambiente JupyterLab è mostrata nel diagramma seguente. L'estensione SageMaker prevede che l'ambiente JupyterLab disponga di autorizzazioni e credenziali AWS valide per pianificare i processi del notebook. Discutiamo i passaggi per l'impostazione delle credenziali e Gestione dell'identità e dell'accesso di AWS (IAM) più avanti in questo post. Oltre all'utente IAM e alla sessione del ruolo assunto che pianifica il lavoro, devi anche fornire un ruolo che l'istanza di lavoro notebook deve assumere per l'accesso ai tuoi dati in Servizio di archiviazione semplice Amazon (Amazon S3) o a cui connettersi Amazon EMR cluster secondo necessità.
Nelle sezioni seguenti viene illustrato come configurare l'architettura e installare l'estensione open source, eseguire un notebook con le configurazioni predefinite e usare anche i parametri avanzati per eseguire un notebook con impostazioni personalizzate.
Prerequisiti
Per questo post, presupponiamo un ambiente JupyterLab ospitato localmente. Puoi seguire gli stessi passaggi di installazione anche per un ambiente ospitato nel cloud.
I passaggi seguenti presuppongono che tu disponga già di un ambiente Python 3 e JupyterLab valido (questa estensione funziona con JupyterLab v3.0 o versioni successive).
installare il Interfaccia della riga di comando di AWS (AWS CLI) se non è già installato. Vedere Installazione o aggiornamento dell'ultima versione di AWS CLI per le istruzioni.
Configura le credenziali IAM
È necessario un utente IAM o una sessione del ruolo IAM attiva per inviare i lavori del notebook SageMaker. Per impostare le tue credenziali IAM, puoi configurare l'AWS CLI con le tue credenziali AWS per il tuo utente IAM o assumere un ruolo IAM. Per istruzioni sull'impostazione delle credenziali, vedere Configurazione dell'AWS CLI. L'entità IAM (utente o ruolo presunto) necessita delle seguenti autorizzazioni per pianificare i processi del notebook. Per aggiungere la policy al tuo principale, fai riferimento a Aggiunta di autorizzazioni di identità IAM.
Se i lavori del tuo notebook devono essere crittografati con la gestione del cliente Servizio di gestione delle chiavi AWS (AWS KMS), aggiungi la dichiarazione della policy che consente anche l'accesso ad AWS KMS. Per una politica di esempio, vedere Installa criteri e autorizzazioni per gli ambienti Jupyter locali.
Configura un ruolo IAM per l'istanza di lavoro notebook
SageMaker richiede un ruolo IAM per eseguire i processi per conto dell'utente, ad esempio l'esecuzione del processo notebook. Questo ruolo dovrebbe avere accesso alle risorse necessarie al notebook per completare il lavoro, come l'accesso ai dati in Amazon S3.
L'estensione dello scheduler cerca automaticamente i ruoli IAM nell'account AWS, con il prefisso SagemakerJupyterScheduler
per eseguire i processi del notebook.
Per creare un ruolo IAM, creare un ruolo di esecuzione per Amazon SageMaker con il AmazonSageMakerFullAccess
politica. Assegna un nome al ruolo SagemakerJupyterSchedulerDemo
o fornire un nome con il prefisso previsto.
Dopo che il ruolo è stato creato, sul file Relazioni di fiducia scheda, scegliere Modifica la politica di attendibilità. Sostituisci la policy di attendibilità esistente con la seguente:
I AmazonSageMakerFullAccess
la politica è abbastanza permissiva ed è generalmente preferita per la sperimentazione e per iniziare con SageMaker. Ti consigliamo vivamente di creare una policy con ambito minimo per eventuali carichi di lavoro futuri in conformità con le best practice di sicurezza in IAM. Per il set minimo di autorizzazioni richieste per il processo notebook, vedere Installa criteri e autorizzazioni per gli ambienti Jupyter locali.
Installa l'estensione
Apri un terminale sul tuo computer locale e installa l'estensione eseguendo il seguente comando:
Dopo l'esecuzione di questo comando, puoi avviare JupyterLab eseguendo jupyter lab.
Se stai installando l'estensione dal terminale JupyterLab, riavvia il server Jupyter per caricare l'estensione. Puoi riavviare il server Jupyter scegliendo fermare sul Compila il menu dal tuo JupyterLab e avviando JupyterLab dalla riga di comando eseguendo jupyter lab
.
Invia un lavoro notebook
Dopo aver installato l'estensione nel tuo ambiente, puoi eseguire qualsiasi notebook autonomo come processo temporaneo. Inviamo un semplice notebook "Hello world" da eseguire come processo pianificato.
- Sulla Compila il menù, scegliere New ed Taccuino.
- Inserisci i seguenti contenuti:
Dopo che l'estensione è stata installata correttamente, vedrai l'icona di pianificazione del blocco appunti sul blocco appunti.
- Scegliere l'icona per creare un processo notebook.
In alternativa, puoi fare clic con il pulsante destro del mouse sul taccuino in Esplora file e scegliere Crea lavoro notebook.
- Fornire il nome del processo, il file di input, il tipo di calcolo e parametri aggiuntivi.
- Lascia le impostazioni rimanenti ai valori predefiniti e scegli Creare.
Dopo che il lavoro è stato pianificato, verrai reindirizzato al file Lavori per notebook scheda, in cui è possibile visualizzare l'elenco dei processi del blocco appunti e il relativo stato e visualizzare l'output del blocco appunti e i registri dopo il completamento del processo. Puoi anche accedere a questa finestra dei lavori del notebook dal Launcher, come mostrato nello screenshot seguente.
Configurazioni avanzate
Dal tuo computer locale, i notebook vengono eseguiti automaticamente sull'immagine SageMaker Base Python, che è l'immagine Python 3.8 ufficiale di Docker Hub con Boto3 e AWS CLI inclusi. Nei casi reali, i data scientist devono installare pacchetti o framework specifici per i propri notebook. Esistono tre modi per ottenere un ambiente riproducibile:
- Nell'opzione più semplice, puoi installare i pacchetti e i framework direttamente sulla prima cella del tuo notebook.
- È inoltre possibile fornire uno script di inizializzazione nel file Opzioni aggiuntive sezione, che punta a uno script bash nella memoria locale che viene eseguito dal processo del notebook all'avvio del notebook. Nella sezione seguente, mostriamo un esempio di utilizzo degli script di inizializzazione per installare i pacchetti.
- Infine, se desideri la massima flessibilità nella configurazione del tuo ambiente di esecuzione, puoi creare la tua immagine personalizzata con un kernel Python3, inviare l'immagine a Registro dei contenitori Amazon Elastic (Amazon ECR) e fornisci l'URI dell'immagine ECR al tuo processo notebook in Opzioni aggiuntive. L'immagine ECR deve soddisfare i requisiti per le immagini SageMaker, come elencato in Specifiche delle immagini SageMaker personalizzate.
Inoltre, la tua azienda potrebbe impostare protezioni come l'esecuzione di processi in modalità senza Internet all'interno di un Amazon VPC, utilizzando un ruolo di privilegio minimo personalizzato per il processo e applicando la crittografia. È possibile specificare tali configurazioni per i processi notebook nel file Opzioni aggiuntive anche la sezione. Per un elenco dettagliato delle configurazioni avanzate, vedere Opzioni aggiuntive.
Aggiungi uno script di inizializzazione
Per mostrare lo script di inizializzazione, ora eseguiamo il notebook di esempio per i processi del notebook di Studio disponibili su GitHub. Per eseguire questo notebook, è necessario installare i pacchetti richiesti tramite uno script di inizializzazione. Completa i seguenti passaggi:
- Dal tuo terminale JupyterLab, esegui il seguente comando per scaricare il file:
- Sulla Compila il menù, scegliere New ed File di testo.
- Inserisci i seguenti contenuti nel tuo file e salva il file con il nome
init-script.sh
: - Scegli
scheduled-example.ipynb
da Esplora file per aprire il blocco appunti. - Scegliere l'icona del lavoro del notebook per pianificare il notebook ed espandere il file Opzioni aggiuntive .
- Nel Posizione dello script di inizializzazione, inserisci il percorso completo dello script.
È inoltre possibile personalizzare facoltativamente le cartelle S3 di input e output per il lavoro del notebook. SageMaker crea una cartella di input in una posizione S3 specificata per archiviare i file di input e crea una cartella S3 di output in cui sono archiviati gli output del notebook. Puoi specificare la crittografia, il ruolo IAM e le configurazioni VPC qui. Vedere Vincoli e considerazioni per immagini personalizzate e specifiche VPC.
- Per ora, aggiorna semplicemente lo script di inizializzazione, scegli Corri adesso per il programma e scegli Creare.
Al termine del lavoro, è possibile visualizzare il notebook con gli output e il registro degli output in basso File di output, come mostrato nello screenshot seguente. Nel registro di output, dovresti essere in grado di vedere lo script di inizializzazione in esecuzione prima di eseguire il notebook.
Per personalizzare ulteriormente l'ambiente di lavoro del notebook, puoi utilizzare la tua immagine specificando l'URI ECR dell'immagine personalizzata. Se stai portando la tua immagine, assicurati di installare un kernel Python3 quando crei la tua immagine. Per un Dockerfile di esempio in grado di eseguire un notebook utilizzando TensorFlow, vedere il codice seguente:
Conclusione
In questo post, ti abbiamo mostrato come eseguire i tuoi notebook da qualsiasi ambiente JupyterLab ospitato localmente come processi di formazione SageMaker, utilizzando l'estensione dello scheduler SageMaker Jupyter. Essere in grado di eseguire i notebook in modo headless, secondo una pianificazione, riduce notevolmente il lavoro pesante indifferenziato per i data scientist, come il refactoring dei notebook in script Python, l'impostazione Amazon EventBridge trigger di eventi e creazione AWS Lambda funzioni o pipeline SageMaker per avviare i lavori di addestramento. I lavori del notebook SageMaker vengono eseguiti su richiesta, quindi paghi solo per il tempo di esecuzione del notebook e puoi utilizzare l'estensione dei lavori del notebook per visualizzare gli output del notebook in qualsiasi momento dal tuo ambiente JupyterLab. Ti invitiamo a provare i processi notebook pianificati e a connetterti con il Machine Learning e community AI su re:Post per feedback!
Circa gli autori
Bhadrinath Pani è un Software Development Engineer presso Amazon Web Services, che lavora su prodotti ML interattivi Amazon SageMaker, con oltre 12 anni di esperienza nello sviluppo di software in domini come automotive, IoT, AR/VR e visione artificiale. Attualmente, il suo obiettivo principale è lo sviluppo di strumenti di apprendimento automatico volti a semplificare l'esperienza per i data scientist. Nel tempo libero ama passare il tempo con la sua famiglia ed esplorare la bellezza del nord-ovest del Pacifico.
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/schedule-your-notebooks-from-any-jupyterlab-environment-using-the-amazon-sagemaker-jupyterlab-extension/
- :ha
- :È
- :Dove
- $ SU
- 100
- 12
- 202
- 2022
- 7
- 77
- 8
- a
- capacità
- capace
- Chi siamo
- accesso
- Accesso ai dati
- accessibile
- accordo
- Il mio account
- Raggiungere
- operanti in
- Action
- attivo
- attività
- aggiungere
- aggiunta
- aggiuntivo
- Avanzate
- Dopo shavasana, sedersi in silenzio; saluti;
- AI
- AI / ML
- Mirato
- Tutti
- consentire
- Consentire
- già
- anche
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- an
- ed
- in qualsiasi
- AR / VR
- architettura
- SONO
- AS
- assunto
- At
- automatizzare
- automaticamente
- settore automobilistico
- disponibile
- lontano
- AWS
- base
- bash
- BE
- Bellezza ed estetica
- diventa
- prima
- essendo
- MIGLIORE
- best practice
- Bloccare
- Portare
- costruire
- Costruzione
- affari
- by
- Materiale
- casi
- Scegli
- la scelta
- Cloud
- infrastruttura cloud
- codice
- COM
- comunità
- completamento di una
- Calcolare
- computer
- Visione computerizzata
- condizione
- configurazioni
- Connettiti
- Contenitore
- testuali
- Nucleo
- creare
- creato
- crea
- Creazione
- Credenziali
- Attualmente
- costume
- cliente
- Clienti
- personalizzare
- dati
- scienza dei dati
- Dicembre
- Predefinito
- Richiesta
- implementazioni
- dettagliati
- in via di sviluppo
- Mercato
- direttamente
- discutere
- Dsiplay
- Diversione
- docker
- domini
- Dont
- giù
- scaricare
- effetto
- incoraggiare
- crittografato
- crittografia
- far rispettare
- ingegnere
- Ingegneria
- garantire
- entrare
- Impresa
- clienti aziendali
- Ambiente
- ambienti
- Etere (ETH)
- Evento
- eventi
- tutti
- esempio
- Esempi
- esecuzione
- esistente
- Espandere
- previsto
- aspetta
- esperienza
- esploratore
- Esplorare
- estensione
- abbastanza
- famiglia
- caratteristica
- Compila il
- File
- Nome
- Flessibilità
- Focus
- seguire
- i seguenti
- Nel
- quadri
- Gratis
- da
- pieno
- funzioni
- ulteriormente
- futuro
- Guadagno
- generalmente
- ottenere
- molto
- ha avuto
- Avere
- he
- pesante
- sollevamento pesante
- Aiuto
- aiutato
- suo
- qui
- superiore
- vivamente
- il suo
- ospitato
- Come
- Tutorial
- Tuttavia
- HTML
- http
- HTTPS
- Hub
- IAM
- ICON
- Identità
- if
- Immagine
- immagini
- importare
- in
- includere
- incluso
- Infrastruttura
- ingresso
- intuizioni
- install
- installazione
- installato
- installazione
- esempio
- istruzioni
- interattivo
- ai miglioramenti
- introdotto
- IoT
- IT
- SUO
- Lavoro
- Offerte di lavoro
- Le
- Tasti
- laboratorio
- dopo
- con i più recenti
- apprendimento
- di sollevamento
- piace
- linea
- Lista
- elencati
- caricare
- locale
- a livello locale
- località
- ceppo
- Lunghi
- SEMBRA
- ama
- macchina
- machine learning
- Principale
- Fare
- gestito
- gestione
- modo
- matplotlib
- massimo
- Maggio..
- Menu
- Metrica
- forza
- ordine
- ML
- Moda
- modelli
- MOTO
- in movimento
- Mistero
- Nome
- Bisogno
- di applicazione
- esigenze
- New
- taccuino
- computer portatili
- adesso
- numpy
- of
- ufficiale
- on
- esclusivamente
- aprire
- open source
- Opzione
- or
- produzione
- ancora
- sorvegliare
- proprio
- Pacifico
- pacchetto
- Packages
- panda
- parametri
- appassionato
- sentiero
- Paga le
- permessi
- Piattaforme
- Platone
- Platone Data Intelligence
- PlatoneDati
- Termini e Condizioni
- politica
- Post
- pratiche
- preferire
- preferito
- in precedenza
- Direttore
- processi
- Prodotti
- fornire
- fornisce
- Spingi
- Python
- RE
- mondo reale
- riduce
- Relazioni
- rimanente
- RIPETUTAMENTE
- sostituire
- Report
- necessario
- Requisiti
- richiede
- risorsa
- Risorse
- risultante
- riqualificazione
- Fare clic con
- Ruolo
- ruoli
- Correre
- running
- corre
- SA
- sagemaker
- Pipeline SageMaker
- stesso
- Set di dati di esempio
- Risparmi
- scala
- Scenari
- programma
- in programma
- Lavori pianificati
- programmazione
- Scienze
- scienziati
- script
- Cerca
- Sezione
- sezioni
- problemi di
- vedere
- servizio
- Servizi
- Sessione
- set
- regolazione
- impostazioni
- lei
- dovrebbero
- mostrare attraverso le sue creazioni
- vetrina
- ha mostrato
- mostrato
- Un'espansione
- semplificare
- semplificando
- semplicemente
- piccole
- So
- Software
- lo sviluppo del software
- soluzione
- Soluzioni
- specifico
- Specifiche tecniche
- specificato
- Spendere
- inizia a
- iniziato
- Di partenza
- inizio
- dichiarazione
- Stato dei servizi
- Passi
- conservazione
- Tornare al suo account
- memorizzati
- fortemente
- studio
- inviare
- Con successo
- tale
- team
- tensorflow
- terminal
- test
- che
- I
- loro
- Là.
- Strumenti Bowman per analizzare le seguenti finiture:
- questo
- tre
- Attraverso
- tempo
- a
- strumenti
- Training
- transizione
- vero
- Affidati ad
- prova
- Digitare
- per
- Aggiornanento
- aggiornamento
- URI
- uso
- utilizzato
- Utente
- utilizzando
- Prezioso
- versione
- Visualizza
- visione
- volere
- Prima
- modi
- we
- sito web
- servizi web
- WELL
- quando
- quale
- con
- entro
- flussi di lavoro
- lavoro
- lavori
- anni
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro