파이프라인 실행 - Amazon SageMaker

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

파이프라인 실행

파이프라인의 단계를 지시된 비순환 그래프(DAG)로 정의한 후 파이프라인을 실행하여 에 정의된 단계를 실행할 수 있습니다DAG. 다음 연습에서는 Amazon SageMaker Studio의 시각적 편집기 또는 Amazon SageMaker Python 을 drag-and-drop 사용하여 Amazon SageMaker 파이프라인을 실행하는 방법을 보여줍니다SDK.

파이프라인의 새 실행을 시작하려면 다음을 수행합니다.

Studio
  1. Amazon SageMaker Studio 시작 의 지침에 따라 Studio를 엽니다. SageMaker

  2. 왼쪽 탐색 창에서 파이프라인 을 선택합니다.

  3. (선택 사항) 파이프라인 목록을 이름으로 필터링하려면 검색 필드에 전체 또는 부분 파이프라인 이름을 입력합니다.

  4. 파이프라인 이름을 선택합니다.

  5. 실행 탭을 선택합니다.

  6. 다음 필수 정보를 입력하거나 업데이트합니다.

    • 이름 - AWS 리전의 계정에 고유한 이름입니다.

    • 설명 - 실행에 대한 선택적 설명입니다.

    • ProcessingInstanceType - 처리 작업에 사용할 Amazon EC2 인스턴스 유형입니다.

    • TrainingInstanceType - 훈련 작업에 사용할 Amazon EC2 인스턴스 유형

    • InputData – 입력 데이터에 URI 대한 Amazon S3입니다.

    • PreprocessScript – Amazon S3에서 사전 처리 스크립트URI로.

    • EvaluateScript - 모델 평가 스크립트에 URI 대한 Amazon S3입니다.

    • AccuracyConditionThreshold – 모델을 레지스트리에 등록하기 위해 달성할 모델 정확도의 임계값입니다.

    • ModelGroup - 모델을 등록할 레지스트리입니다.

    • MaximumParallelTrainingJobs – 병렬로 실행할 최대 훈련 작업 수입니다.

    • MaximumTrainingJobs – 실행할 최대 훈련 작업 수입니다.

  7. 생성(Create)을 선택합니다.

참고

파이프라인이 실패하면 상태 배너에 실패 상태가 표시됩니다. 실패한 단계의 문제를 해결한 후 상태 배너에서 재시도를 선택하여 해당 단계부터 파이프라인 실행을 재개합니다.

Studio Classic
  1. Amazon SageMaker Studio Classic에 로그인합니다. 자세한 내용은 Amazon SageMaker Studio Classic 시작을 참조하세요.

  2. Studio Classic 사이드바에서 아이콘( )을 선택합니다 Black square icon representing a placeholder or empty image. .

  3. 메뉴에서 파이프라인을 선택합니다.

  4. 파이프라인 목록을 이름으로 좁히려면 검색 필드에 전체 또는 부분 파이프라인 이름을 입력합니다.

  5. 파이프라인 이름을 선택합니다.

  6. 실행 목록의 실행 또는 그래프 탭에서 실행 생성을 선택합니다.

  7. 다음 필수 정보를 입력하거나 업데이트합니다.

    • 이름 – AWS 리전의 계정 내에서 고유해야 합니다.

    • ProcessingInstanceCount - 처리에 사용할 인스턴스 수입니다.

    • ModelApprovalStatus – 편의를 위해.

    • InputDataUrl - 입력 데이터의 Amazon S3URI입니다.

  8. 시작을 선택합니다.

파이프라인이 실행되면 상태 배너에서 세부 정보 보기를 선택하여 실행 세부 정보를 볼 수 있습니다.

실행을 중지하려면 상태 배너에서 중지를 선택합니다. 중지된 위치에서 실행을 재개하려면 상태 배너에서 재개를 선택합니다.

참고

파이프라인이 실패하면 상태 배너에 실패 상태가 표시됩니다. 실패한 단계의 문제를 해결한 후 상태 배너에서 재시도를 선택하여 해당 단계부터 파이프라인 실행을 재개합니다.

SageMaker Python 을 사용하여 파이프라인 정의를 생성한 후 SDK에 제출하여 실행 SageMaker 을 시작할 수 있습니다. 다음 튜토리얼에서는 파이프라인을 제출하고, 실행을 시작하고, 해당 실행의 결과를 검사하고, 파이프라인을 삭제하는 방법을 보여줍니다.

사전 조건

