Crie um trabalho de notebook com SageMaker Python SDK - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie um trabalho de notebook com SageMaker Python SDK

Para executar um notebook autônomo usando o SageMaker SDK Python, você precisa criar uma etapa do Notebook Job, anexá-la a um pipeline e usar os utilitários fornecidos SageMaker pelo Pipelines para executar seu trabalho sob demanda ou, opcionalmente, agendar um ou mais trabalhos futuros.

As seções a seguir descrevem as etapas básicas para criar um trabalho de notebook sob demanda ou programado e monitorar a execução. Além disso, consulte a discussão a seguir se precisar passar parâmetros para sua tarefa de notebook ou conectar-se à Amazon EMR em seu notebook — nesses casos, é necessária uma preparação adicional do seu notebook Jupyter. Você também pode aplicar padrões para um subconjunto dos argumentos de, NotebookJobStep para não precisar especificá-los toda vez que criar uma etapa do Notebook Job.

Para ver exemplos de cadernos que demonstram como agendar trabalhos em notebooks com o SageMaker SDK Python, consulte exemplos de cadernos de anotações de trabalhos em notebooks.

Etapas para criar um trabalho no notebook

Você pode criar um trabalho de notebook que seja executado imediatamente ou de acordo com um cronograma. As instruções a seguir descrevem os dois métodos.

Para agendar um trabalho no notebook, conclua as seguintes etapas básicas:
  1. Crie uma instância de NotebookJobStep. Para obter detalhes sobre os NotebookJobStep parâmetros, consulte sagemaker.workflow.steps. NotebookJobStep. No mínimo, você pode fornecer os seguintes argumentos, conforme mostrado no seguinte trecho de código:

    Importante

    Se você agendar o trabalho do notebook usando o SageMaker PythonSDK, só poderá especificar determinadas imagens para executar o trabalho do notebook. Para obter mais informações, consulte Restrições de imagem para trabalhos em notebooks Python SageMaker SDK.

    notebook_job_step = NotebookJobStep( input_notebook=input-notebook, image_uri=image-uri, kernel_name=kernel-name )
  2. Crie um pipeline com o seu NotebookJobStep como uma única etapa, conforme mostrado no trecho a seguir:

    pipeline = Pipeline( name=pipeline-name, steps=[notebook_job_step], sagemaker_session=sagemaker-session, )
  3. Execute o pipeline sob demanda ou, opcionalmente, agende futuras execuções do pipeline. Para iniciar uma execução imediata, use o seguinte comando:

    execution = pipeline.start( parameters={...} )

    Opcionalmente, você pode programar uma única execução futura do pipeline ou várias execuções em um intervalo predeterminado. Você especifica sua programação PipelineSchedule e, em seguida, passa o objeto de programação para seu funil comput_triggers. Para obter mais informações sobre o agendamento de pipeline, consulteAgende um pipeline com o SageMaker Python SDK.

    O exemplo a seguir agenda seu pipeline para ser executado uma vez em 12 de dezembro de 2023 às UTC 10:31:32.

    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])

    O exemplo a seguir agenda seu pipeline para ser executado às 10h15 UTC na última sexta-feira de cada mês durante os anos de 2022 a 2023. Para obter detalhes sobre o agendamento baseado em cron, consulte Programações com base em cron.

    my_schedule = PipelineSchedule( name="my-schedule“, cron="15 10 ? * 6L 2022-2023" ) pipeline.put_triggers(triggers=[my_schedule])
  4. (Opcional) Visualize suas tarefas do notebook no painel de tarefas do SageMaker notebook. Os valores que você fornece para o tags argumento da etapa do Notebook Job controlam como a interface do Studio captura e exibe o trabalho. Para obter mais informações, consulte Visualize suas tarefas de notebook no painel da interface do usuário do Studio.

Visualize suas tarefas de notebook no painel da interface do usuário do Studio

Os trabalhos do notebook que você cria como etapas do pipeline aparecem no painel do Studio Notebook Job se você especificar determinadas tags.

nota

Somente trabalhos de notebook criados no Studio ou em JupyterLab ambientes locais criam definições de trabalhos. Portanto, se você criar seu trabalho no notebook com o SageMaker PythonSDK, não verá as definições do trabalho no painel Notebook Jobs. No entanto, você pode visualizar seus trabalhos do notebook conforme descrito emVisualizar os trabalhos do notebook.

Você pode controlar quais membros da equipe podem visualizar seus trabalhos do notebook com as seguintes tags:

  • Para exibir o notebook em todos os perfis de usuário ou espaços em um domínio, adicione a tag de domínio com seu nome de domínio. Um exemplo é mostrado conforme a seguir:

    • chave:sagemaker:domain-name, valor: d-abcdefghij5k

  • Para exibir a tarefa do notebook em um determinado perfil de usuário em um domínio, adicione o perfil do usuário e as tags de domínio. Um exemplo de tag de perfil de usuário é mostrado a seguir:

    • chave:sagemaker:user-profile-name, valor: studio-user

  • Para exibir o trabalho do notebook em um espaço, adicione as tags de espaço e de domínio. Um exemplo de etiqueta de espaço é mostrado a seguir:

    • chave:sagemaker:shared-space-name, valor: my-space-name

  • Se você não anexar nenhum domínio, perfil de usuário ou tags de espaço, a interface do usuário do Studio não mostrará o trabalho do notebook criado pela etapa do pipeline. Nesse caso, você pode visualizar o trabalho de treinamento subjacente no console do trabalho de treinamento ou pode ver o status na lista de execuções do pipeline.

Depois de configurar as tags necessárias para visualizar seus trabalhos no painel, consulte Visualizar os trabalhos do notebook para obter instruções sobre como visualizar seus trabalhos e baixar os resultados.

Visualize seu gráfico de funil no Studio

Como a etapa de trabalho do notebook faz parte de um pipeline, você pode visualizar o gráfico do pipeline (DAG) no Studio. No gráfico do pipeline, você pode visualizar o status da execução do pipeline e rastrear a linhagem. Para obter detalhes, consulte Visualizar a execução de um pipeline.

Passando parâmetros para seu notebook

Se você quiser passar parâmetros para o trabalho do seu notebook (usando o parameters argumento deNotebookJobStep), você precisa preparar seu notebook de entrada para receber os parâmetros.

O executor de tarefas do notebook baseado em Papermill procura uma célula Jupyter marcada com a parameters tag e aplica os novos parâmetros ou substituições de parâmetros imediatamente após essa célula. Para obter detalhes, consulte Parametrize seu caderno.

Depois de executar essa etapa, passe seus parâmetros para o seuNotebookJobStep, conforme mostrado no exemplo a seguir:

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, ... )

