SageMaker Python SDK 예제를 사용하여 노트북 작업 생성 - Amazon SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SageMaker Python SDK 예제를 사용하여 노트북 작업 생성

SageMaker Python 을 사용하여 독립 실행형 노트북을 실행하려면 노트북 작업 단계를 생성하고 파이프라인에 연결한 다음 파이프라인에서 제공하는 유틸리티를 사용하여 필요에 따라 작업을 실행하거나 선택적으로 하나 이상의 향후 작업을 예약SDK해야 합니다. 다음 섹션에서는 온디맨드 또는 예약된 노트북 작업을 생성하고 실행을 추적하는 기본 단계를 설명합니다. 또한 파라미터를 노트북 작업에 전달하거나 노트북EMR에서 Amazon에 연결해야 하는 경우 다음 논의를 참조하세요. 이러한 경우 Jupyter 노트북을 추가로 준비해야 합니다. 인수의 하위 집합에 기본값을 적용할 수도 NotebookJobStep 있으므로 노트북 작업 단계를 생성할 때마다 기본값을 지정할 필요가 없습니다.

Python을 사용하여 노트북 작업을 예약하는 방법을 보여주는 샘플 노트북을 SageMaker 보려면 노트북 작업 샘플 노트북을 SDK참조하세요. https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-pipelines/notebook-job-step

노트북 작업을 생성하는 단계

즉시 또는 일정에 따라 실행되는 노트북 작업을 생성할 수 있습니다. 다음 지침은 두 방법을 모두 설명합니다.

