Amazon SageMaker 자동 모델 조정은 이제 SageMaker 교육 인스턴스 폴백 PlatoBlockchain 데이터 인텔리전스를 지원합니다. 수직 검색. 일체 포함.

Amazon SageMaker 자동 모델 조정은 이제 SageMaker 교육 인스턴스 폴백을 지원합니다.

오늘 아마존 세이지 메이커 SageMaker 교육 인스턴스 대체 지원을 발표했습니다. Amazon SageMaker 자동 모델 튜닝(AMT) 사용자가 대체 컴퓨팅 리소스 구성을 지정할 수 있도록 합니다.

SageMaker 자동 모델 튜닝은 범위 알고리즘에 대해 지정한 하이퍼파라미터의 수입니다. 그런 다음 에 의해 측정된 최상의 성능을 내는 모델을 생성하는 하이퍼파라미터 값을 선택합니다. 메트릭 당신이 선택합니다.

이전에는 사용자에게 단일 인스턴스 구성을 지정할 수 있는 옵션만 있었습니다. 이렇게 하면 높은 사용률로 인해 지정된 인스턴스 유형을 사용할 수 없는 경우 문제가 발생할 수 있습니다. 과거에는 훈련 작업이 InsufficientCapacityError(ICE)로 실패했습니다. AMT는 많은 경우 이러한 실패를 피하기 위해 스마트 재시도를 사용했지만 지속적으로 낮은 용량에 직면하여 무력했습니다.

이 새로운 기능을 사용하면 선호하는 순서대로 인스턴스 구성 목록을 지정할 수 있으므로 용량이 부족한 경우 AMT 작업이 목록의 다음 인스턴스로 자동 대체됩니다.

다음 섹션에서는 ICE를 극복하기 위한 다음과 같은 높은 수준의 단계를 안내합니다.

  1. HyperParameter 조정 작업 구성 정의
  2. 교육 작업 매개변수 정의
  3. 초매개변수 조정 작업 생성
  4. 교육 작업 설명

HyperParameter 조정 작업 구성 정의

XNUMXD덴탈의 HyperParameterTuningJobConfig 개체는 검색 전략, 교육 작업을 평가하는 데 사용되는 목표 메트릭, 검색할 매개변수 범위 및 튜닝 작업에 대한 리소스 제한을 포함하여 튜닝 작업을 설명합니다. 이 측면은 오늘의 기능 릴리스에서 변경되지 않았습니다. 그럼에도 불구하고 우리는 완전한 예를 제공하기 위해 그것을 살펴볼 것입니다.

XNUMXD덴탈의 ResourceLimits 개체는 이 조정 작업에 대한 최대 훈련 작업 및 병렬 훈련 작업 수를 지정합니다. 이 예에서 우리는 무작위 검색 전략 및 최대 10개의 작업 지정(MaxNumberOfTrainingJobs) 및 5개의 동시 작업(MaxParallelTrainingJobs) 한 번에.

XNUMXD덴탈의 ParameterRanges object는 이 튜닝 작업이 검색하는 하이퍼파라미터의 범위를 지정합니다. 검색할 하이퍼파라미터의 이름과 최소값 및 최대값을 지정합니다. 이 예에서는 Continuous 및 Integer 매개변수 범위의 최소값과 최대값과 하이퍼 매개변수의 이름("eta", "max_depth")을 정의합니다.

AmtTuningJobConfig={
            "Strategy": "Random",
            "ResourceLimits": {
              "MaxNumberOfTrainingJobs": 10,
              "MaxParallelTrainingJobs": 5
            },
            "HyperParameterTuningJobObjective": {
              "MetricName": "validation:rmse",
              "Type": "Minimize"
            },
            "ParameterRanges": {
              "CategoricalParameterRanges": [],
              "ContinuousParameterRanges": [
                {
                    "MaxValue": "1",
                    "MinValue": "0",
                    "Name": "eta"
                }
              ],
              "IntegerParameterRanges": [
                {
                  "MaxValue": "6",
                  "MinValue": "2",
                  "Name": "max_depth"
                }
              ]
            }
          }

교육 작업 매개변수 정의

훈련 작업 정의에서 지정한 알고리즘을 사용하여 훈련 작업을 실행하는 데 필요한 입력을 정의합니다. 교육이 완료된 후 SageMaker는 결과 모델 아티팩트를 Amazon Simple Storage Service(Amazon S3) 지정한 위치.

이전에는 아래에서 인스턴스 유형, 개수 및 볼륨 크기를 지정했습니다. ResourceConfig 매개변수. 이 매개변수 아래의 인스턴스를 사용할 수 없는 경우 ICE(Insufficient Capacity Error)가 발생했습니다.

이를 방지하기 위해 이제 HyperParameterTuningResourceConfig 매개변수 TrainingJobDefinition, 여기서 대체할 인스턴스 목록을 지정합니다. 이러한 인스턴스의 형식은 ResourceConfig. 작업은 사용 가능한 인스턴스 구성을 찾기 위해 목록을 위에서 아래로 탐색합니다. 인스턴스를 사용할 수 없는 경우 ICE(Insufficient Capacity Error) 대신 목록의 다음 인스턴스가 선택되어 ICE를 극복합니다.

