제퍼넷 로고

AWS 서비스를 사용하여 사용자 지정 기계 학습 모델을 배포하기위한 CI / CD 파이프 라인 구축

시간

아마존 세이지 메이커 모든 개발자와 데이터 과학자에게 기계 학습 (ML) 모델을 신속하게 구축, 교육 및 배포 할 수있는 기능을 제공하는 완전 관리 형 서비스입니다. SageMaker는 ML 프로세스의 각 단계에서 무거운 짐을 제거하여 고품질 ML 아티팩트를 더 쉽게 개발할 수 있도록합니다. AWS 서버리스 애플리케이션 모델 (AWS SAM)은 서버리스 애플리케이션을 구축하기위한 오픈 소스 프레임 워크입니다. 함수, API, 데이터베이스, 이벤트 소스 매핑, 단계를 표현하는 속기 구문을 제공합니다. AWS 단계 함수, 그리고 더.

일반적으로 ML 워크 플로는 ML 작업 시퀀스를 조정하고 자동화합니다. 워크 플로에는 데이터 수집, 교육, 테스트, ML 모델의 인간 평가, 추론을위한 모델 배포가 포함됩니다.

지속적 통합 및 지속적 전달 (CI / CD) 파이프 라인을 위해 AWS는 최근에 처음으로 목적에 맞게 구축되고 사용이 간편한 ML 용 CI / CD 서비스 인 Amazon SageMaker Pipelines를 출시했습니다. Pipelines는 직접 SageMaker 통합을 활용하는 ML 파이프 라인을 구축하기위한 기본 워크 플로 오케스트레이션 도구입니다. 자세한 내용은 Amazon SageMaker Pipelines를 사용하여 ML 워크 플로 구축, 자동화, 관리 및 확장.

이 게시물에서는 CI / CD 파이프 라인을 사용하여 Amazon SageMaker, Step Functions 및 AWS SAM 간의 서비스 통합을 사용하여 사용자 지정 ML 모델을 자동화하고 배포하는 확장 가능한 방법을 보여줍니다.

이 파이프 라인을 구축하려면 다음 AWS 서비스에 대해서도 잘 알고 있어야합니다.

  • AWS 코드빌드 – 소스 코드를 컴파일하고 테스트를 실행하며 배포 할 준비가 된 소프트웨어 패키지를 생성하는 완전 관리 형 지속적 통합 서비스
  • AWS 코드 파이프라인 – 릴리스 파이프 라인을 자동화하는 데 도움이되는 완전 관리 형 지속적 전달 서비스
  • Amazon Elastic Container Registry (Amazon ECR) – 컨테이너 레지스트리
  • AWS 람다 – 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수있는 서비스. 사용한 컴퓨팅 시간에 대해서만 비용을 지불합니다.
  • 아마존 단순 스토리지 서비스 (Amazon S3) – 업계 최고의 확장 성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스
  • AWS 단계 함수 – AWS Lambda 함수 및 여러 AWS 서비스를 쉽게 시퀀싱 할 수있는 서버리스 함수 오케 스트레이터

솔루션 개요

솔루션에는 두 가지 주요 섹션이 있습니다.

  • AWS SAM을 사용하여 SageMaker로 Step Functions 워크 플로 생성 – Step Functions는 최근 SageMaker와 네이티브 서비스 통합을 발표했습니다. 이 기능을 사용하여 ML 모델을 교육하고, ML 모델을 배포하고, 결과를 테스트하고, 추론 엔드 포인트를 노출 할 수 있습니다. 이 기능은 상태 전환이 최종 ML 모델 추론 엔드 포인트의 구성 및 배포로 진행되기 전에 사람의 승인을 기다리는 방법도 제공합니다.
  • CI / CD 파이프 라인을 사용하여 모델 배포 – SageMaker의 요구 사항 중 하나는 사용자 지정 모델의 소스 코드를 Amazon ECR과 같은 이미지 레지스트리에 Docker 이미지로 저장해야한다는 것입니다. 그런 다음 SageMaker는 교육 ​​및 추론을 위해이 Docker 이미지를 참조합니다. 이 게시물에서는 CodePipeline 및 CodeBuild를 사용하여 CI / CD 파이프 라인을 생성하여 Docker 이미지를 빌드, 태그 지정 및 Amazon ECR에 업로드 한 다음 Step Functions 워크 플로를 시작하여 SageMaker에서 사용자 지정 ML 모델을 교육하고 배포합니다. Docker 이미지.

