SageMaker-제공된 프로젝트 템플릿 사용 - Amazon SageMaker

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

SageMaker-제공된 프로젝트 템플릿 사용

중요

2024년 9월 9일부터 AWS CodeCommit 리포지토리를 사용하는 프로젝트 템플릿은 더 이상 지원되지 않습니다. 새 프로젝트의 경우 타사 Git 리포지토리를 사용하는 사용 가능한 프로젝트 템플릿 중에서 선택합니다.

Amazon SageMaker 은 ML 모델의 지속적 통합 및 지속적 배포(CI/CD)를 위한 MLOps 솔루션을 생성하는 데 필요한 인프라를 생성하는 프로젝트 템플릿을 제공합니다. 이러한 템플릿을 사용하여 데이터를 처리하고, 기능을 추출하고, 모델을 훈련 및 테스트하고, SageMaker 모델 레지스트리에 모델을 등록하고, 추론을 위해 모델을 배포합니다. 요구 사항에 맞게 시드 코드와 구성 파일을 사용자 지정할 수 있습니다.

참고

2022년 7월 25일부터 프로젝트 템플릿을 사용하려면 추가 역할이 필요합니다. 필수 역할의 전체 목록과 역할 생성 방법에 대한 지침은 프로젝트를 사용하는 데 필요한 SageMaker Studio 권한 부여섹션을 참조하세요. 새 역할이 없는 경우 새 프로젝트를 생성하려고 할 때 CodePipeline arn:aws:iam::xxx:role/service-role/ 역할 AssumeRole 에서 수행할 권한이 없다는AmazonSageMakerServiceCatalogProductsCodePipelineRole 오류 메시지가 표시됩니다.

SageMaker 프로젝트 템플릿은 다음과 같은 코드 리포지토리, 워크플로 자동화 도구 및 파이프라인 단계를 제공합니다.

  • 코드 리포지토리 : AWS CodeCommit 또는 Bitbucket GitHub 과 같은 타사 Git 리포지토리

  • CI/CD 워크플로 자동화 : AWS CodePipeline 또는 Jenkins

  • 파이프라인 단계: 모델 구축 및 훈련, 모델 배포 또는 둘 다

다음 논의에서는 SageMaker 프로젝트를 생성할 때 선택할 수 있는 각 템플릿에 대한 개요를 제공합니다. 1단계: 프로젝트 연습 https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-projects-walkthrough.html생성 에 따라 Studio(또는 Studio Classic)에서 사용 가능한 템플릿을 볼 수도 있습니다.

실제 프로젝트를 생성하는 방법에 대한 지침은 step-by-step 프로젝트 연습 중 하나를 따르세요.

MLOps 모델 구축, 훈련 및 배포를 위한 템플릿

이 템플릿은 각각 독립적으로 사용할 수 있는 다음 두 템플릿의 조합이며 해당 템플릿에서 제공되는 모든 리소스를 포함합니다.

  • 코드 리포지토리: AWS CodeCommit

  • CI/CD 워크플로 자동화: AWS CodePipeline

MLOps 모델 구축 및 훈련용 템플릿

MLOps 솔루션이 데이터를 처리하고, 기능을 추출하고, 모델을 훈련 및 테스트하고, SageMaker 모델 레지스트리에 모델을 등록하도록 하려면 이 템플릿을 사용합니다.

이 템플릿은 다음 리소스를 제공합니다.

  • Python 코드에서 Amazon SageMaker 파이프라인을 생성하고 SageMaker 파이프라인을 생성하고 업데이트하는 방법을 보여주는 샘플 코드가 포함된 AWS CodeCommit 리포지토리입니다. 이 리포지토리에는 Studio(또는 Studio Classic)에서 열고 실행할 수 있는 샘플 Python 노트북도 있습니다.

  • 소스 및 빌드 단계가 있는 AWS CodePipeline 파이프라인입니다. 소스 단계는 CodeCommit 리포지토리를 가리킵니다. 빌드 단계는 해당 리포지토리에서 코드를 가져오고, SageMaker 파이프라인을 생성 및 업데이트하고, 파이프라인 실행을 시작하고, 파이프라인 실행이 완료될 때까지 기다립니다.

  • CodePipeline 및 CodeBuild 아티팩트를 포함한 아티팩트와 SageMaker 파이프라인에서 생성된 모든 아티팩트를 저장하는 Amazon S3 버킷이 실행됩니다.

