튜닝 작업 완료 기준의 추적 및 설정 - Amazon SageMaker

튜닝 작업 완료 기준의 추적 및 설정

완료 기준을 사용하여 특정 조건 충족 시 자동 모델 튜닝(AMT)에게 튜닝 작업 중지를 지시할 수 있습니다. 이러한 조건을 사용하면 목표 지표와 대조하여 평가했을 때 개선되지 않는 최소 모델 성능 또는 최대 훈련 작업 수를 설정할 수 있습니다. 또한 튜닝 작업 진행 상황을 추적하여 작업을 계속할지 아니면 수동으로 중지할지 결정할 수 있습니다. 이 안내서에서 완료 기준을 설정하고, 튜닝 작업 진행 상황을 확인하고, 튜닝 작업을 수동으로 중지하는 방법을 알아보겠습니다.

튜닝 작업 완료 기준 설정

하이퍼파라미터 최적화 중에 튜닝 작업은 루프 내에서 여러 훈련 작업을 시작합니다. 튜닝 작업에서 수행하는 작업은 다음과 같습니다.

  • 훈련 작업 완료 여부를 확인하고 그에 따라 통계 업데이트하기

  • 다음에 평가할 하이퍼파라미터 조합을 결정합니다.

AMT는 튜닝 작업에서 시작된 훈련 작업을 지속적으로 확인하여 통계를 업데이트합니다. 이러한 통계에는 튜닝 작업 런타임 및 최고 훈련 작업이 포함됩니다. 그러면 AMT가 완료 기준에 따라 작업 중단 여부를 결정합니다. 이러한 통계를 확인하고 작업을 수동으로 중지할 수도 있습니다. 수동 작업 중단에 대한 자세한 정보는 튜닝 작업 수동 중지 섹션에서 확인하세요.

예를 들어, 튜닝 작업이 목표에 부합하는 경우 튜닝을 조기에 중단하여 리소스를 절약하거나 모델 품질을 보장할 수 있습니다. AMT는 완료 기준에 대조하여 작업 성과를 확인하고 기준 충족 시 튜닝 작업을 중단합니다.

