Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence로 자동 모델 조정을 실행합니다. 수직 검색. 일체 포함.

Amazon SageMaker JumpStart로 자동 모델 조정 실행

2020년 XNUMX월 AWS 발표 일반적인 가용성 Amazon SageMaker 점프스타트, 능력 아마존 세이지 메이커 머신 러닝(ML)을 빠르고 쉽게 시작할 수 있도록 도와줍니다. 2022년 XNUMX월에도 발표 JumpStart의 API 지원. JumpStart는 일반적인 비즈니스 문제를 해결하는 다양한 종단 간 솔루션은 물론 인기 있는 ML 작업 전반에 걸쳐 사전 훈련된 다양한 모델의 클릭 한 번으로 미세 조정 및 배포를 제공합니다. 이러한 기능은 ML 프로세스의 각 단계에서 무거운 작업을 제거하여 고품질 모델을 더 간단하게 개발하고 배포 시간을 단축합니다.

이 게시물에서는 JumpStart로 자동 모델 튜닝을 실행하는 방법을 보여줍니다.

SageMaker 자동 모델 튜닝

전통적으로 ML 엔지니어는 시행착오 방법을 구현하여 올바른 하이퍼파라미터 집합을 찾습니다. 시행 착오에는 실험을 실행하는 데 필요한 리소스를 프로비저닝하는 동안 여러 작업을 순차적으로 또는 병렬로 실행하는 것이 포함됩니다.

SageMaker 자동 모델 튜닝, ML 엔지니어와 데이터 과학자는 시간이 많이 소요되는 모델 최적화 작업을 오프로드하고 SageMaker가 실험을 실행하도록 할 수 있습니다. SageMaker는 AWS 플랫폼의 탄력성을 활용하여 데이터 세트에서 여러 훈련 시뮬레이션을 효율적이고 동시에 실행하고 모델에 가장 적합한 하이퍼파라미터를 찾습니다.

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

자동 모델 튜닝은 다음 중 하나를 사용합니다. 베이지안 (기본값) 또는 닥치는대로의 하이퍼파라미터에 대한 최상의 값을 찾기 위한 검색 전략입니다. 베이지안 검색은 초매개변수 조정을 다음과 같이 취급합니다. 되돌아옴 문제. 다음 훈련 작업에 가장 적합한 하이퍼파라미터를 선택할 때 지금까지 문제에 대해 알고 있는 모든 것을 고려하고 알고리즘이 가장 잘 알려진 결과를 활용할 수 있도록 합니다.

이 게시물에서는 기본 베이지안 검색 전략을 사용하여 다음을 사용하여 JumpStart로 자동 모델 조정을 실행하는 단계를 보여줍니다. 라이트 GBM 모델입니다.

JumpStart는 현재 자동 모델 조정 기능이 있는 10개의 예제 노트북을 지원합니다. 또한 테이블 형식 데이터 모델링을 위해 널리 사용되는 XNUMX가지 알고리즘을 지원합니다. 작업 및 샘플 노트북에 대한 링크가 다음 표에 요약되어 있습니다.

태스크 사전 훈련된 모델 사용자 지정 데이터 세트 지원 지원되는 프레임워크 예제 노트북
이미지 분류 파이토치, 텐서플로우 JumpStart 소개 – 이미지 분류
객체 감지 파이토치, 텐서플로우, MXNet JumpStart 소개 – 개체 감지
시맨틱 분할 MX 넷 JumpStart 소개 – 시맨틱 분할
텍스트 분류 TensorFlow JumpStart 소개 – 텍스트 분류
문장 쌍 분류 TensorFlow, 포옹 얼굴 JumpStart 소개 – 문장 쌍 분류
질문 답변 파이 토치 JumpStart 소개 – 질문 답변
표 분류 LightGBM, CatBoost, XGBoost, 선형 학습기 JumpStart 소개 – 표 분류 – LightGBM, CatBoost
JumpStart 소개 – 표 분류 – XGBoost, 선형 학습기
테이블 형식 회귀 LightGBM, CatBoost, XGBoost, 선형 학습기 JumpStart 소개 – 테이블 형식 회귀 – LightGBM, CatBoost
JumpStart 소개 – 테이블 형식 회귀 – XGBoost, 선형 학습기