다음 다이어그램은 모델을 구축하고 훈련하는 데 도움이 되는 이 템플릿에서 사용하는 워크플로와 AWS 리소스를 보여줍니다.

모델 구축 및 훈련을 위한 프로젝트 템플릿을 사용하여 구축된 파이프라인의 워크플로입니다.
MLOps 모델 배포용 템플릿

이 템플릿을 사용하여 실시간 추론을 위해 모델 레지스트리의 SageMaker 모델을 SageMaker 엔드포인트에 자동으로 배포합니다. 이 템플릿은 모델 레지스트리에 있는 변경 사항을 인식합니다. 새 모델 버전이 등록 및 승인되면 자동으로 배포가 시작됩니다.

템플릿은 CodeCommit 리포지토리에 구성 파일을 프로비저닝하여 모델 배포 단계, 엔드포인트를 인프라로 정의하기 위한 AWS CloudFormation 템플릿, 엔드포인트를 테스트하기 위한 시드 코드를 지정합니다.

이 템플릿은 다음 리소스를 제공합니다.

  • 스테이징 및 프로덕션 환경의 엔드포인트에 모델을 배포하는 샘플 코드가 포함된 AWS CodeCommit 리포지토리입니다.

  • 소스 deploy-to-staging, 빌드 및 deploy-to-production 단계가 있는 AWS CodePipeline 파이프라인입니다. 소스 단계는 CodeCommit 리포지토리를 가리키고 빌드 단계는 해당 리포지토리에서 코드를 가져와서 배포할 CloudFormation 스택을 생성합니다. deploy-to-staging 및 deploy-to-production 단계는 CloudFormation 스택을 해당 환경에 배포합니다. 스테이징 단계와 프로덕션 빌드 단계 사이에는 수동 승인 단계가 있으므로 MLOps 엔지니어가 모델을 프로덕션에 배포하기 전에 승인해야 합니다.

    또한 CodeCommit 리포지토리의 예제 코드에 자리 표시자 테스트가 포함된 프로그래밍 방식 승인 단계도 있습니다. 테스트를 추가하여 플레이스홀더 테스트를 대체할 수 있습니다.

  • CodePipeline 및 CodeBuild 아티팩트를 포함한 아티팩트와 SageMaker 파이프라인에서 생성된 모든 아티팩트를 저장하는 Amazon S3 버킷이 실행됩니다.

  • 모델 패키지 버전이 승인되거나 거부될 때 파이프라인을 시작하는 CloudWatch 이벤트입니다.

다음 다이어그램은 모델을 배포하는 데 도움이 되는 이 템플릿에서 사용하는 워크플로 및 AWS 리소스를 보여줍니다.

모델 배포를 위한 프로젝트 템플릿을 사용하여 구축된 파이프라인의 워크플로입니다.

앞서 언급한 것처럼 이 템플릿을 사용하여 실제 프로젝트를 만드는 데모는 프로젝트 안내서를 참조하세요.

프로젝트 템플릿에서 배포 리포지토리를 사용자 지정하여 모델 레지스트리에서 원하는 방식으로 모델을 배포할 수 있습니다. 템플릿은 CloudFormation 를 사용하여 실시간 엔드포인트를 예로 들어 생성합니다. 배포를 업데이트하여 대신 엔드포인트를 생성할 수 API 있는 , SageMaker SDKboto3 또는 기타 를 사용할 수 있습니다CFN. 배포 파이프라인의 일부로 CodeBuild 단계를 업데이트해야 하는 경우 사용자 지정 템플릿을 생성할 수 있습니다.

MLOps 모델 구축, 훈련, 배포 및 Amazon SageMaker Model Monitor용 템플릿

