하이퍼파라미터 및 HPO - Personalize

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

하이퍼파라미터 및 HPO

중요

기본적으로 모든 새 솔루션은 자동 학습을 사용합니다. 자동 학습을 사용하면 솔루션이 활성화되어 있는 동안 학습 비용이 발생합니다. 불필요한 비용을 방지하기 위해 완료되면 솔루션을 업데이트하여 자동 학습을 끌 수 있습니다. 학습 비용에 대한 자세한 내용은 Amazon Personalize 요금을 참조하세요.

교육 전에 하이퍼파라미터를 지정하여 학습된 모델을 특정 사용 사례에 맞추어 최적화합니다. 이 파라미터는 값이 교육 프로세스 중에 결정되는 모델 파라미터와 대조됩니다.

CreateSolution 작업에 전달되는 SolutionConfig객체의 일부인 algorithmHyperParameters키를 사용하여 하이퍼파라미터를 지정합니다.

CreateSolution 요청의 요약 버전은 다음과 같습니다. 예제에는 solutionConfig객체가 포함되어 있습니다. solutionConfig를 사용하여 레시피의 기본 파라미터를 대체합니다.

{ "name": "string", "recipeArn": "string", "eventType": "string", "solutionConfig": { "optimizationObjective": { "itemAttribute": "string", "objectiveSensitivity": "string" }, "eventValueThreshold": "string", "featureTransformationParameters": { "string" : "string" }, "algorithmHyperParameters": { "string" : "string" }, "hpoConfig": { "algorithmHyperParameterRanges": { ... }, "hpoResourceConfig": { "maxNumberOfTrainingJobs": "string", "maxParallelTrainingJobs": "string" } }, }, }

레시피에 따라 다른 하이퍼파라미터를 사용합니다. 사용 가능한 하이퍼파라미터는 레시피 선택의 개별 레시피를 참조하세요.

하이퍼파라미터 최적화 활성화

하이퍼파라미터 최적화(HPO) 또는 튜닝은 특정 학습 목표에 최적의 하이퍼파라미터를 선택하는 작업입니다. 지정된 가능성 범위 내의 서로 다른 값으로 다양한 교육 작업을 실행하여 최적의 하이퍼파라미터를 결정합니다.

User-Personalization-v2Personalized-Ranking-v2를 사용하면 자동 훈련을 켜면 Personalize가 HPO 90일마다 자동으로 수행합니다. 자동 훈련이 없으면 아무 일도 HPO 발생하지 않습니다. 다른 모든 레시피의 경우를 활성화해야 합니다HPO. 를 사용하려면 performHPO를 로 HPO설정하고 hpoConfig 객체를 true포함합니다.

하이퍼파라미터에는 범주형, 연속 또는 정수 값이 지정될 수 있습니다. hpoConfig 객체에는 하이퍼파라미터와 범위를 지정하는 각 유형에 해당하는 키가 있습니다. 요청에 각 유형을 입력해야 하지만 레시피에 특정 유형의 파라미터가 없는 경우에는 비워 둘 수 있습니다. 예를 들어, 사용자-개인화에는 연속 유형의 조정 가능한 하이퍼파라미터가 없습니다. 따라서 continousHyperParameterRange의 경우 빈 배열을 전달합니다.

다음 코드는 SDK for Python(Boto3)을 사용하여가 HPO 활성화된 솔루션을 생성하는 방법을 보여줍니다. 예제의 솔루션은 사용자-개인 맞춤 레시피 레시피를 사용하며를 로 HPO 설정했습니다true. 코드는 hidden_dimension에 대한 값과 categoricalHyperParameterRangesintegerHyperParameterRanges을 제공합니다. continousHyperParameterRange는 비어 있고 hpoResourceConfigmaxNumberOfTrainingJobsmaxParallelTrainingJobs을 설정합니다.

import boto3 personalize = boto3.client('personalize') create_solution_response = personalize.create_solution( name = "solution name", datasetGroupArn = 'arn:aws:personalize:region:accountId:dataset-group/datasetGroupName', recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization', performHPO = True, solutionConfig = { "algorithmHyperParameters": { "hidden_dimension": "55" }, "hpoConfig": { "algorithmHyperParameterRanges": { "categoricalHyperParameterRanges": [ { "name": "recency_mask", "values": [ "true", "false"] } ], "integerHyperParameterRanges": [ { "name": "bptt", "minValue": 2, "maxValue": 22 } ], "continuousHyperParameterRanges": [ ] }, "hpoResourceConfig": { "maxNumberOfTrainingJobs": "4", "maxParallelTrainingJobs": "2" } } } )

에 대한 자세한 내용은 자동 모델 튜닝을 HPO참조하세요.

하이퍼파라미터 보기

DescribeSolution 작업을 호출하여 솔루션의 하이퍼파라미터를 볼 수 있습니다. 다음 예제는 DescribeSolution출력을 보여줍니다. 솔루션 버전을 생성하고 나면(모델 교육), DescribeSolutionVersion작업과 함께 하이퍼파라미터를 볼 수도 있습니다.

{ "solution": { "name": "hpo_coonfig_solution", "solutionArn": "arn:aws:personalize:region:accountId:solution/solutionName", "performHPO": true, "performAutoML": false, "recipeArn": "arn:aws:personalize:::recipe/aws-user-personalization", "datasetGroupArn": "arn:aws:personalize:region:accountId:dataset-group/datasetGroupName", "eventType": "click", "solutionConfig": { "hpoConfig": { "hpoResourceConfig": { "maxNumberOfTrainingJobs": "4", "maxParallelTrainingJobs": "2" }, "algorithmHyperParameterRanges": { "integerHyperParameterRanges": [ { "name": "training.bptt", "minValue": 2, "maxValue": 22 } ], "continuousHyperParameterRanges": [], "categoricalHyperParameterRanges": [ { "name": "data.recency_mask", "values": [ "true", "false" ] } ] } }, "algorithmHyperParameters": { "hidden_dimension": "55" } }, "status": "ACTIVE", "creationDateTime": "2022-07-08T12:12:48.565000-07:00", "lastUpdatedDateTime": "2022-07-08T12:12:48.565000-07:00" } }