솔루션 개요

이 기술 워크플로는 JumpStart 모델을 자동으로 조정하는 데 필요한 다양한 Amazon Sagemaker 기능 및 단계에 대한 개요를 제공합니다.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence로 자동 모델 조정을 실행합니다. 수직 검색. 일체 포함.

다음 섹션에서는 LightGBM 알고리즘을 사용하여 JumpStart로 자동 모델 조정을 실행하는 방법에 대한 단계별 연습을 제공합니다. 우리는 동반 제공 수첩 이 연습을 위해.

다음과 같은 높은 수준의 단계를 거칩니다.

  1. JumpStart 사전 훈련된 모델 및 이미지 컨테이너를 검색합니다.
  2. 정적 하이퍼파라미터를 설정합니다.
  3. 조정 가능한 초매개변수 범위를 정의합니다.
  4. 자동 모델 튜닝을 초기화합니다.
  5. 튜닝 작업을 실행합니다.
  6. 최상의 모델을 엔드포인트에 배포합니다.

JumpStart 사전 훈련된 모델 및 이미지 컨테이너 검색

이 섹션에서는 미세 조정을 위해 LightGBM 분류 모델을 선택합니다. 모델이 실행되는 ml.m5.xlarge 인스턴스 유형을 사용합니다. 그런 다음 훈련 Docker 컨테이너, 훈련 알고리즘 소스 및 사전 훈련된 모델을 검색합니다. 다음 코드를 참조하십시오.

training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve(
    region=None,
    framework=None,
    model_id=train_model_id,
    model_version=train_model_version,
    image_scope=train_scope,
    instance_type=training_instance_type,
)
# Retrieve the training script
train_source_uri = script_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

정적 하이퍼파라미터 설정

이제 JumpStart에서 미리 구성된 대로 이 LightGBM 모델에 대한 기본 하이퍼파라미터를 검색합니다. 우리는 또한 재정의 num_boost_round 사용자 정의 값이 있는 하이퍼파라미터.

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

조정 가능한 초매개변수 범위 정의

다음으로 하이퍼파라미터 범위를 정의합니다. 자동 모델 튜닝으로 최적화. 모델에서 예상한 대로 하이퍼파라미터 이름을 정의한 다음 이 하이퍼파라미터에 대해 시도할 값 범위를 정의합니다. 자동 모델 튜닝은 샘플을 가져옵니다( max_jobs 매개변수) 베이지안 검색이라는 기술을 사용하여 하이퍼 매개변수 공간에서. 그려진 각 하이퍼파라미터 샘플에 대해 튜너는 해당 구성으로 모델을 평가하는 훈련 작업을 생성합니다. 다음 코드를 참조하십시오.

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

자동 모델 튜닝 초기화

우리는 견적 사전 훈련된 모델, 훈련 이미지 및 훈련 스크립트와 같이 훈련 작업을 정의하는 모든 필수 자산이 포함된 객체입니다. 그런 다음 정의합니다. 하이퍼 파라미터 튜너 SageMaker 하이퍼파라미터 조정 API와 상호 작용하는 개체입니다.

XNUMXD덴탈의 HyperparameterTuner 매개변수로 Estimator 객체, 최적의 하이퍼파라미터 세트가 결정되는 대상 메트릭, 총 교육 작업 수(max_jobs) 초매개변수 조정 작업을 시작하고 실행할 최대 병렬 교육 작업(max_parallel_jobs). 훈련 작업은 LightGBM 알고리즘으로 실행되며 최소값을 갖는 하이퍼파라미터 값 mlogloss 메트릭이 선택됩니다. 자동 모델 조정 구성에 대한 자세한 내용은 다음을 참조하십시오. 초매개변수 조정을 위한 모범 사례.

# Create SageMaker Estimator instance
tabular_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

