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

사용자 개인화-v2 및 개인화 순위-v2를 사용하는 경우, 자동 교육을 켜면 Amazon Personalize는 90일마다 자동으로 교육을 수행합니다. HPO 자동 교육이 HPO 없으면 아무 일도 일어나지 않습니다. 다른 모든 레시피의 경우 활성화해야 합니다HPO. hpoConfig객체를 사용하고HPO, 설정하고true, performHPO 포함시키려면

하이퍼파라미터에는 범주형, 연속 또는 정수 값이 지정될 수 있습니다. 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" } }