이 템플릿은 모델 구축, 훈련 및 배포를 위한 MLOps 템플릿의 확장입니다. 여기에는 템플릿의 모델 구축, 훈련 및 배포 구성 요소와 다음과 같은 유형의 모니터링을 제공하는 추가 Amazon SageMaker 모델 모니터 템플릿이 모두 포함됩니다.

  • 코드 리포지토리: AWS CodeCommit

  • CI/CD 워크플로 자동화: AWS CodePipeline

MLOps Amazon SageMaker Model Monitor용 템플릿

솔루션에 이 템플릿을 사용하여 Amazon SageMaker 데이터 품질, 모델 품질, 모델 편향 및 모델 설명 가능성 모니터 중 하나 이상을 MLOps 배포하여 SageMaker 추론 엔드포인트에서 배포된 모델을 모니터링할 수 있습니다.

이 템플릿은 다음 리소스를 제공합니다.

  • SageMaker 모델 레지스트리에서 모니터가 사용하는 기준을 가져오고 스테이징 및 프로덕션 환경에 대한 템플릿의 파라미터를 업데이트하는 샘플 Python 코드가 포함된 AWS CodeCommit 리포지토리입니다. 또한 Amazon SageMaker 모델 모니터를 생성하는 AWS CloudFormation 템플릿도 포함되어 있습니다.

  • 소스, 빌드 및 배포 단계가 있는 AWS CodePipeline 파이프라인입니다. 소스 단계는 CodePipeline 리포지토리를 가리킵니다. 빌드 단계는 해당 리포지토리에서 코드를 가져오고, 모델 레지스트리에서 기준을 가져오고, 스테이징 및 프로덕션 환경을 위한 템플릿 파라미터를 업데이트합니다. 배포 단계에서는 구성된 모니터를 스테이징 및 프로덕션 환경에 배포합니다. DeployStaging 단계 내의 수동 승인 단계에서는 승인하고 DeployProd 단계로 이동하기 InService 전에 프로덕션 SageMaker 엔드포인트가 있는지 확인해야 합니다.

  • 템플릿은 모델 구축, 훈련 및 배포를 위해 MLOps 템플릿에서 생성한 것과 동일한 S3 버킷을 사용하여 모니터의 출력을 저장합니다.

  • 스테이징 SageMaker 엔드포인트가 업데이트되거나 코드 변경이 리포지토리에 커밋될 AWS CodePipeline 때마다 두 개의 Amazon EventBridge 이벤트 규칙이 Amazon SageMaker 모델 모니터를 CodePipeline 시작합니다.

MLOps 이미지 구축, 모델 구축 및 모델 배포용 템플릿

이 템플릿은 MLOps 모델 구축, 훈련 및 배포를 위한 템플릿의 확장입니다. 여기에는 해당 템플릿의 모델 구축, 훈련 및 배포 구성 요소와 다음 옵션이 모두 포함됩니다.

  • 처리 이미지–파이라인 구축 포함

  • 훈련 이미지–파이라인 구축 포함

  • 추론 이미지–파이라인 구축 포함

템플릿을 사용하여 프로젝트 생성 중에 선택한 각 구성 요소에 대해 다음이 생성됩니다.

  • Amazon ECR리포지토리

  • SageMaker 이미지

  • 사용자 지정할 수 있는 Dockerfile이 포함된 CodeCommit 리포지토리

  • CodePipeline 리포지토리 변경으로 시작 CodePipeline 되는

  • Docker 이미지를 빌드하고 Amazon ECR리포지토리에 등록하는 CodeBuild 프로젝트

  • 일정에 CodePipeline 따라 를 시작하는 EventBridge 규칙

CodePipeline 이 시작되면 새 Docker 컨테이너를 빌드하고 Amazon ECR리포지토리에 등록합니다. Amazon ECR리포지토리에 새 컨테이너가 등록되면 SageMaker 이미지에 새 ImageVersion 컨테이너가 추가됩니다. 그러면 모델 구축 파이프라인이 시작되고, 배포 파이프라인이 시작됩니다.