앞의 코드에서 튜너에게 최대 10개의 실험을 실행하도록 지시합니다(max_jobs) 및 한 번에 두 개의 동시 실험(max_parallel_jobs). 이 두 매개변수를 통해 비용과 교육 시간을 통제할 수 있습니다.

튜닝 작업 실행

SageMaker 튜닝 작업을 시작하기 위해 하이퍼파라미터 튜너 개체의 fit 메서드를 호출하고 아마존 단순 스토리지 서비스 (Amazon S3) 훈련 데이터의 경로:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

자동 모델 튜닝이 최상의 하이퍼파라미터를 검색하는 동안 SageMaker 콘솔이나 다음에서 진행 상황을 모니터링할 수 있습니다. 아마존 클라우드 워치. 교육이 완료되면 최상의 모델의 미세 조정된 아티팩트가 교육 구성에 지정된 Amazon S3 출력 위치에 업로드됩니다.

엔드포인트에 최상의 모델 배포

튜닝 작업이 완료되면 최상의 모델이 선택되어 Amazon S3에 저장됩니다. 이제 배포 방법을 호출하여 해당 모델을 배포할 수 있습니다. HyperparameterTuner 생성된 엔드포인트에 사용할 인스턴스 수, 인스턴스 유형, 배포할 이미지 및 실행할 스크립트와 같은 필요한 매개변수 전달:

tuner.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    entry_point="inference.py",
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    endpoint_name=endpoint_name,
    enable_network_isolation=True
)

이제 추론 요청을 통해 생성된 엔드포인트를 테스트할 수 있습니다. 첨부 파일에서 나머지 과정을 따를 수 있습니다. 수첩.

결론

SageMaker의 자동 모델 튜닝을 사용하면 지원되는 알고리즘 중 하나를 사용하여 제공된 데이터 세트에서 훈련 작업을 실행하여 최상의 모델 버전을 찾을 수 있습니다. 자동 모델 튜닝을 사용하면 지정한 하이퍼파라미터 범위 내에서 최상의 하이퍼파라미터 구성을 자동으로 검색하여 모델을 튜닝하는 시간을 줄일 수 있습니다.

이 게시물에서 우리는 SageMaker API를 사용하여 JumpStart 사전 훈련된 모델에서 자동 모델 튜닝을 실행하는 가치를 보여주었습니다. LightGBM 알고리즘을 사용하고 최대 10개의 훈련 작업을 정의했습니다. 또한 JumpStart 모델 최적화를 지원하는 ML 프레임워크를 보여주는 예제 노트북에 대한 링크도 제공했습니다.

자동 모델 조정으로 JumpStart 모델을 최적화하는 방법에 대한 자세한 내용은 예제를 참조하십시오. 수첩.


저자에 관하여

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence로 자동 모델 조정을 실행합니다. 수직 검색. 일체 포함.더그 음바야 데이터 및 분석에 중점을 둔 수석 파트너 솔루션 설계자입니다. Doug는 AWS 파트너와 긴밀하게 협력하여 클라우드에서 데이터 및 분석 솔루션을 통합할 수 있도록 지원합니다.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence로 자동 모델 조정을 실행합니다. 수직 검색. 일체 포함.크루티 자야심하 라오 Scale-PSA 팀의 파트너 솔루션 설계자입니다. Kruthi는 파트너가 파트너 경로를 진행할 수 있도록 기술 검증을 수행합니다.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence로 자동 모델 조정을 실행합니다. 수직 검색. 일체 포함.지아니스 미트로풀로스 SageMaker의 소프트웨어 개발 엔지니어입니다. 자동 모델 튜닝.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence로 자동 모델 조정을 실행합니다. 수직 검색. 일체 포함.Ashish Khetan 박사 는 수석 응용 과학자입니다. Amazon SageMaker 점프스타트 및 Amazon SageMaker 내장 알고리즘 기계 학습 알고리즘을 개발하는 데 도움이 됩니다. 그는 기계 학습 및 통계적 추론 분야에서 활발한 연구원이며 NeurIPS, ICML, ICLR, JMLR 및 ACL 회의에서 많은 논문을 발표했습니다.

타임 스탬프 :

더보기 AWS 기계 학습