

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

# 하이퍼파라미터 및 HPO
<a name="customizing-solution-config-hpo"></a>

**중요**  
기본적으로 모든 새 솔루션은 자동 학습을 사용합니다. 자동 학습을 사용하면 솔루션이 활성화되어 있는 동안 학습 비용이 발생합니다. 불필요한 비용을 방지하기 위해 완료되면 [솔루션을 업데이트](updating-solution.md)하여 자동 학습을 끌 수 있습니다. 학습 비용에 대한 자세한 내용은 [Amazon Personalize 요금](https://aws.amazon.com/personalize/pricing/)을 참조하세요.

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

[CreateSolution](API_CreateSolution.md) 작업에 전달되는 [SolutionConfig](API_SolutionConfig.md)객체의 일부인 `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"
          }
      },
  },
}
```

레시피에 따라 다른 하이퍼파라미터를 사용합니다. 사용 가능한 하이퍼파라미터는 [레시피 선택](working-with-predefined-recipes.md)의 개별 레시피를 참조하세요.

## 하이퍼파라미터 최적화 활성화
<a name="hpo-tuning"></a>

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

[User-Personalization-v2](native-recipe-user-personalization-v2.md) 및 [Personalized-Ranking-v2](native-recipe-personalized-ranking-v2.md)를 사용하면 자동 학습을 활성화하면 Amazon Personalize가 90일마다 HPO를 자동으로 수행합니다. 자동 학습이 없으면 HPO가 발생하지 않습니다. 다른 모든 레시피의 경우 HPO를 활성화해야 합니다. HPO를 사용하려면 `performHPO`를 `true`로 설정하고 `hpoConfig`객체를 포함합니다.

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

다음 코드는 SDK for Python(Boto3)를 사용하여 활성화된 HPO로 솔루션을 생성하는 방법을 보여줍니다. 이 예제의 솔루션은 [사용자-개인 맞춤 레시피](native-recipe-new-item-USER_PERSONALIZATION.md)레시피를 사용하며 HPO를 `true`로 설정합니다. 코드는 `hidden_dimension`에 대한 값과 `categoricalHyperParameterRanges`및 `integerHyperParameterRanges`을 제공합니다. `continousHyperParameterRange`는 비어 있고 `hpoResourceConfig`는 `maxNumberOfTrainingJobs`및 `maxParallelTrainingJobs`을 설정합니다.

```
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에 대한 자세한 내용은 [자동 모델 튜닝](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning.html)을 참조하세요.

## 하이퍼파라미터 보기
<a name="viewing-hyperparameters"></a>

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

```
{
  "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"
  }
}
```