다음 다이어그램은 MLOps CI / CD 파이프 라인의 일반적인 개요를 설명합니다.

워크 플로우에는 다음 단계가 포함됩니다.

  1. 데이터 과학자는 로컬 노트북 또는 SageMaker 노트북을 사용하여 사용자 지정 ML 모델 코드를 개발합니다. 변경 사항을 커밋하고 소스 코드 저장소에 푸시합니다.
  2. 코드 리포지토리의 웹훅은 AWS 클라우드에서 CodePipeline 빌드를 트리거합니다.
  3. CodePipeline은 소스 코드를 다운로드하고 빌드 프로세스를 시작합니다.
  4. CodeBuild는 필요한 소스 파일을 다운로드하고 명령 실행을 시작하여 로컬 Docker 컨테이너 이미지를 빌드하고 태그를 지정합니다.
  5. CodeBuild는 컨테이너 이미지를 Amazon ECR로 푸시합니다. 컨테이너 이미지는 저장소 커밋 해시에서 파생 된 고유 레이블로 태그가 지정됩니다.
  6. CodePipeline은 Step Functions를 호출하고 컨테이너 이미지 URI와 고유 한 컨테이너 이미지 태그를 Step Functions에 매개 변수로 전달합니다.
  7. Step Functions는 처음에 SageMaker 교육 작업을 호출하고 필요한 매개 변수를 전달하여 워크 플로를 시작합니다.
  8. SageMaker는 필요한 컨테이너 이미지를 다운로드하고 훈련 작업을 시작합니다. 작업이 완료되면 Step Functions는 SageMaker에게 모델을 생성하고 S3 버킷에 모델을 저장하도록 지시합니다.
  9. Step Functions는 S3 버킷에 제공된 테스트 데이터에서 SageMaker 일괄 변환 작업을 시작합니다.
  10. 일괄 변환 작업이 완료되면 Step Functions는 다음을 사용하여 사용자에게 이메일을 보냅니다. 아마존 단순 알림 서비스 (Amazon SNS). 이 이메일에는 배치 변환 작업의 세부 정보와 S3 버킷에 저장된 테스트 데이터 예측 결과에 대한 링크가 포함되어 있습니다. 이메일을 보낸 후 Step Function은 수동 대기 단계로 들어갑니다.
  11. Amazon SNS에서 보낸 이메일에는 테스트 결과를 수락하거나 거부 할 수있는 링크가 있습니다. 수신자는 S3 버킷에서 테스트 데이터 예측 결과를 수동으로 볼 수 있습니다. 결과가 만족스럽지 않은 경우 변경 사항을 거부하여 Step Functions 워크 플로를 취소 할 수 있습니다.
  12. 수신자가 변경 사항을 수락하면 아마존 API 게이트웨이 엔드 포인트는 대기중인 Step Functions 단계를 참조하는 포함 된 토큰을 사용하여 Lambda 함수를 호출합니다.
  13. Lambda 함수는 Step Functions를 호출하여 워크 플로를 계속합니다.
  14. Step Functions는 워크 플로우를 재개합니다.
  15. Step Functions는 SageMaker 엔드 포인트 구성 및 SageMaker 추론 엔드 포인트를 생성합니다.
  16. 워크 플로가 성공하면 Step Functions는 최종 SageMaker 추론 엔드 포인트에 대한 링크가 포함 된 이메일을 보냅니다.

AWS SAM을 사용하여 SageMaker로 Step Functions 워크 플로 생성

이 첫 번째 섹션에서는 Visual Studio Code에서 Step Functions ML 워크 플로를 쉽게 시각화하고 AWS SAM을 사용하여 AWS 환경에 배포합니다. 다음과 같은 새로운 기능 및 서비스 통합을 사용합니다. AWS Step Functions 용 AWS SAM에서 지원, SageMaker 통합을위한 Step Functions의 기본 지원VS Code에서 직접 워크 플로를 시각화하기위한 Step Functions 지원.

사전 조건

시작하기 전에 다음 전제 조건을 완료했는지 확인하십시오.

애플리케이션 템플릿 배포

시작하려면 다음 안내를 따르세요. GitHub의 애플리케이션 설정을 완료합니다. 또는 터미널로 전환하고 다음 명령을 입력 할 수 있습니다.

git clone https://github.com/aws-samples/sam-sf-sagemaker-workflow.git

