알고리즘을 사용하여 하이퍼파라미터 튜닝 작업 실행 - 아마존 SageMaker

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

알고리즘을 사용하여 하이퍼파라미터 튜닝 작업 실행

하이퍼파라미터 튜닝 작업은 지정된 알고리즘과 광범위한 하이퍼파라미터를 사용하여 데이터 세트에 대해 여러 훈련 작업을 실행하여 최적의 모델 버전을 찾습니다. 그런 다음 선택한 지표로 측정된 값에 따라 최적의 성능을 보여준 모델을 만든 하이퍼파라미터 값을 선택합니다. 자세한 정보는 를 사용하여 자동 모델 튜닝을 수행하십시오. SageMaker 을 참조하세요.

Amazon SageMaker 콘솔, 하위 수준 Amazon SageMaker API 또는 Amazon SageMaker Python SDK를 사용하여 알고리즘 리소스를 생성하여 하이퍼파라미터 조정 작업을 생성할 수 있습니다.

알고리즘을 사용하여 하이퍼파라미터 튜닝 작업 실행(콘솔)

알고리즘을 사용하여 하이퍼파라미터 튜닝 작업을 실행하려면(콘솔)
  1. https://console.aws.amazon.com/sagemaker/ 에서 SageMaker 콘솔을 엽니다.

  2. 알고리즘을 선택합니다.

  3. 내 알고리즘 탭의 목록에서 생성한 알고리즘을 선택하거나 AWS Marketplace 구독 탭에서 구독한 알고리즘을 선택합니다.

  4. 하이퍼파라미터 튜닝 작업 생성을 선택합니다.

    이전에 선택한 알고리즘이 자동으로 선택됩니다.

  5. 하이퍼파라미터 튜닝 작업 생성 페이지에서 다음 정보를 제공합니다.

    1. 이 하이퍼파라미터 튜닝 작업의 시작점으로 이전 하이퍼파라미터 튜닝 작업의 정보를 사용하려면 웜 스타트에서 웜 스타트 활성화를 선택합니다. 자세한 정보는 웜 스타트 하이퍼파라미터 튜닝 작업 실행을 참조하세요.

      1. 입력 데이터가 이 하이퍼파라미터 튜닝 작업의 상위 작업의 입력 데이터와 동일한 경우 동일한 데이터 및 알고리즘을 선택하고 이 하이퍼파라미터 튜닝 작업에 추가 입력 데이터 또는 다른 입력 데이터를 사용하려면 전이 학습을 선택합니다.

      2. 상위 하이퍼파라미터 튜닝 작업에서 이 하이퍼파라미터 튜닝 작업의 상위 작업으로 사용할 하이퍼파라미터 튜닝 작업을 최대 5개까지 선택할 수 있습니다.

    2. 하이퍼파라미터 튜닝 작업 이름에 튜닝 작업의 이름을 입력합니다.

    3. IAM 역할의 경우 하이퍼파라미터 조정 작업을 실행하는 데 필요한 권한이 있는 IAM 역할을 선택하거나 SageMaker, 새 역할 생성을 선택하여 AmazonSageMakerFullAccess 관리형 정책이 연결된 역할을 생성할 수 SageMaker 있도록 합니다. 자세한 내용은 SageMaker 실행 역할 사용 방법을 참조하세요.

    4. VPC에는 튜닝 작업이 시작되는 훈련 작업이 액세스할 수 있도록 허용할 Amazon VPC를 선택합니다. 자세한 정보는 SageMaker 교육 작업자에게 Amazon VPC의 리소스에 대한 액세스 권한을 부여하십시오.을 참조하세요.

    5. 다음을 선택하세요.

    6. 목표 지표에서 하이퍼파라미터 튜닝 작업이 최적의 하이퍼파라미터 조합을 결정하는 데 사용할 지표를 선택하고 해당 지표를 최소화 또는 최대화할지 여부를 지정합니다. 자세한 정보는 최적의 훈련 작업 보기을 참조하세요.

    7. 하이퍼파라미터 구성에서, 튜닝 작업에서 검색하도록 할 튜닝 가능한 하이퍼파라미터 범위를 선택하고, 하이퍼파라미터 튜닝 작업에서 시작하는 모든 훈련 작업 내에서 일정하게 유지하려는 하이퍼파라미터의 정적 값을 설정합니다. 자세한 정보는 하이퍼파라미터 범위 정의을 참조하세요.

    8. 다음을 선택하세요.

    9. 입력 데이터 구성에, 하이퍼파라미터 튜닝 작업에 사용할 각 입력 데이터 채널에 대해 다음 값을 지정합니다. 하이퍼파라미터 튜닝 지원에 사용하고 있는 알고리즘 채널, 콘텐츠 유형, 지원되는 압축 유형, 각 채널에 지원되는 입력 모드를 알고리즘의 알고리즘 요약 페이지의 채널 사양 단원에서 확인할 수 있습니다.

      1. 채널 이름에는 입력 채널의 이름을 입력합니다.

      2. 콘텐츠 유형에는 알고리즘에서 채널에 대해 필요로 하는 데이터의 콘텐츠 유형을 입력합니다.

      3. 압축 유형에는 사용할 데이터 압축 유형을 선택합니다(있는 경우).

      4. 레코드 래퍼에는 알고리즘이 RecordIO 형식의 데이터를 예상하는 경우 RecordIO를 선택합니다.

      5. S3 데이터 유형, S3 데이터 배포 유형, S3 위치에는 적절한 값을 지정합니다. 이러한 값이 의미하는 내용은 S3DataSource 단원을 참조하세요.

      6. 프로비저닝된 ML 스토리지 볼륨에서 데이터를 다운로드하여 도커 볼륨에 해당 디렉터리를 탑재하려는 경우 입력 모드에서 파일을 선택합니다. Amazon S3에서 컨테이너로 직접 데이터를 스트리밍하려면 파이프를 선택합니다.

      7. 다른 입력 채널을 추가하려면 채널 추가를 선택합니다. 입력 채널을 추가했으면 완료를 선택합니다.

    10. 출력 위치에 다음 값을 지정합니다.

      1. S3 출력 경로에는 이 하이퍼파라미터 튜닝 작업이 시작하는 훈련 작업에서 출력(예: 모델 결과물)을 저장할 S3 위치를 선택합니다.

        참고

        이 위치에 저장된 모델 결과물을 사용하여 이 하이퍼파라미터 튜닝 작업에서 모델 또는 모델 패키지를 생성합니다.

      2. 암호화 키의 경우, S3 위치에 저장된 출력 데이터를 AWS KMS 키를 사용하여 SageMaker 암호화하려는 경우

    11. 리소스 구성에서 다음 정보를 제공합니다.

      1. 인스턴스 유형에서, 하이퍼파라미터 튜닝 작업에서 시작하는 각 훈련 작업에 사용할 인스턴스 유형을 선택합니다.

      2. 인스턴스 수에, 하이퍼파라미터 튜닝 작업에서 시작하는 각 훈련 작업에 사용할 ML 인스턴스 수를 입력합니다.

      3. 인스턴스당 추가 볼륨 크기(GB)에 하이퍼파라미터 튜닝 작업에서 시작하는 각 훈련 작업을 프로비저닝하려는 ML 스토리지 볼륨의 크기를 입력합니다. ML 스토리지 볼륨은 모델 결과물 및 증분 상태를 저장합니다.

      4. 암호화 키의 경우 SageMaker Amazon에서 AWS 키 관리 서비스 키를 사용하여 교육 인스턴스에 연결된 ML 스토리지 볼륨의 데이터를 암호화하도록 하려면 키를 지정하십시오.

    12. 리소스 제한에서 다음 정보를 제공합니다.

      1. 최대 훈련 작업에, 하이퍼파라미터 튜닝 작업에서 시작하도록 하려는 최대 훈련 작업 수를 지정합니다. 하이퍼파라미터 튜닝 작업 하나에서 최대 500개의 훈련 작업을 시작할 수 있습니다.

      2. 최대 병행 훈련 작업에, 하이퍼파라미터 튜닝 작업에서 시작할 수 있는 최대 동시 훈련 작업 수를 지정합니다. 하이퍼파라미터 튜닝 작업 하나에서 최대 10개의 동시 훈련 작업을 시작할 수 있습니다.

      3. 중지 조건에, 하이퍼파라미터 튜닝 작업에서 훈련 작업을 실행하려 최대 시간을 초, 분, 시간 또는 일 단위로 지정합니다.

    13. 태그에 하이퍼파라미터 튜닝 작업을 관리하기 위한 태그를 하나 이상 지정합니다. 각 태그는 키와 값(선택 사항)으로 구성됩니다. 태그 키는 리소스마다 고유해야 합니다.

    14. 작업 생성을 선택하여 하이퍼파라미터 튜닝 작업을 실행합니다.