TrainingJobDefinition={
            "HyperParameterTuningResourceConfig": {
      		"InstanceConfigs": [
            		{
                		"InstanceType": "ml.m4.xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		},
            		{
                		"InstanceType": "ml.m5.4xlarge",
                		"InstanceCount": 1,
                		"VolumeSizeInGB": 5
            		}
        		 ]
    		  },
            "AlgorithmSpecification": {
              "TrainingImage": "433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest",
              "TrainingInputMode": "File"
            },
            "InputDataConfig": [
              {
                "ChannelName": "train",
                "CompressionType": "None",
                "ContentType": "json",
                "DataSource": {
                  "S3DataSource": {
                    "S3DataDistributionType": "FullyReplicated",
                    "S3DataType": "S3Prefix",
                    "S3Uri": "s3://<bucket>/test/"
                  }
                },
                "RecordWrapperType": "None"
              }
            ],
            "OutputDataConfig": {
              "S3OutputPath": "s3://<bucket>/output/"
            },
            "RoleArn": "arn:aws:iam::340308762637:role/service-role/AmazonSageMaker-ExecutionRole-20201117T142856",
            "StoppingCondition": {
              "MaxRuntimeInSeconds": 259200
            },
            "StaticHyperParameters": {
              "training_script_loc": "q2bn-sagemaker-test_6"
            },
          }

초매개변수 조정 작업 실행

이 단계에서는 위에서 정의한 하이퍼파라미터 튜닝 리소스 구성으로 하이퍼파라미터 튜닝 작업을 생성하고 실행합니다.

조정 구성, 교육 작업 정의 및 작업 이름을 지정하여 SageMaker 클라이언트를 초기화하고 작업을 생성합니다.

import boto3
sm = boto3.client('sagemaker')     
                    
sm.create_hyper_parameter_tuning_job(
    HyperParameterTuningJobName="my-job-name",
    HyperParameterTuningJobConfig=AmtTuningJobConfig,
    TrainingJobDefinition=TrainingJobDefinition) 

SageMaker 교육 인스턴스 폴백 지원으로 AMT 작업을 실행하면 사용자가 부족한 용량을 스스로 극복할 수 있으므로 작업 실패 가능성이 줄어듭니다.

교육 작업 설명

다음 함수는 실험 중에 사용된 모든 인스턴스 유형을 나열하고 SageMaker 교육 인스턴스가 리소스 할당 중에 목록의 다음 인스턴스로 자동 폴백되었는지 확인하는 데 사용할 수 있습니다.

def list_instances(name):
    job_list = []
    instances = []
    def _get_training_jobs(name, next=None):
        if next:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name, NextToken=next)
        else:
            list = sm.list_training_jobs_for_hyper_parameter_tuning_job(
            HyperParameterTuningJobName=name)
        for jobs in list['TrainingJobSummaries']:
            job_list.append(jobs['TrainingJobName'])
        next = list.get('NextToken', None)
        if next:
            _get_training_jobs(name, next=next)
            pass
        else:
            pass
    _get_training_jobs(name)


    for job_name in job_list:
        ec2 = sm.describe_training_job(
        TrainingJobName=job_name
        )
        instances.append(ec2['ResourceConfig'])
    return instances

list_instances("my-job-name")  

위 함수의 출력은 AMT 작업이 실험을 실행하는 데 사용하는 모든 인스턴스를 표시합니다.

결론

이 게시물에서는 다음과 같은 경우 AMT 실험이 대체될 수 있는 인스턴스 풀을 정의하는 방법을 보여주었습니다. InsufficientCapacityError. 하이퍼파라미터 튜닝 작업 구성을 정의하는 방법과 최대 학습 작업 수와 최대 병렬 작업 수를 지정하는 방법을 살펴보았습니다. 마침내 우리는 그것을 극복하는 방법을 보았습니다. InsufficientCapacityError ~을 사용하여 HyperParameterTuningResourceConfig 훈련 작업 정의에서 지정할 수 있는 매개변수입니다.

AMT에 대해 자세히 알아보려면 다음을 방문하십시오. Amazon SageMaker 자동 모델 조정.


저자 소개

Amazon SageMaker 자동 모델 조정은 이제 SageMaker 교육 인스턴스 폴백 PlatoBlockchain 데이터 인텔리전스를 지원합니다. 수직 검색. 일체 포함.더그 음바야 데이터 및 분석에 중점을 둔 수석 파트너 솔루션 설계자입니다. Doug는 AWS 파트너와 긴밀하게 협력하여 클라우드에서 데이터 및 분석 솔루션을 통합할 수 있도록 지원합니다.

Amazon SageMaker 자동 모델 조정은 이제 SageMaker 교육 인스턴스 폴백 PlatoBlockchain 데이터 인텔리전스를 지원합니다. 수직 검색. 일체 포함.크루티 자야심하 라오 Scale-PSA 팀의 파트너 솔루션 설계자입니다. Kruthi는 파트너가 파트너 경로를 진행할 수 있도록 기술 검증을 수행합니다.

Amazon SageMaker 자동 모델 조정은 이제 SageMaker 교육 인스턴스 폴백 PlatoBlockchain 데이터 인텔리전스를 지원합니다. 수직 검색. 일체 포함.버나드 졸란스 Amazon SageMaker 자동 모델 조정 소프트웨어 개발 엔지니어입니다.

타임 스탬프 :

더보기 AWS 기계 학습