디렉토리 구조는 다음과 같아야합니다.

. sam-sf-sagemaker-워크플로
| – cfn
| —- sam-template.yaml
| — 기능
| —- api_sagemaker_endpoint
| —- create_and_email_accept_reject_links
| —- 응답_to_links
| —- update_sagemakerEndpoint_API
| — 스크립트
| - 상태 머신
| —- mlops.asl.json

코드는 기본 AWS SAM 템플릿이 경로에있는 하위 폴더로 분류되었습니다. cfn/sam-template.yaml.

Step Functions 워크 플로는 폴더에 저장됩니다. statemachine/mlops.asl.json, 사용 된 기타 Lambda 함수는 functions 폴더에 있습니다.

AWS SAM 템플릿으로 시작하려면 루트 폴더에서 다음 bash 스크립트를 실행하십시오.

#Create S3 buckets if required before executing the commands.
S3_BUCKET=bucket-mlops #bucket to store AWS SAM template
S3_BUCKET_MODEL=ml-models #bucket to store ML models
STACK_NAME=sam-sf-sagemaker-workflow #Name of the AWS SAM stack
sam build -t cfn/sam-template.yaml #AWS SAM build sam deploy --template-file .aws-sam/build/template.yaml --stack-name ${STACK_NAME} --force-upload --s3-bucket ${S3_BUCKET} --s3-prefix sam --parameter-overrides S3ModelBucket=${S3_BUCKET_MODEL} --capabilities CAPABILITY_IAM

  sam build 명령은 모든 기능을 빌드하고 최종 AWS 클라우드 포메이션 주형. 그만큼 sam deploy 명령은 필요한 파일을 S3 버킷에 업로드하고 CloudFormation 템플릿 생성 또는 업데이트를 시작하여 필요한 AWS 인프라를 생성합니다.

템플릿이 성공적으로 완료되면 CloudFormation 콘솔로 이동합니다. 에 출력 탭에서 MLOpsStateMachineArn 나중에 사용할 값입니다.

다음 다이어그램은 Step Functions와 VS Code 통합을 사용하여 Step Functions에서 수행되는 워크 플로를 보여줍니다.

Amazon States Language의 다음 JSON 기반 스 니펫은 이전 다이어그램에서 시각화 된 워크 플로를 설명합니다.

