Esempio di creazione di un processo del notebook con SageMaker AI Python SDK
Per eseguire un notebook standalone utilizzando SageMaker Python SDK, devi creare una fase Processo del notebook, collegarla a una pipeline e utilizzare le utilità fornite da Pipelines per eseguire il processo on demand o, facoltativamente, pianificare uno o più processi futuri. Le sezioni seguenti descrivono le fasi di base per creare un processo del notebook on demand o pianificato e monitorarne l’esecuzione. Inoltre, fai riferimento alle sezioni seguenti se devi passare parametri al tuo processo del notebook o se devi connetterti ad Amazon EMR dal tuo notebook: in questi casi è necessaria una preparazione aggiuntiva del tuo notebook Jupyter. Puoi anche applicare i valori predefiniti a un sottoinsieme degli argomenti di NotebookJobStep, in modo da non doverli specificare ogni volta che crei una fase Processo del notebook.
Per visualizzare notebook di esempio che mostrano come pianificare i processi del notebook con SageMaker AI Python SDK, consulta notebook job sample notebooks
Argomenti
Procedura per creare un processo del notebook
Puoi creare un processo del notebook che venga eseguito immediatamente o in base a una pianificazione. Le istruzioni seguenti descrivono entrambi i metodi.
Per pianificare un processo del notebook, procedi come descritto di seguito:
-
Crea un’istanza
NotebookJobStep. Per informazioni dettagliate sui parametriNotebookJobStep, consulta sagemaker.workflow.steps.NotebookJobStep. Come minimo, puoi fornire gli argomenti seguenti, come mostrato nel seguente frammento di codice: Importante
Se pianifichi il processo del notebook utilizzando SageMaker Python SDK, puoi specificare solo determinate immagini per eseguire tale processo. Per ulteriori informazioni, consulta Vincoli di immagine per i processi del notebook SageMaker AI Python SDK.
notebook_job_step = NotebookJobStep( input_notebook=input-notebook, image_uri=image-uri, kernel_name=kernel-name) -
Crea una pipeline utilizzando
NotebookJobStepcome fase singola, come mostrato nel seguente frammento:pipeline = Pipeline( name=pipeline-name, steps=[notebook_job_step], sagemaker_session=sagemaker-session, ) -
Esegui la pipeline on demand o, facoltativamente, pianifica le future esecuzioni della pipeline. Per avviare un’esecuzione immediata, utilizza il comando seguente:
execution = pipeline.start( parameters={...} )Facoltativamente, puoi pianificare un’esecuzione futura una tantum della pipeline o più esecuzioni a intervalli predeterminati. Specifica la pianificazione in
PipelineSchedule, quindi passa l’oggetto di pianificazione alla pipeline conput_triggers. Per ulteriori informazioni sulla pianificazione delle pipeline, consulta Pianificazione di una pipeline con SageMaker Python SDK.L’esempio seguente pianifica l’esecuzione una tantum della pipeline il 12 dicembre 2023 alle 10:31:32 UTC.
my_schedule = PipelineSchedule( name="my-schedule“, at=datetime(year=2023, month=12, date=25, hour=10, minute=31, second=32) ) pipeline.put_triggers(triggers=[my_schedule])L’esempio successivo pianifica l’esecuzione della pipeline alle 10:15 UTC dell’ultimo venerdì di ogni mese dal 2022 al 2023. Per dettagli sulla pianificazione basata su CRON, consulta Pianificazioni basate su CRON.
my_schedule = PipelineSchedule( name="my-schedule“, cron="15 10 ? * 6L 2022-2023" ) pipeline.put_triggers(triggers=[my_schedule]) -
(Facoltativo) Visualizza i processi del notebook nella dashboard Processi del notebook SageMaker. I valori forniti per l’argomento
tagsnella fase Processo del notebook definiscono il modo in cui l’interfaccia utente di Studio acquisisce e visualizza il processo. Per ulteriori informazioni, consulta Visualizzazione dei processi del notebook nella dashboard dell’interfaccia utente di Studio.
Visualizzazione dei processi del notebook nella dashboard dell’interfaccia utente di Studio
I processi del notebook che crei come fasi della pipeline vengono visualizzati nella dashboard Processi del notebook di Studio se specifichi determinati tag.
Nota
Solo i processi del notebook creati in Studio o in ambienti JupyterLab locali creano definizioni dei processi. Pertanto, se crei il tuo processo del notebook con SageMaker Python SDK, non vedrai le definizioni dei processi nella dashboard Processi del notebook. Tuttavia, puoi visualizzare i processi del notebook come descritto in Visualizza i processi relativi al notebook.
Puoi controllare quali membri del team possono visualizzare i tuoi processi del notebook con i seguenti tag:
-
Per visualizzare il notebook su tutti i profili utente o gli spazi di un dominio, aggiungi il tag di dominio con il tuo nome di dominio. Di seguito viene riportato un esempio:
-
chiave:
sagemaker:domain-name, valore:d-abcdefghij5k
-
-
Per visualizzare il processo del notebook su un determinato profilo utente in un dominio, aggiungi i tag sia del profilo utente che del dominio. Di seguito viene riportato un esempio di tag del profilo utente:
-
chiave:
sagemaker:user-profile-name, valore:studio-user
-
-
Per visualizzare il processo del notebook in uno spazio, aggiungi i tag sia dello spazio che del dominio. Di seguito viene riportato un esempio di tag dello spazio:
-
chiave:
sagemaker:shared-space-name, valore:my-space-name
-
-
Se non colleghi alcun tag per il dominio, il profilo utente o lo spazio, l’interfaccia utente di Studio non mostra il processo del notebook creato dalla fase della pipeline. In questo caso, puoi visualizzare il job di addestramento sottostante nella relativa console oppure puoi visualizzarne lo stato nell’elenco delle esecuzioni della pipeline.
Dopo aver configurato i tag necessari per visualizzare i processi nella dashboard, consulta Visualizza i processi relativi al notebook per istruzioni su come visualizzare i processi e scaricare gli output.
Visualizzazione del grafo della pipeline in Studio
Poiché la fase del processo del notebook fa parte di una pipeline, puoi visualizzare il grafo della pipeline (DAG) in Studio. Nel grafo della pipeline, puoi visualizzare lo stato di esecuzione della pipeline e monitorarne il lineage. Per informazioni dettagliate, consultare Visualizzazione dei dettagli dell’esecuzione di una pipeline.
Passaggio dei parametri al notebook
Per passare i parametri al processo del notebook (con l’argomento parameters di NotebookJobStep), devi preparare il notebook di input per ricevere i parametri.
L’esecutore di processi del notebook basati su Papermill cerca una cella Jupyter a cui è applicato il tag parameters e applica i nuovi parametri o le sostituzioni dei parametri subito dopo questa cella. Per informazioni dettagliate, consultare Parametrizzare il notebook.
Dopo aver eseguito questa fase, passa i parametri a NotebookJobStep, come mostrato nell’esempio seguente:
notebook_job_parameters = { "company": "Amazon" } notebook_job_step = NotebookJobStep( image_uri=image-uri, kernel_name=kernel-name, role=role-name, input_notebook=input-notebook, parameters=notebook_job_parameters, ... )
Connessione a un cluster Amazon EMR nel notebook di input
Se ti connetti a un cluster Amazon EMR dal tuo notebook Jupyter in Studio, potresti dover modificare ulteriormente tale notebook. Consulta Connessione a un cluster Amazon EMR dal notebook se devi eseguire una di queste attività sul tuo notebook:
-
Passaggio dei parametri al comando di connessione Amazon EMR. Studio utilizza Papermill per eseguire notebook. Nei kernel SparkMagic, i parametri passati al comando di connessione Amazon EMR potrebbero non funzionare come previsto a causa del modo in cui Papermill passa le informazioni a SparkMagic.
-
Passaggio delle credenziali utente a cluster Amazon EMR autenticati con Kerberos, LDAP o HTTP Basic Auth. Devi passare le credenziali utente tramite Gestione dei segreti AWS.
Configurazione delle opzioni predefinite
L’SDK SageMaker offre la possibilità di impostare i valori predefiniti per un sottoinsieme di parametri in modo da non dover specificare questi parametri ogni volta che si crea un’istanza NotebookJobStep. Questi parametri sono role, s3_root_uri, s3_kms_key, volume_kms_key, subnets e security_group_ids. Utilizza il file di configurazione SageMaker AI per configurare le impostazioni predefinite per la fase. Per informazioni sul file di configurazione di SageMaker AI, consulta Configurazione e utilizzo delle impostazioni predefinite con SageMaker Python SDK
Per configurare le impostazioni predefinite del processo del notebook, applica le nuove impostazioni predefinite alla sezione relativa al processo del notebook del file di configurazione, come mostrato nel seguente frammento:
SageMaker: PythonSDK: Modules: NotebookJob: RoleArn: 'arn:aws:iam::555555555555:role/IMRole' S3RootUri: 's3://amzn-s3-demo-bucket/my-project' S3KmsKeyId: 's3kmskeyid' VolumeKmsKeyId: 'volumekmskeyid1' VpcConfig: SecurityGroupIds: - 'sg123' Subnets: - 'subnet-1234'