새로 생성된 이미지는 해당하는 경우 워크플로의 모델 구축, 훈련 및 배포 부분에 사용됩니다.

MLOps 를 사용하여 타사 Git 리포지토리를 사용하여 모델 구축, 훈련 및 배포하기 위한 템플릿 CodePipeline

  • 코드 리포지토리: 타사 Git입니다. AWS 계정에서 GitHub 사용자 또는 조직으로의 AWS CodeStar 연결을 설정합니다. 키 sagemaker와 값 true가 포함된 태그를 이 AWS CodeStar 연결에 추가합니다.

  • CI/CD 워크플로 자동화: AWS CodePipeline

이 템플릿은 다음 리소스를 제공합니다.

  • 하나 이상의 고객 지정 Git 리포지토리와의 연결.

  • 소스 deploy-to-staging, 빌드 및 deploy-to-production 단계가 있는 AWS CodePipeline 파이프라인입니다. 소스 단계는 타사 Git 리포지토리를 가리키고 빌드 단계는 해당 리포지토리에서 코드를 가져와 배포할 CloudFormation 스택을 생성합니다. deploy-to-staging 및 deploy-to-production 단계는 스택을 CloudFormation 해당 환경에 배포합니다. 스테이징 단계와 프로덕션 빌드 단계 사이에는 수동 승인 단계가 있으므로 MLOps 엔지니어가 모델을 프로덕션에 배포하기 전에 승인해야 합니다.

  • Git 리포지토리를 시드 코드 정보로 채우는 AWS CodeBuild 프로젝트입니다. 이렇게 하려면 AWS 계정에서 Git 리포지토리 호스트의 계정으로 AWS CodeStar 연결해야 합니다.

  • CodePipeline 및 CodeBuild 아티팩트를 포함한 아티팩트와 SageMaker 파이프라인에서 생성된 모든 아티팩트를 저장하는 Amazon S3 버킷이 실행됩니다.

앞서 언급한 것처럼 이 템플릿을 사용하여 실제 프로젝트를 만드는 데모는 타사 Git 리포지토리를 사용한 프로젝트 안내서를 참조하세요.

MLOps Jenkins를 사용하여 타사 Git 리포지토리를 사용하여 모델 구축, 훈련 및 배포하기 위한 템플릿

  • 코드 리포지토리: 타사 Git입니다. AWS 계정에서 GitHub 사용자 또는 조직으로의 AWS CodeStar 연결을 설정합니다. 키 sagemaker와 값 true가 포함된 태그를 이 AWS CodeStar 연결에 추가합니다.

  • CI/CD 워크플로 자동화: Jenkins

이 템플릿은 다음 리소스를 제공합니다.

  • 하나 이상의 고객 지정 Git 리포지토리와의 연결.

  • 소스, 빌드, deploy-to-staging및 deploy-to-production 단계가 있는 Jenkins 파이프라인을 생성하는 시드 코드입니다. 소스 단계는 고객 지정 Git 리포지토리를 가리킵니다. 빌드 단계는 해당 리포지토리에서 코드를 가져와서 두 개의 CloudFormation 스택을 생성합니다. 배포 단계는 CloudFormation 스택을 각 환경에 배포합니다. 스테이징 단계와 프로덕션 단계 사이에는 승인 단계가 있습니다.

  • Git 리포지토리를 시드 코드 정보로 채우는 AWS CodeBuild 프로젝트입니다. 이렇게 하려면 AWS 계정에서 Git 리포지토리 호스트의 계정으로 AWS CodeStar 연결해야 합니다.

  • SageMaker 프로젝트 및 SageMaker 파이프라인의 아티팩트를 저장하는 Amazon S3 버킷입니다.

템플릿은 프로젝트와 소스 제어 리포지토리 간의 연결을 생성하지만 AWS 계정과 Jenkins 간의 통신을 설정하려면 추가 수동 단계를 수행해야 합니다. 자세한 단계는 타사 소스 제어 및 Jenkins를 사용하여 Amazon SageMaker 프로젝트 생성을 참조하세요.