{ "Comment": "This Step Function starts machine learning pipeline, once the custom model has been uploaded to ECR. Two parameters are expected by Step Functions are git commitID and the sagemaker ECR custom container URI", "StartAt": "SageMaker Create Training Job", "States": { "SageMaker Create Training Job": { "Type": "Task", "Resource": "arn:aws:states:::sagemaker:createTrainingJob.sync", "Parameters": { "TrainingJobName.$": "$.commitID", "ResourceConfig": { "InstanceCount": 1, "InstanceType": "ml.c4.2xlarge", "VolumeSizeInGB": 20 }, "HyperParameters": { "mode": "batch_skipgram", "epochs": "5", "min_count": "5", "sampling_threshold": "0.0001", "learning_rate": "0.025", "window_size": "5", "vector_dim": "300", "negative_samples": "5", "batch_size": "11" }, "AlgorithmSpecification": { "TrainingImage.$": "$.imageUri", "TrainingInputMode": "File" }, "OutputDataConfig": { "S3OutputPath": "s3://${S3ModelBucket}/output" }, "StoppingCondition": { "MaxRuntimeInSeconds": 100000 }, "RoleArn": "${SagemakerRoleArn}", "InputDataConfig": [ { "ChannelName": "training", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://${S3ModelBucket}/iris.csv", "S3DataDistributionType": "FullyReplicated" } } } ] }, "Retry": [ { "ErrorEquals": [ "SageMaker.AmazonSageMakerException" ], "IntervalSeconds": 1, "MaxAttempts": 1, "BackoffRate": 1.1 }, { "ErrorEquals": [ "SageMaker.ResourceLimitExceededException" ], "IntervalSeconds": 60, "MaxAttempts": 1, "BackoffRate": 1 } ], "Catch": [ { "ErrorEquals": [ "States.ALL" ], "ResultPath": "$.cause", "Next": "FailState" } ], "Next": "SageMaker Create Model" }, "SageMaker Create Model": { "Type": "Task", "Resource": "arn:aws:states:::sagemaker:createModel", "Parameters": { "ExecutionRoleArn": "${SagemakerRoleArn}", "ModelName.$": "$.TrainingJobName", "PrimaryContainer": { "ModelDataUrl.$": "$.ModelArtifacts.S3ModelArtifacts", "Image.$": "$.AlgorithmSpecification.TrainingImage" } }, "ResultPath": "$.taskresult", "Next": "SageMaker Create Transform Job", "Catch": [ { "ErrorEquals": ["States.ALL" ], "Next": "FailState" } ] }, "SageMaker Create Transform Job": { "Type": "Task", "Resource": "arn:aws:states:::sagemaker:createTransformJob.sync", "Parameters": { "ModelName.$": "$.TrainingJobName", "TransformInput": { "SplitType": "Line", "CompressionType": "None", "ContentType": "text/csv", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://${S3ModelBucket}/iris.csv" } } }, "TransformOutput": { "S3OutputPath.$": "States.Format('s3://${S3ModelBucket}/transform_output/{}/iris.csv', $.TrainingJobName)" , "AssembleWith": "Line", "Accept": "text/csv" }, "DataProcessing": { "InputFilter": "$[1:]" }, "TransformResources": { "InstanceCount": 1, "InstanceType": "ml.m4.xlarge" }, "TransformJobName.$": "$.TrainingJobName" }, "ResultPath": "$.result", "Next": "Send Approve/Reject Email Request", "Catch": [ { "ErrorEquals": [ "States.ALL" ], "Next": "FailState" } ] }, "Send Approve/Reject Email Request": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke.waitForTaskToken", "Parameters": { "FunctionName": "${CreateAndEmailLinkFnName}", "Payload": { "token.$":"$$.Task.Token", "s3_batch_output.$":"$.result.TransformOutput.S3OutputPath" } }, "ResultPath": "$.output", "Next": "Sagemaker Create Endpoint Config", "Catch": [ { "ErrorEquals": [ "rejected" ], "ResultPath": "$.output", "Next": "FailState" } ] }, "Sagemaker Create Endpoint Config": { "Type": "Task", "Resource": "arn:aws:states:::sagemaker:createEndpointConfig", "Parameters": { "EndpointConfigName.$": "$.TrainingJobName", "ProductionVariants": [ { "InitialInstanceCount": 1, "InitialVariantWeight": 1, "InstanceType": "ml.t2.medium", "ModelName.$": "$.TrainingJobName", "VariantName": "AllTraffic" } ] }, "ResultPath": "$.result", "Next": "Sagemaker Create Endpoint", "Catch": [ { "ErrorEquals": [ "States.ALL" ], "Next": "FailState" } ] }, "Sagemaker Create Endpoint": { "Type": "Task", "Resource": "arn:aws:states:::sagemaker:createEndpoint", "Parameters": { "EndpointName.$": "$.TrainingJobName", "EndpointConfigName.$": "$.TrainingJobName" }, "Next": "Send Email With API Endpoint", "Catch": [ { "ErrorEquals": [ "States.ALL" ], "Next": "FailState" } ] }, "Send Email With API Endpoint": { "Type": "Task", "Resource": "${UpdateSagemakerEndpointAPI}", "Catch": [ { "ErrorEquals": [ "States.ALL" ], "Next": "FailState" } ], "Next": "SuccessState" }, "SuccessState": { "Type": "Succeed" }, "FailState": { "Type": "Fail" } }
}

SageMaker 워크 플로를 생성하는 Step Functions 프로세스

이 섹션에서는 Step Functions를 사용하여 SageMaker 워크 플로를 생성하는 데 관련된 세부 단계에 대해 설명합니다.

Step Functions는 CodePipeline에서 전달한 커밋 ID를 고유 식별자로 사용하여 SageMaker 교육 작업을 생성합니다. 훈련 작업을 완료하는 데 시간이 오래 걸릴 수 있습니다. 작업을 기다리려면 .sync SageMaker 교육 작업의 리소스 섹션을 지정하는 동안.

훈련 작업이 완료되면 Step Functions는 모델을 생성하고 S3 버킷에 모델을 저장합니다.

Step Functions는 배치 변환 단계를 사용하여 S3 버킷에서 데이터 과학자가 처음에 제공 한 배치 데이터를 기반으로 모델을 평가하고 테스트합니다. 평가 단계가 완료되면 출력이 S3 버킷에 저장됩니다.

Step Functions는 수동 승인 단계로 들어갑니다. 이 상태를 생성하려면 콜백 URL. Step Functions에서이 상태를 구현하려면 .waitForTaskToken Lambda 리소스를 호출하는 동안 Lambda 함수에 토큰을 전달합니다.

Lambda 함수는 Amazon SNS를 사용하거나 아마존 심플 이메일 서비스 (Amazon SES)를 클릭하여 구독자에게 이메일을 보냅니다. 테스트하는 동안 수락 / 거부 이메일을 받으려면 SNS 주제에 이메일 주소를 추가해야합니다.

다음 스크린 샷과 같이 S3 버킷에 저장된 데이터에 대한 링크가 포함 된 이메일을 수신합니다. 이 데이터는 이전 단계에서 SageMaker가 생성 한 사용자 지정 ML 모델을 사용하여 일괄 변환되었습니다. 선택할 수 있습니다 수락 or 거절 당신의 결과에 따라.

당신이 선택하는 경우 거절, Step Functions는 워크 플로 실행을 중지합니다. 결과가 만족 스러우면 수락, API 링크를 트리거합니다. 이 링크는 포함 된 토큰과 유형을 API Gateway 또는 Lambda 엔드 포인트에 요청 파라미터로 전달하여 다음 Step Functions 단계로 진행합니다.

다음 Python 코드를 참조하십시오.

import json
import boto3
sf = boto3.client('stepfunctions')
def lambda_handler(event, context): type= event.get('queryStringParameters').get('type') token= event.get('queryStringParameters').get('token') if type =='success': sf.send_task_success( taskToken=token, output="{}" ) else: sf.send_task_failure( taskToken=token ) return { 'statusCode': 200, 'body': json.dumps('Responded to Step Function') }

Step Functions는 최종 고유 SageMaker 엔드 포인트 구성 및 추론 엔드 포인트를 생성합니다. 다음 스크린 샷에 표시된 것처럼 특수 리소스 값을 사용하여 Lambda 코드에서이를 달성 할 수 있습니다.

SageMaker 엔드 포인트가 준비되면 SageMaker 추론 엔드 포인트의 API에 대한 링크가 포함 된 이메일이 구독자에게 전송됩니다.

CI / CD 파이프 라인을 사용하여 모델 배포

이 섹션에서는 CI / CD 파이프 라인을 사용하여 사용자 지정 ML 모델을 배포합니다.

파이프 라인은 커스텀 모델의 소스 코드에 대한 업데이트를 감지하는 즉시 실행을 시작합니다. 파이프 라인은 리포지토리에서 소스 코드를 다운로드하고 Docker 이미지를 빌드 및 태그 지정하고 Docker 이미지를 Amazon ECR에 업로드합니다. Docker 이미지를 업로드 한 후 파이프 라인은 Step Functions 워크 플로를 트리거하여 SageMaker에 사용자 지정 모델을 교육하고 배포합니다. 마지막으로 파이프 라인은 SageMaker 추론 엔드 포인트에 대한 세부 정보와 함께 지정된 사용자에게 이메일을 보냅니다.

우리는 사용 Scikit은 자신의 컨테이너를 가져옵니다 사용자 지정 컨테이너 이미지를 빌드하고 홍채 데이터 셋 모델을 훈련하고 테스트합니다.

Step Functions 워크 플로가 준비되면 다음 페이지에 제공된 코드를 사용하여 전체 파이프 라인을 빌드합니다. GitHub 레포.

저장소에서 코드를 다운로드 한 후 디렉토리 구조는 다음과 같아야합니다.

. codepipeline-ecr-빌드-sf-실행
| - CFN
| —- params.json
| —- 파이프 라인 -cfn.yaml
| — 컨테이너
| —- decision_trees
| —- 로컬 테스트
| —- .dockerignore
| —- 도커 파일
| — 스크립트

. params.json 폴더의 파일 /cfn, GitHub 토큰, 리포지토리 이름, 이전에 생성 한 Step Function 상태 머신의 ARN을 제공합니다.

이제 CI / CD 파이프 라인에 필요한 서비스와 리소스를 생성합니다. CloudFormation 스택을 생성하려면 다음 코드를 실행하십시오.

aws cloudformation create-stack --stack-name codepipeline-ecr-build-sf-execution --template-body file://cfn/pipeline-cfn.yaml --parameters file://cfn/params.json --capabilities CAPABILITY_NAMED_IAM

또는 스택을 업데이트하려면 다음 코드를 실행하십시오.

aws cloudformation update-stack --stack-name codepipeline-ecr-build-sf-execution --template-body file://cfn/pipeline-cfn.yaml --parameters file://cfn/params.json --capabilities CAPABILITY_NAMED_IAM

CloudFormation 템플릿은 AWS 계정에 CodePipeline 파이프 라인을 배포합니다. 코드 변경 사항이 리포지토리에 커밋되는 즉시 파이프 라인이 실행되기 시작합니다. 파이프 라인 단계에서 소스 코드를 다운로드 한 후 CodeBuild는 Docker 이미지를 생성하고 이미지를 Amazon ECR로 푸시하기 전에 커밋 ID와 현재 타임 스탬프로 태그를 지정합니다. CodePipeline은 다음 단계로 이동하여 이전에 생성 한 Step Functions 단계를 트리거합니다.

Step Functions가 완료되면 새로 생성 된 SageMaker 추론 엔드 포인트를 참조하는 API Gateway URL에 대한 링크가 포함 된 최종 이메일이 생성됩니다.

워크 플로 테스트

워크 플로우를 테스트하려면 다음 단계를 완료하십시오.

  1. 코드 변경을 커밋하여 CodePipeline 빌드를 시작합니다. codepipeline-ecr-build-sf-execution/container 폴더에 있습니다.
  2. CodePipeline 콘솔에서 파이프 라인이 예상대로 다른 단계를 통해 전환되는지 확인합니다.

파이프 라인이 최종 상태에 도달하면 승인을 위해 이메일을 보내는 Step Functions 워크 플로를 시작합니다.

  1. Step Functions 워크 플로를 계속하려면 이메일을 승인하세요.

SageMaker 엔드 포인트가 준비되면 API 추론 엔드 포인트에 대한 링크가 포함 된 다른 이메일을 받아야합니다.

홍채 데이터 세트를 테스트하기 위해 추론 엔드 포인트에 단일 데이터 포인트를 전송 해 볼 수 있습니다.

  1. 이메일에서 추론 엔드 포인트 링크를 복사하고 다음 코드와 같이 bash 변수 INFERENCE_ENDPOINT에 할당 한 다음
INFERENCE_ENDPOINT=https://XXXX.execute-api.us-east-1.amazonaws.com/v1/invokeSagemakerAPI?sagemaker_endpoint=d236eba5-09-03-2020-18-29-15 curl --location --request POST ${INFERENCE_ENDPOINT} --header 'Content-Type: application/json' --data-raw '{ "data": "4.5,1.3,0.3,0.3"
}'
{"result": "setosa"} curl --location --request POST ${INFERENCE_ENDPOINT} --header 'Content-Type: application/json' --data-raw '{ "data": "5.9,3,5.1,1.8"
}'
{"result": "virginica"}

서로 다른 데이터를 보내면 서로 다른 추론 결과를 얻을 수 있습니다.

정리

지속적인 요금이 부과되지 않도록 CloudFormation 템플릿을 삭제하여 이전 단계에서 생성 한 리소스를 삭제하십시오. 또한 SageMaker 콘솔에서 사용하지 않는 모델, 엔드 포인트 구성 및 추론 엔드 포인트를 삭제하십시오.

결론

이 게시물에서는 일부 최신 AWS 서비스 통합을 사용하여 사용자 지정 SageMaker ML 모델을위한 ML 파이프 라인을 생성하는 방법을 보여주었습니다.

승인 링크를 보내는 동안 인증 및 암호화 계층을 추가하여이 ML 파이프 라인을 추가로 확장 할 수 있습니다. 프로젝트의 워크 플로에 필요하다고 판단되면 CodePipeline 또는 Step Functions에 더 많은 단계를 추가 할 수도 있습니다.

샘플 파일은 GitHub 레포. SageMaker의 관련 기능 및 추가 자료를 탐색하려면 다음을 참조하십시오.


저자에 관하여

사친 도시 AWS Professional Services 팀에서 근무하는 선임 애플리케이션 설계자입니다. 그는 뉴욕 대도시 지역을 기반으로합니다. Sachin은 고객이 클라우드 네이티브 AWS 서비스를 사용하여 애플리케이션을 최적화 할 수 있도록 지원합니다.

코인 스마트. 유로파 최고의 비트 코인-보르 스
출처 : https://aws.amazon.com/blogs/machine-learning/build-a-ci-cd-pipeline-for-deploying-custom-machine-learning-models-using-aws-services/

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?