Conectando-se a um EMR cluster da Amazon em seu notebook de entrada

Se você se conectar a um EMR cluster da Amazon a partir do seu notebook Jupyter no Studio, talvez seja necessário modificar ainda mais seu notebook Jupyter. Veja Conecte-se a um EMR cluster da Amazon a partir do seu notebook se você precisa realizar alguma das seguintes tarefas em seu notebook:

  • Passe parâmetros para o comando de EMR conexão da Amazon. O Studio usa o Papermill para executar notebooks. Nos SparkMagic kernels, os parâmetros que você passa para o comando de EMR conexão da Amazon podem não funcionar conforme o esperado devido à forma como o Papermill passa as informações. SparkMagic

  • Passar credenciais de usuário para Kerberos ou clusters Amazon autenticados LDAP pelo Basic HTTP Auth. EMR Você precisa passar as credenciais do usuário por meio do AWS Secrets Manager.

Configurar opções padrão

O SageMaker SDK oferece a opção de definir padrões para um subconjunto de parâmetros para que você não precise especificar esses parâmetros toda vez que criar uma instância. NotebookJobStep Esses parâmetros são roles3_root_uri,s3_kms_key, volume_kms_keysubnets,, security_group_ids e. Use o arquivo de SageMaker configuração para definir os padrões para a etapa. Para obter informações sobre o arquivo de SageMaker configuração, consulte Como configurar e usar padrões com o Python. SageMaker SDK .

Para configurar os padrões do trabalho do notebook, aplique seus novos padrões à seção do trabalho do notebook do arquivo de configuração, conforme mostrado no trecho a seguir:

SageMaker: PythonSDK: Modules: NotebookJob: RoleArn: 'arn:aws:iam::555555555555:role/IMRole' S3RootUri: 's3://my-bucket/my-project' S3KmsKeyId: 's3kmskeyid' VolumeKmsKeyId: 'volumekmskeyid1' VpcConfig: SecurityGroupIds: - 'sg123' Subnets: - 'subnet-1234'