노트북 작업을 예약하려면 다음 기본 단계를 완료합니다.
  1. NotebookJobStep 인스턴스를 생성합니다. NotebookJobStep 파라미터에 대한 자세한 내용은 sagemaker.workflow.steps를 참조하세요NotebookJobStep. 최소한 다음 코드 조각에 표시된 대로 다음 인수를 제공할 수 있습니다.

    중요

    SageMaker Python 을 사용하여 노트북 작업을 예약SDK하는 경우 노트북 작업을 실행할 특정 이미지만 지정할 수 있습니다. 자세한 내용은 Python SDK 노트북 작업에 대한 SageMaker 이미지 제약 조건 단원을 참조하십시오.

    notebook_job_step = NotebookJobStep( input_notebook=input-notebook, image_uri=image-uri, kernel_name=kernel-name )
  2. 다음 조각과 같이 NotebookJobStep 를 단일 단계로 사용하여 파이프라인을 생성합니다.

    pipeline = Pipeline( name=pipeline-name, steps=[notebook_job_step], sagemaker_session=sagemaker-session, )
  3. 필요에 따라 파이프라인을 실행하거나 선택적으로 향후 파이프라인 실행을 예약합니다. 즉시 실행을 시작하려면 다음 명령을 사용합니다.

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

    선택적으로 향후 파이프라인 실행을 하나만 예약하거나 미리 결정된 간격으로 여러 번 실행할 수 있습니다. 에서 일정을 지정한 다음 PipelineSchedule 를 사용하여 일정 객체를 파이프라인에 전달합니다put_triggers. 파이프라인 예약에 대한 자세한 내용은 섹션을 참조하세요 SageMaker Python으로 파이프라인 예약 SDK.

    다음 예제에서는 파이프라인이 2023년 12월 12일 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])

    다음 예제에서는 파이프라인이 2022년부터 2023년까지 매월 마지막 금요UTC일 오전 10:15에 실행되도록 예약합니다. cron 기반 예약에 대한 자세한 내용은 Cron 기반 예약 섹션을 참조하세요.

    my_schedule = PipelineSchedule( name="my-schedule“, cron="15 10 ? * 6L 2022-2023" ) pipeline.put_triggers(triggers=[my_schedule])
  4. (선택 사항) 노트북 작업 대시보드에서 SageMaker 노트북 작업을 봅니다. 노트북 작업 단계의 tags 인수에 제공하는 값은 Studio UI가 작업을 캡처하고 표시하는 방법을 제어합니다. 자세한 내용은 Studio UI 대시보드에서 노트북 작업 보기 단원을 참조하십시오.

Studio UI 대시보드에서 노트북 작업 보기

특정 태그를 지정하면 파이프라인 단계로 생성한 노트북 작업이 Studio 노트북 작업 대시보드에 표시됩니다.

참고

Studio 또는 로컬 JupyterLab 환경에서 생성된 노트북 작업만 작업 정의를 생성합니다. 따라서 SageMaker Python으로 노트북 작업을 생성하는 경우 노트북 작업 대시보드에 작업 정의가 표시되지 SDK않습니다. 하지만 에 설명된 대로 노트북 작업을 볼 수 있습니다노트북 작업 보기.

다음 태그를 사용하여 노트북 작업을 볼 수 있는 팀원을 제어할 수 있습니다.

  • 도메인의 모든 사용자 프로필 또는 공간에 노트북을 표시하려면 도메인 이름과 함께 도메인 태그를 추가합니다. 예를 들면 다음과 같습니다.

    • 키: sagemaker:domain-name, 값: d-abcdefghij5k

  • 도메인의 특정 사용자 프로필에 노트북 작업을 표시하려면 사용자 프로필과 도메인 태그를 모두 추가합니다. 사용자 프로필 태그의 예는 다음과 같습니다.

    • 키: sagemaker:user-profile-name, 값: studio-user

  • 노트북 작업을 공백 에 표시하려면 공백과 도메인 태그를 모두 추가합니다. 스페이스 태그의 예는 다음과 같습니다.

    • 키: sagemaker:shared-space-name, 값: my-space-name

  • 도메인 또는 사용자 프로필 또는 공간 태그를 연결하지 않으면 Studio UI에 파이프라인 단계에서 생성된 노트북 작업이 표시되지 않습니다. 이 경우 훈련 작업 콘솔에서 기본 훈련 작업을 보거나 파이프라인 실행 목록에서 상태를 볼 수 있습니다.

대시보드에서 작업을 보는 데 필요한 태그를 설정한 후 작업을 보고 출력을 다운로드하는 방법에 노트북 작업 보기 대한 지침은 섹션을 참조하세요.

Studio에서 파이프라인 그래프 보기

노트북 작업 단계는 파이프라인의 일부이므로 Studio에서 파이프라인 그래프(DAG)를 볼 수 있습니다. 파이프라인 그래프에서 파이프라인 실행 및 추적 계보의 상태를 볼 수 있습니다. 세부 정보는 파이프라인 실행 세부 정보 보기을 참조하세요.

노트북에 파라미터 전달

파라미터를 노트북 작업에 전달하려면( parameters 인수 사용NotebookJobStep) 파라미터를 수신할 수 있도록 입력 노트북을 준비해야 합니다.

Papermill 기반 노트북 작업 실행기는 parameters 태그가 지정된 Jupyter 셀을 검색하고 이 셀 직후 새 파라미터 또는 파라미터 재정의를 적용합니다. 세부 정보는 노트북 파라미터화을 참조하세요.

이 단계를 수행했으면 다음 예제NotebookJobStep와 같이 파라미터를 에 전달합니다.

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

입력 노트북에서 Amazon EMR 클러스터에 연결

Studio의 Jupyter 노트북에서 Amazon EMR 클러스터에 연결하는 경우 Jupyter 노트북을 추가로 수정해야 할 수 있습니다. 노트북에서 다음 작업 중 하나를 수행해야 노트북에서 Amazon EMR 클러스터에 연결 하는지 확인하세요.

  • 파라미터를 Amazon EMR 연결 명령에 전달합니다. Studio는 Papermill을 사용하여 노트북을 실행합니다. 커널에서 SparkMagic Papermill이 정보를 에 전달하는 방식 때문에 Amazon EMR 연결 명령에 전달하는 파라미터가 예상대로 작동하지 않을 수 있습니다 SparkMagic.

  • 사용자 보안 인증을 Kerberos, LDAP또는 HTTP Basic Auth 인증 Amazon EMR 클러스터에 전달합니다. 를 통해 사용자 보안 인증을 전달해야 합니다 AWS Secrets Manager.

기본 옵션 설정

는 SageMaker SDK NotebookJobStep 인스턴스를 생성할 때마다 이러한 파라미터를 지정할 필요가 없도록 파라미터의 하위 집합에 대한 기본값을 설정하는 옵션을 제공합니다. 이러한 파라미터는 role, s3_root_uri, s3_kms_key, volume_kms_key, 및 subnets입니다security_group_ids. SageMaker 구성 파일을 사용하여 단계의 기본값을 설정합니다. SageMaker 구성 파일에 대한 자세한 내용은 SageMaker Python 에서 기본값 구성 및 사용을 참조하세요SDK.

노트북 작업 기본값을 설정하려면 다음 조각과 같이 구성 파일의 노트북 작업 섹션에 새 기본값을 적용합니다.

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'