지침은 다음 다이어그램에 표시된 아키텍처를 구축하는 데 도움이 되며, 이 예제에서는 를 소스 제어 리포지토리 GitHub 로 사용합니다. 그림과 같이 Git 리포지토리를 프로젝트에 연결하여 코드 버전을 체크인하고 관리합니다. Jenkins는 Git 리포지토리에서 모델 빌드 코드의 변경 사항을 감지하면 모델 빌드 파이프라인을 시작합니다. 또한 프로젝트를 Jenkins에 연결하여 모델 배포 단계를 오케스트레이션합니다.모델 배포 단계는 모델 레지스트리에 등록된 모델을 승인하거나 Jenkins가 모델 배포 코드의 변경 사항을 감지할 때 시작됩니다.

프로젝트 템플릿을 사용하여 구축된 파이프라인의 워크플로입니다.

요약하면 단계는 다음 작업을 통해 안내합니다.

  1. AWS 와 GitHub 계정 간의 연결을 설정합니다.

  2. Jenkins 계정을 만들고 필요한 플러그인을 가져옵니다.

  3. Jenkins IAM 사용자 및 권한 정책을 생성합니다.

  4. Jenkins 서버에서 Jenkins IAM 사용자의 AWS 자격 증명을 설정합니다.

  5. Jenkins 서버와의 통신을 위한 API 토큰을 생성합니다.

  6. CloudFormation 템플릿을 사용하여 새로 승인된 모델의 모델 레지스트리를 모니터링하는 EventBridge 규칙을 설정합니다.

  7. 모델 빌드 및 배포 코드를 사용하여 GitHub 리포지토리를 시드하는 SageMaker 프로젝트를 생성합니다.

  8. 모델 빌드 시드 코드를 사용하여 Jenkins 모델 빌드 파이프라인을 생성합니다.

  9. 모델 배포 시드 코드를 사용하여 Jenkins 모델 배포 파이프라인을 생성합니다.

Salesforce를 위한 모델 배포

  • 코드 리포지토리: AWS CodeCommit

  • CI/CD 워크플로 자동화: AWS CodePipeline

이 템플릿은 다음 리소스를 제공합니다.

  • Python 코드에서 Amazon SageMaker 파이프라인을 생성하고 파이프라인을 생성하고 업데이트하는 방법을 보여주는 샘플 코드가 포함된 AWS CodeCommit 리포지토리입니다. 이 리포지토리에는 Studio(또는 Studio Classic)에서 열고 실행할 수 있는 Python Jupyter 노트북도 있습니다.

  • 소스 및 빌드 단계가 있는 AWS CodePipeline 파이프라인입니다. 소스 단계는 CodeCommit 리포지토리를 가리킵니다. 빌드 단계는 리포지토리에서 코드를 가져오고, SageMaker 파이프라인을 생성 및 업데이트하고, 파이프라인 실행을 시작하고, 파이프라인 실행이 완료될 때까지 기다립니다.

  • CodePipeline 및 CodeBuild 아티팩트를 포함한 아티팩트와 SageMaker 파이프라인에서 생성된 모든 아티팩트를 저장하는 Amazon S3 버킷이 실행됩니다.

관리자가 Salesforce Data Cloud에서 SageMaker Studio로 데이터에 액세스하여 AI/ML 모델을 빌드할 수 있도록 추가 설정을 수행해야 할 수 있습니다. 자세한 정보와 지침은 블로그 게시물의 솔루션 개요를 참조하세요. Amazon SageMaker 및 Salesforce Data Cloud 통합을 사용하여 AI/ML로 Salesforce 앱을 구동하세요.

다음 다이어그램에서는 모델을 빌드하고 훈련하는 데 도움이 되는 이 템플릿에서 사용하는 고급 워크플로를 보여줍니다. Salesforce 데이터 클라우드와 Data Wrangler 간의 연결을 설정하고 데이터를 사전 처리한 후에는 Salesforce를 위한 모델 배포 프로젝트 템플릿을 사용하여 모델 훈련 및 배포를 자동화하세요. 템플릿은 사용자 지정 가능한 모델 배포 코드와 의 샘플 노트북 AWS CodePipeline 을 제공하여 모델을 훈련하고 SageMaker 모델 레지스트리에 등록합니다. 모델을 승인하면 엔드포인트가 API 스루 API 게이트웨이로 Salesforce에 노출되고 고객은 Salesforce 내에서 배포된 모델로 예측을 시작할 수 있습니다.

