오늘 아마존 세이지 메이커 SageMaker 교육 인스턴스 대체 지원을 발표했습니다. Amazon SageMaker 자동 모델 튜닝(AMT) 사용자가 대체 컴퓨팅 리소스 구성을 지정할 수 있도록 합니다.
SageMaker 자동 모델 튜닝은 범위 알고리즘에 대해 지정한 하이퍼파라미터의 수입니다. 그런 다음 에 의해 측정된 최상의 성능을 내는 모델을 생성하는 하이퍼파라미터 값을 선택합니다. 메트릭 당신이 선택합니다.
이전에는 사용자에게 단일 인스턴스 구성을 지정할 수 있는 옵션만 있었습니다. 이렇게 하면 높은 사용률로 인해 지정된 인스턴스 유형을 사용할 수 없는 경우 문제가 발생할 수 있습니다. 과거에는 훈련 작업이 InsufficientCapacityError(ICE)로 실패했습니다. AMT는 많은 경우 이러한 실패를 피하기 위해 스마트 재시도를 사용했지만 지속적으로 낮은 용량에 직면하여 무력했습니다.
이 새로운 기능을 사용하면 선호하는 순서대로 인스턴스 구성 목록을 지정할 수 있으므로 용량이 부족한 경우 AMT 작업이 목록의 다음 인스턴스로 자동 대체됩니다.
다음 섹션에서는 ICE를 극복하기 위한 다음과 같은 높은 수준의 단계를 안내합니다.
- HyperParameter 조정 작업 구성 정의
- 교육 작업 매개변수 정의
- 초매개변수 조정 작업 생성
- 교육 작업 설명
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 실험이 대체될 수 있는 인스턴스 풀을 정의하는 방법을 보여주었습니다. InsufficientCapacityError
. 하이퍼파라미터 튜닝 작업 구성을 정의하는 방법과 최대 학습 작업 수와 최대 병렬 작업 수를 지정하는 방법을 살펴보았습니다. 마침내 우리는 그것을 극복하는 방법을 보았습니다. InsufficientCapacityError
~을 사용하여 HyperParameterTuningResourceConfig
훈련 작업 정의에서 지정할 수 있는 매개변수입니다.
AMT에 대해 자세히 알아보려면 다음을 방문하십시오. Amazon SageMaker 자동 모델 조정.
저자 소개
더그 음바야 데이터 및 분석에 중점을 둔 수석 파트너 솔루션 설계자입니다. Doug는 AWS 파트너와 긴밀하게 협력하여 클라우드에서 데이터 및 분석 솔루션을 통합할 수 있도록 지원합니다.
크루티 자야심하 라오 Scale-PSA 팀의 파트너 솔루션 설계자입니다. Kruthi는 파트너가 파트너 경로를 진행할 수 있도록 기술 검증을 수행합니다.