알고리즘을 사용하여 하이퍼파라미터 튜닝 작업 실행(API)

SageMaker API를 사용하여 하이퍼파라미터 조정 작업을 실행하는 알고리즘을 사용하려면 전달하는 객체의 필드로 AlgorithmName 알고리즘의 이름 또는 Amazon Resource Name (ARN) 을 지정하십시오. AlgorithmSpecificationCreateHyperParameterTuningJob 하이퍼파라미터 튜닝에 SageMaker 대한 자세한 내용은 을 참조하십시오. 를 사용하여 자동 모델 튜닝을 수행하십시오. SageMaker

알고리즘을 사용하여 하이퍼파라미터 조정 작업 실행 (Amazon SageMaker Python SDK)

생성하거나 구독한 알고리즘을 사용하여 하이퍼파라미터 조정 작업을 생성하고 AlgorithmEstimator 객체를 생성한 다음 Amazon Resource Name (ARN) 또는 알고리즘 이름을 인수 값으로 지정합니다. AWS Marketplace algorithm_arn 그런 다음 estimator 인수의 값으로 생성한 AlgorithmEstimator를 사용하여 HyperparameterTuner 객체를 초기화합니다. 마지막으로 AlgorithmEstimatorfit 메서드를 호출합니다. 예:

from sagemaker import AlgorithmEstimator from sagemaker.tuner import HyperparameterTuner data_path = os.path.join(DATA_DIR, 'marketplace', 'training') algo = AlgorithmEstimator( algorithm_arn='arn:aws:sagemaker:us-east-2:764419575721:algorithm/scikit-decision-trees-1542410022', role='SageMakerRole', instance_count=1, instance_type='ml.c4.xlarge', sagemaker_session=sagemaker_session, base_job_name='test-marketplace') train_input = algo.sagemaker_session.upload_data( path=data_path, key_prefix='integ-test-data/marketplace/train') algo.set_hyperparameters(max_leaf_nodes=10) tuner = HyperparameterTuner(estimator=algo, base_tuning_job_name='some-name', objective_metric_name='validation:accuracy', hyperparameter_ranges=hyperparameter_ranges, max_jobs=2, max_parallel_jobs=2) tuner.fit({'training': train_input}, include_cls_metadata=False) tuner.wait()