참고

이 템플릿은 API 게이트웨이 설정을 위한 전송 계층 보안(TLS) 정책 버전 1.0 및 1.1을 허용합니다. 사용자 지정 도메인 이름을 사용하여 이 구성을 더 안전하게 만들 수 있습니다. 자세한 내용은 REST 에 대한 사용자 지정 도메인 이름 설정을 APIs참조하세요.

Salesforce 프로젝트 템플릿에서 사용하는 단계를 간략하게 나타낸 다이어그램입니다.

블로그 게시물 Amazon SageMaker 및 Salesforce Data Cloud 통합을 사용하여 AI/ML로 Salesforce 앱을 구동하면 다음 단계를 안내하는 자세한 지침이 제공됩니다.

  1. Salesforce용 프로젝트 템플릿 모델 배포를 선택하고 보안 관리자 이름을 입력합니다.

  2. 리포지토리를 복제하여 사용자 지정이 가능한 SageMaker제공 샘플 노트북 및 모델 배포 코드를 사용합니다.

  3. Data Wrangler로 데이터를 사전 처리합니다.

    1. Salesforce 데이터 클라우드에 대한 연결을 생성하고 데이터를 Data Wrangler로 가져옵니다.

    2. Data Wrangler를 사용하여 몇 가지 변환 예시를 사용하여 데이터를 준비합니다.

    3. Data Wrangler 구성을 사용하여 데이터를 처리하는 처리 작업을 시작합니다.

  4. 모델을 훈련합니다.

  5. 모델 레지스트리에 모델을 등록합니다.

  6. 모델 레지스트리에서 모델을 승인합니다.

  7. SageMaker 콘솔에서 엔드포인트를 봅니다.

  8. Salesforce Einstein StudioAPIURL에서 를 호출하여 Einstein Studio에서 모델 추론을 등록하고 사용합니다.

다음 다이어그램은 Salesforce Data Cloud Integration과 함께 SageMaker 프로젝트 템플릿에서 사용하는 워크플로 및 AWS 리소스를 자세히 보여줍니다.

Salesforce 프로젝트 템플릿에서 사용하는 단계 및 리소스를 나타낸 다이어그램입니다.

타사 Git 리포지토리를 사용하도록 SageMaker 프로젝트 업데이트

AmazonSageMakerServiceCatalogProductsUseRole 역할에 연결된 관리형 정책은 타사 Git 템플릿과 함께 사용할 수 있도록 2021년 7월 27일에 업데이트되었습니다. 이 날짜 이후에 Amazon SageMaker Studio(또는 Studio Classic)에 온보딩하고 프로젝트 템플릿을 활성화하는 사용자는 새 정책을 사용합니다. 이 날짜 이전에 온보딩한 사용자는 이러한 템플릿을 사용하려면 정책을 업데이트해야 합니다. 다음 중 하나를 사용하여 정책을 업데이트합니다.

  • 역할 삭제 및 Studio(또는 Studio Classic) 설정 토글

    1. IAM 콘솔에서 를 삭제합니다AmazonSageMakerServiceCatalogProductsUseRole.

    2. Studio(또는 Studio Classic) 제어판에서 설정 편집을 선택합니다.

    3. 두 설정을 모두 전환한 다음 제출을 선택합니다.

  • IAM 콘솔에서 에 다음 권한을 추가합니다AmazonSageMakerServiceCatalogProductsUseRole.

    { "Effect": "Allow", "Action": [ "codestar-connections:UseConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*", "Condition": { "StringEqualsIgnoreCase": { "aws:ResourceTag/sagemaker": "true" } } }, { "Effect": "Allow", "Action": [ "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::sagemaker-*" ] }