다음과 같은 완료 기준을 지정할 수 있습니다.

  • MaxNumberOfTrainingJobs - 튜닝 중지 전 실행할 최대 훈련 작업 수.

  • MaxNumberOfTrainingJobsNotImproving - 현재 최고 훈련 작업에서 얻은 목표 지표에 비해 성과가 개선되지 않는 훈련 작업의 최대 수. 예를 들어, 최고 훈련 작업에서 정확도가 90%이고 MaxNumberOfTrainingJobsNotImproving이(가) 10(으)로 설정된 목표 지표를 반환할 경우 이 예제에서는 10 훈련 작업이 90%보다 높은 정확도를 반환하지 못하면 튜닝이 중지됩니다.

  • MaxRuntimeInSeconds - 일반 시계 시간 기준 최대 튜닝 작업 실행 시간(초

  • TargetObjectiveMetricValue - 튜닝 작업 평가 시 사용할 목표 지표 값. 이 값이 충족되면 AMT에서 튜닝 작업을 중지합니다.

  • CompleteOnConvergence - 내부 알고리즘이 최고 훈련 작업에서 얻은 목표 지표보다 1% 이상 개선되지 않을 것으로 판단한 튜닝을 중단하는 플래그.

완료 기준 선택

조건이 충족되면 하나 또는 여러 개의 완료 기준을 선택하여 하이퍼파라미터 튜닝 작업을 중지할 수 있습니다. 다음 지침에서 완료 기준을 선택하는 방법과 사용 사례에 가장 적합한 기준을 결정하는 방법을 알아보겠습니다.

  • ResourceLimits API에서 MaxNumberOfTrainingJobs을(를) 사용하여 튜닝 작업 중단 전 실행 가능한 최대 훈련 작업 수를 설정할 수 있습니다. 큰 숫자로 시작해서 튜닝 작업 목표에 맞는 모델 성능에 따라 조정합니다. 대부분의 사용자는 대략 50 이상의 값을 입력하여 최적의 하이퍼파라미터 구성을 찾습니다. 더 높은 수준의 모델 성능을 원하는 사용자는 200 이상의 훈련 작업을 사용합니다.

  • 지정된 수의 작업을 수행한 후에도 모델 성능이 향상되지 않을 경우 BestObjectiveNotImproving API에 있는 MaxNumberOfTrainingJobsNotImproving 필드로 훈련을 중단할 수 있습니다. 모델 성능은 목표 함수를 기준으로 평가됩니다. MaxNumberOfTrainingJobsNotImproving 충족 후 AMT는 튜닝 작업을 중지합니다. 튜닝 작업은 작업 초기에 가장 많이 진행되는 경향이 있습니다. 목표 함수에 대조하여 모델 성능을 개선하려면 튜닝 종료 무렵에 더 많은 훈렵 작업이 필요합니다. 목표 지표와 비교하여 유사한 훈련 작업 성과를 확인하여 MaxNumberOfTrainingJobsNotImproving 값을 선택합니다.

  • ResourceLimits API에 있는 MaxRuntimeInSeconds을(를) 사용하여 일반 시계 기준 최대 튜닝 작업 소요 시간을 설정합니다. 이 필드를 사용하여 튜닝 작업 완료 기한을 맞추거나 컴퓨팅 리소스를 제한할 수 있습니다.

    튜닝 작업의 총 예상 컴퓨팅 시간(초)은 다음 공식으로 구합니다.

    최대 예상 컴퓨팅 시간(초) = MaxRuntimeInSeconds * MaxParallelTrainingJobs * MaxInstancesPerTrainingJob

    참고

    튜닝 작업의 실제 지속 시간은 이 필드에 지정된 값과 약간 다를 수 있습니다.

  • TuningJobCompletionCriteria API에 있는 TargetObjectiveMetricValue을(를) 사용하여 튜닝 작업을 중지합니다. 튜닝 작업으로 시작한 훈련 작업이 이 목표 지표 값에 도달하면 튜닝 작업을 중지합니다. 사용 사례가 가능한 최상의 모델을 찾기 위해 컴퓨팅 리소스를 소비하는 대신 특정 성능 수준에 도달하는 데 의존하는 경우 이 필드를 사용합니다.

  • AMT가 튜닝 작업 수렴을 감지한 후에 큰 진전이 없을 것으로 보이는 경우, TuningJobCompletionCriteria API에 있는 CompleteOnConvergence을(를) 사용하여 튜닝 작업을 중단합니다. 다른 완료 기준에 어떤 값을 사용해야 하는지 명확하지 않은 경우 이 필드를 사용합니다. AMT는 다양한 벤치마크에서 개발 및 테스트한 알고리즘을 기반으로 수렴을 결정합니다. 튜닝 작업은 훈련 작업 중 어느 것도 유의미한 개선 효과를 얻지 못할 때(1% 이하) 수렴된 것으로 정의됩니다. 개선은 지금까지 가장 성과가 높은 작업에서 반환한 목표 지표를 기준으로 측정됩니다.

다양한 완료 기준 조합

동일한 튜닝 작업에서 서로 다른 완료 기준을 조합할 수도 있습니다. 완료 기준 중 하나라도 충족되면 AMT에서 튜닝 작업을 중지합니다. 예를 들어, 목표 지표를 충족할 때까지 모델을 튜닝하고 싶지만 작업 수렴 후에는 튜닝을 계속하고 싶지 않다면 다음 지침을 적용합니다.

  • TuningJobCompletionCriteria API에서 TargetObjectiveMetricValue을(를) 지정하여 도달할 목표 지표 값을 설정합니다.

  • AMT에서 모델 성능이 개선될 가능성이 낮다고 판단한 경우, CompleteOnConvergenceEnabled(으)로 설정하여 튜닝 작업을 중단합니다.

튜닝 작업 진행 상황 추적

DescribeHyperParameterTuningJob API를 사용하여 튜닝 작업이 실행되는 동안 언제든지 진행 상황을 추적할 수 있습니다. 튜닝 작업에 대한 추적 정보를 얻기 위해 완료 기준을 지정할 필요는 없습니다. 다음 필드에서 튜닝 작업 관련 통계를 얻을 수 있습니다.

  • BestTrainingJob - 지금까지 확보한 최고 훈련 작업을 설명하는 객체로서, 목표 지표와 대조하여 평가. 이 필드를 사용하여 현재 모델 성능과 이 최고 훈련 작업의 목표 지표 값을 확인합니다.

  • ObjectiveStatusCounters - 튜닝 작업에서 완료한 총 훈련 작업 수를 지정하는 객체. 튜닝 작업 평균 지속 시간을 추정하려면 ObjectiveStatusCounters 및 튜닝 작업 총 런타임을 사용합니다. 평균 지속 시간으로 튜닝 작업 실행 시간을 추정할 수 있습니다.

  • ConsumedResources - 튜닝 작업에 소비된 총 리소스(예: RunTimeInSeconds). ConsumedResources(DescribeHyperParameterTuningJob API에 있음)을(를) 동일 API에 있는 BestTrainingJob와(과) 대조합니다. 또한 ConsumedResources을(를) ListTrainingJobsfor HyperParameter TuningJob API의 응답과 대조하여 소비되는 리소스를 고려할 때 튜닝 작업이 만족스럽게 진행되고 있는지 평가할 수 있습니다.

  • TuningJobCompletionDetails – 다음을 포함하는 튜닝 작업 완료 정보.

    • 작업 수렴 시 수렴 감지 시점의 타임스탬프.

    • 모델 성능이 개선되지 않은 훈련 작업 수. 모델 성능은 최고 훈련 작업의 목표 지표를 기준으로 평가됩니다.

    튜닝 작업 완료 기준을 사용하여 튜닝 작업이 모델 성능을 개선할 가능성을 평가합니다. 완료 시까지 실행된 경우 모델 성능은 최상의 목표 지표와 비교 평가됩니다.

튜닝 작업 수동 중지

튜닝 작업을 완료 시까지 계속 실행할지 아니면 수동으로 중지할지 결정할 수 있습니다. DescribeHyperParameterTuningJob API에 있는 파라미터에서 반환된 정보를 사용하여 결정합니다(이전 튜닝 작업 진행 상황 추적 섹션 참조) 예를 들어, 여러 훈련 작업이 완료된 후에도 모델 성능이 개선되지 않으면 튜닝 작업을 중지할 수 있습니다. 모델 성능은 최상의 목표 지표와 비교 평가됩니다.

튜닝 작업을 수동으로 중지하려면 StopHyperParameterTuningJob API를 사용하고 중지할 튜닝 작업 이름을 입력합니다.