이 튜토리얼을 시작하려면 다음이 필요합니다.

  • SageMaker 노트북 인스턴스입니다. 

  • 파이프라인 파이프라인 정의입니다. 이 튜토리얼에서는 파이프라인 정의튜토리얼을 완료하여 생성한 파이프라인 정의를 사용하고 있다고 가정합니다.

1단계: 파이프라인 시작

먼저, 파이프라인을 시작해야 합니다.

파이프라인을 시작하려면
  1. JSON 파이프라인 정의를 검사하여 형식이 올바른지 확인합니다.

    import json json.loads(pipeline.definition())
  2. 파이프라인 정의가 없는 경우 파이프라인 서비스에 제출하여 파이프라인을 생성하거나, 없는 경우 파이프라인을 업데이트합니다. 에 전달된 역할은 파이프라인에서 단계에 정의된 모든 작업을 생성하는 데 사용됩니다.

    pipeline.upsert(role_arn=role)
  3. 파이프라인 실행을 시작합니다.

    execution = pipeline.start()

2단계: 파이프라인 실행 검사

다음으로 파이프라인 실행을 검사해야 합니다.

파이프라인 실행을 검사하려면
  1. 파이프라인 실행 상태를 설명하여 파이프라인이 성공적으로 생성되고 시작되었는지 확인합니다.

    execution.describe()
  2. 실행이 마칠 때까지 기다립니다.

    execution.wait()
  3. 실행 단계 및 상태를 나열합니다.

    execution.list_steps()

    출력은 다음과 같아야 합니다.

    [{'StepName': 'AbaloneTransform', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 870000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 45, 50, 492000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TransformJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:transform-job/pipelines-cfvy1tjuxdq8-abalonetransform-ptyjoef3jy'}}}, {'StepName': 'AbaloneRegisterModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 929000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 28, 15000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'RegisterModel': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model-package/abalonemodelpackagegroupname/1'}}}, {'StepName': 'AbaloneCreateModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 895000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 708000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Model': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model/pipelines-cfvy1tjuxdq8-abalonecreatemodel-jl94rai0ra'}}}, {'StepName': 'AbaloneMSECond', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 25, 558000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 329000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Condition': {'Outcome': 'True'}}}, {'StepName': 'AbaloneEval', 'StartTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 767000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 18, 80000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneeval-zfraozhmny'}}}, {'StepName': 'AbaloneTrain', 'StartTime': datetime.datetime(2020, 11, 21, 2, 34, 55, 867000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 34000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TrainingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:training-job/pipelines-cfvy1tjuxdq8-abalonetrain-tavd6f3wdf'}}}, {'StepName': 'AbaloneProcess', 'StartTime': datetime.datetime(2020, 11, 21, 2, 30, 27, 160000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 34, 48, 390000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneprocess-mgqyfdujcj'}}}]
  4. 파이프라인 실행이 완료되면 Amazon S3에서 결과 evaluation.json파일을 다운로드하여 보고서를 검사합니다.

    evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)

3단계: 파이프라인 실행을 위한 기본 파라미터 재정의

다른 파이프라인 파라미터를 지정하여 기본값을 재정의함으로써 파이프라인을 추가로 실행할 수 있습니다.

기본 파라미터를 재정의하려면
  1. 파이프라인 실행을 생성합니다. 그러면 모델 승인 상태 재정의가 “승인됨”으로 설정된 상태에서 또 다른 파이프라인 실행이 시작됩니다. 즉, RegisterModel 단계에서 생성된 모델 패키지 버전은 SageMaker 프로젝트와 같은 CI/CD 파이프라인을 통해 자동으로 배포할 수 있습니다. 자세한 내용은 MLOps SageMaker 프로젝트를 통한 자동화 단원을 참조하십시오.

    execution = pipeline.start( parameters=dict( ModelApprovalStatus="Approved", ) )
  2. 실행이 마칠 때까지 기다립니다.

    execution.wait()
  3. 실행 단계 및 상태를 나열합니다.

    execution.list_steps()
  4. 파이프라인 실행이 완료되면 Amazon S3에서 결과 evaluation.json파일을 다운로드하여 보고서를 검사합니다.

    evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)

4단계: 파이프라인 실행 중지 및 삭제

파이프라인 사용을 마치면 진행 중인 실행을 중단하고 파이프라인을 삭제할 수 있습니다.

파이프라인 실행 중지 및 삭제하려면
  1. 파이프라인 실행을 중지합니다.

    execution.stop()
  2. 파이프라인을 삭제합니다.

    pipeline.delete()