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

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

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

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

SageMaker AI Python SDK를 사용하여 노트북 작업을 예약하는 방법을 보여주는 샘플 노트북을 보려면 노트북 작업 샘플 노트북을 참조하세요.

노트북 작업을 만드는 단계

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

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

    중요

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

    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년까지 매월 마지막 금요일 오전 10시 15분(UTC)에 실행되도록 파이프라인을 예약합니다. Cron 기반 예약에 대한 자세한 내용은 Cron-based schedules을 참조하세요.

    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)를 볼 수 있습니다. 파이프라인 그래프에서 파이프라인 실행 상태를 보고 계보를 추적할 수 있습니다. 세부 정보는 파이프라인 실행 세부 정보 보기을 참조하세요.

노트북에 파라미터 전달

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

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 Notebook에서 Amazon EMR 클러스터에 연결하는 경우 Jupyter Notebook을 추가로 수정해야 할 수 있습니다. 노트북에서 다음 작업 중 하나를 수행해야 하는지 노트북에서 Amazon EMR 클러스터에 연결 섹션을 확인하세요.

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

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

기본 옵션 설정

SageMaker AI SDK는 파라미터의 하위 집합에 대한 기본값을 설정하는 옵션을 제공하므로 NotebookJobStep 인스턴스를 생성할 때마다 이러한 파라미터를 지정할 필요가 없습니다. 이러한 파라미터는 role, s3_root_uri, s3_kms_key, volume_kms_key, subnetssecurity_group_ids입니다. SageMaker AI 구성 파일을 사용하여 단계의 기본값을 설정합니다. SageMaker AI 구성 파일에 대한 자세한 내용은 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'