

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

# 솔루션 생성
<a name="create-solution"></a>

Amazon Personalize 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 사용하여 사용자 지정 솔루션을 생성할 수 있습니다. 다음은 Amazon Personalize 콘솔을 사용하여 솔루션을 생성하는 자세한 단계와 필수 필드만 사용하여 솔루션을 생성하는 방법을 보여주는 코드 예제를 포함합니다.

**Topics**
+ [솔루션 생성(콘솔)](#configure-solution-console)
+ [솔루션 생성(AWS CLI)](#configure-solution-cli)
+ [솔루션 생성(AWS)](#configure-solution-sdk)

## 솔루션 생성(콘솔)
<a name="configure-solution-console"></a>

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

 콘솔에서 솔루션을 생성하려면 데이터세트 그룹을 선택한 다음 솔루션 이름, 레시피 및 선택적 학습 구성을 지정합니다.

**솔루션을 구성하려면(콘솔)**

1. [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home)에서 Amazon Personalize 콘솔을 열고 계정에 로그인합니다.

1. **데이터세트 그룹** 페이지에서 데이터세트 그룹을 선택합니다.

1. **개요** 페이지의 **3단계**에서 다음 중 하나를 수행합니다.
   + 도메인 데이터세트 그룹을 만든 경우 **사용자 지정 리소스 사용**을 선택하고 **솔루션 생성**을 선택합니다.
   + 사용자 지정 데이터 세트 그룹을 생성한 경우 **솔루션 생성**을 선택합니다.

1. **솔루션 이름의 경우 솔루션에 대한 이름을 지정합니다.**

1. **솔루션 유형**에서 생성하려는 솔루션 유형을 선택합니다. 선택한 유형에 따라 사용 가능한 레시피가 달라집니다.
   + **항목 추천**을 선택하여 사용자를 위한 항목 추천을 받습니다. 개인 맞춤형 영화 추천을 예로 들 수 있습니다.
   + **작업 추천**을 선택하여 사용자를 위한 작업 추천을 받습니다. 예를 들어, 사용자를 위해 앱 다운로드와 같은 차선책 작업을 생성합니다.
   + 항목 데이터를 기반으로 사용자 세그먼트(사용자 그룹)를 가져오려면 **사용자 세분화**를 선택합니다.

1. **레시피**의 경우 레시피를 선택합니다([레시피 선택](working-with-predefined-recipes.md) 참조).

1. **태그**의 경우, 원하는 태그를 추가할 수 있습니다. Personalize 리소스 태그 지정에 대한 자세한 내용은 [Personalize 리소스에 태그 지정](tagging-resources.md)단원을 참조하세요.

1. **다음**을 선택합니다.

1. **학습 구성** 페이지에서 비즈니스 요구 사항에 맞게 솔루션을 사용자 지정합니다.
   + **자동 학습**에서 솔루션이 자동 학습을 사용할지 여부를 선택합니다. 자동 학습을 사용하는 경우 `Automatic training frequency`를 변경할 수 있습니다. 기본 학습 빈도는 7일마다입니다.

     자동 학습을 사용하는 것이 좋습니다. 이를 통해 추천 사항 관련성을 더 쉽게 유지할 수 있습니다. 학습 빈도는 비즈니스 요구 사항, 사용하는 레시피 및 데이터를 가져오는 빈도에 따라 달라집니다. 자세한 내용은 [자동 학습 구성](solution-config-auto-training.md) 섹션을 참조하세요. 관련성 유지에 대한 자세한 내용은 [추천 관련성 유지](maintaining-relevance.md) 섹션을 참조하세요.
   + **하이퍼파라미터 구성**에서 레시피와 비즈니스 니즈에 따라 모든 하이퍼파라미터 옵션을 구성합니다. 레시피에 따라 다른 하이퍼파라미터를 사용합니다. 사용 가능한 하이퍼파라미터는 [레시피 선택](working-with-predefined-recipes.md)의 개별 레시피를 참조하세요.
   + 레시피가 항목 추천이나 사용자 세그먼트를 생성한다면 **학습 열**에서 Amazon Personalize가 솔루션 버전을 생성할 때 고려하는 열을 선택적으로 선택합니다. 자세한 내용은 [교육 시 사용되는 열 구성](custom-config-columns.md) 섹션을 참조하세요.
   + **이벤트 구성**에서 항목 상호 작용 데이터세트에 EVENT\$1TYPE 또는 EVENT\$1TYPE과 EVENT\$1VALUE 열이 모두 있는 경우, 원하는 **이벤트 유형** 및 **이벤트 값 임계치** 필드를 사용하여 Amazon Personalize가 모델을 학습할 때 사용하는 항목 상호 작용 데이터를 선택합니다. 자세한 내용은 [교육에 사용할 항목 상호 작용 데이터 선택](event-values-types.md) 섹션을 참조하세요.

      이벤트 유형이 여러 개 있고 User-Personalization-v2 레시피 또는 Personalized-Ranking-v2 레시피를 사용하는 경우 유형에 따라 다른 가중치를 지정할 수도 있습니다. 예를 들어 클릭 이벤트보다 구매 이벤트에 더 많은 가중치를 부여하도록 솔루션을 구성할 수 있습니다. 자세한 내용은 [이벤트 구성으로 솔루션 최적화](optimizing-solution-events-config.md) 섹션을 참조하세요.
   + [사용자-개인 맞춤 레시피](native-recipe-new-item-USER_PERSONALIZATION.md) 또는 [개인 맞춤형-순위 레시피](native-recipe-search.md)레시피를 사용하는 경우, 원하는 **목표**를 지정하고 **목표 민감도**를 선택하여 관련성 이외에도 목표에 맞추어 솔루션을 최적화합니다. 목표 민감도는 Amazon Personalize가 상호작용 데이터를 통해 목표와 관련성을 기준으로 추천 항목의 균형을 맞추는 방법을 구성합니다. 자세한 내용은 [추가 목표에 맞게 솔루션 최적화](optimizing-solution-for-objective.md) 섹션을 참조하세요.

1. **다음**을 선택하고 솔루션 세부 정보를 검토합니다. 솔루션 구성을 생성한 후에는 변경할 수 없습니다.

1. **솔루션 생성을** 선택합니다. 솔루션을 생성한 후 Amazon Personalize는 1시간 이내에 첫 번째 솔루션 버전을 생성하기 시작합니다. 학습이 시작되면 솔루션 세부 정보 페이지의 **솔루션 버전** 섹션에서 모니터링할 수 있습니다. 자동으로 생성된 솔루션 버전에는 AUTOMATIC의 **학습 유형**이 있습니다.

    솔루션 버전이 활성화 상태이면 추천을 받아서 사용할 준비가 된 것입니다. 활성 솔루션 버전을 사용하는 방법은 추천 사항을 받는 방법에 따라 달라집니다.
   +  실시간 추천의 경우 Amazon Personalize 캠페인과 함께 활성 솔루션 버전을 배포해야 합니다. 캠페인을 사용하여 사용자를 위한 추천을 받을 수 있습니다. [캠페인을 사용하여 Amazon Personalize 솔루션 버전 배포캠페인 생성](campaigns.md)을(를) 참조하세요.
   + 배치 추천 사항의 경우 배치 추론 작업 또는 배치 세그먼트 작업을 생성할 때 ACTIVE 솔루션 버전을 지정합니다. [배치 항목 추천 받기](getting-batch-recommendations.md) 또는 [배치 사용자 세그먼트 가져오기](getting-user-segments.md)을 참조하세요.

## 솔루션 생성(AWS CLI)
<a name="configure-solution-cli"></a>

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

AWS CLI를 통해 솔루션을 생성하려면 `create-solution` 명령을 사용합니다. 이 명령에서는 [CreateSolution](API_CreateSolution.md) API 작업을 사용합니다. 다음 코드는 자동 학습을 사용하는 솔루션을 생성하는 방법을 보여줍니다. 5일마다 새 솔루션 버전을 자동으로 생성합니다.

코드를 사용하려면 코드를 업데이트하여 솔루션에 이름을 지정하고, 데이터세트 그룹의 Amazon 리소스 이름(ARN)을 지정하고, 선택적으로 학습 빈도를 변경하고, 사용할 레시피의 ARN을 지정합니다. 레시피에 대한 자세한 내용은 [레시피 선택](working-with-predefined-recipes.md) 단원을 참조하십시오.

```
aws personalize create-solution \
--name solution name \
--dataset-group-arn dataset group ARN \
--recipe-arn recipe ARN \
--perform-auto-training \
--solution-config "{\"autoTrainingConfig\": {\"schedulingExpression\": \"rate(5 days)\"}}"
```
+ 자동 학습을 사용하는 것이 좋습니다. 이를 통해 추천 사항 관련성을 더 쉽게 유지하고 개선할 수 있습니다. 기본적으로 모든 새 솔루션은 자동 학습을 사용합니다. 기본 학습 빈도는 7일마다입니다. 학습 빈도는 비즈니스 요구 사항, 사용하는 레시피 및 데이터를 가져오는 빈도에 따라 달라집니다. 자세한 내용은 [자동 학습 구성](solution-config-auto-training.md) 섹션을 참조하세요.
+ 레시피에 따라 코드를 수정하여 레시피 관련 속성 및 하이퍼파라미터를 구성하거나([하이퍼파라미터 및 HPO](customizing-solution-config-hpo.md) 참조), 학습에 사용되는 열을 구성하거나([교육 시(AWS CLI) 사용되는 열 구성](custom-config-columns.md#custom-config-columns-cli) 참조), 학습에 사용되는 상호 작용 데이터를 필터링할 수 있습니다([교육에 사용할 항목 상호 작용 데이터 선택](event-values-types.md) 참조).
+ [사용자-개인 맞춤 레시피](native-recipe-new-item-USER_PERSONALIZATION.md) 또는 [개인 맞춤형-순위 레시피](native-recipe-search.md) 레시피를 사용하면 관련성 이외에도 목표에 맞추어 솔루션을 최적화할 수 있습니다. 자세한 내용은 [추가 목표에 맞게 솔루션 최적화](optimizing-solution-for-objective.md) 섹션을 참조하세요.

솔루션을 생성한 후 나중에 사용할 수 있도록 솔루션 ARN을 기록합니다. 자동 학습을 사용하면 솔루션이 활성화된 된 후 1시간 이내에 솔루션 버전 생성이 시작됩니다. 1시간 내에 솔루션 버전을 수동으로 생성하는 경우 솔루션은 첫 번째 자동 학습을 건너뜁니다. 학습이 시작된 후 [ListSolutionVersions](https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutionVersions.html) API 작업을 사용하여 솔루션 버전의 Amazon 리소스 이름(ARN)을 가져올 수 있습니다. 상태를 가져오려면 [DescribeSolutionVersion](https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html) API 작업을 사용합니다.

 솔루션 버전이 활성화 상태이면 추천을 받아서 사용할 준비가 된 것입니다. 활성 솔루션 버전을 사용하는 방법은 추천 사항을 받는 방법에 따라 달라집니다.
+  실시간 추천의 경우 Amazon Personalize 캠페인과 함께 활성 솔루션 버전을 배포해야 합니다. 캠페인을 사용하여 사용자를 위한 추천을 받을 수 있습니다. [캠페인을 사용하여 Amazon Personalize 솔루션 버전 배포캠페인 생성](campaigns.md)을(를) 참조하세요.
+ 배치 추천 사항의 경우 배치 추론 작업 또는 배치 세그먼트 작업을 생성할 때 ACTIVE 솔루션 버전을 지정합니다. [배치 항목 추천 받기](getting-batch-recommendations.md) 또는 [배치 사용자 세그먼트 가져오기](getting-user-segments.md)을 참조하세요.

## 솔루션 생성(AWS)
<a name="configure-solution-sdk"></a>

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

AWS SDK를 사용하여 솔루션을 생성하려면 [CreateSolution](API_CreateSolution.md) API 작업을 사용합니다. 다음 코드는 자동 학습을 사용하는 솔루션을 생성하는 방법을 보여줍니다. 5일마다 새 솔루션 버전을 자동으로 생성합니다.

코드를 사용하려면 코드를 업데이트하여 솔루션에 이름을 지정하고, 데이터세트 그룹의 Amazon 리소스 이름(ARN)을 지정하고, 선택적으로 학습 빈도를 변경하고, 사용하려는 레시피의 ARN을 지정합니다. 레시피에 대한 자세한 내용은 [레시피 선택](working-with-predefined-recipes.md) 단원을 참조하십시오.

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize = boto3.client('personalize')

create_solution_response = personalize.create_solution(
  name = 'solution name',
  recipeArn = 'recipe ARN',
  datasetGroupArn = 'dataset group ARN',
  performAutoTraining = True,
  solutionConfig = {
    "autoTrainingConfig": {
      "schedulingExpression": "rate(5 days)"
    }
  }
)
solution_arn = create_solution_response['solutionArn']
print('solution_arn: ', solution_arn)
```

------
#### [ SDK for JavaScript v3 ]

```
import {
  CreateSolutionCommand,
  PersonalizeClient,
} from "@aws-sdk/client-personalize";

// create client
const personalizeClient = new PersonalizeClient({ region: "REGION" });

// set the solution parameters
export const solutionParam = {
  datasetGroupArn: "DATASET_GROUP_ARN" /* required */,
  recipeArn: "RECIPE_ARN" /* required */,
  name: "SOLUTION_NAME" /* required */,
  performAutoTraining: true /* optional, default is true */,
  solutionConfig: {
    autoTrainingConfig: {
      schedulingExpression:
        "rate(5 days)" /* optional, default is every 7 days */,
    },
  },
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new CreateSolutionCommand(solutionParam)
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------
+ 자동 학습을 사용하는 것이 좋습니다. 이를 통해 추천 사항 관련성을 더 쉽게 유지하고 개선할 수 있습니다. 기본적으로 모든 새 솔루션은 자동 학습을 사용합니다. 기본 학습 빈도는 7일마다입니다. 학습 빈도는 비즈니스 요구 사항, 사용하는 레시피 및 데이터를 가져오는 빈도에 따라 달라집니다. 자세한 내용은 [자동 학습 구성](solution-config-auto-training.md) 섹션을 참조하세요.
+ 레시피에 따라 코드를 수정하여 레시피 관련 속성 및 하이퍼파라미터를 구성하거나([하이퍼파라미터 및 HPO](customizing-solution-config-hpo.md) 참조), 학습에 사용되는 열을 구성하거나([교육 시(AWS SDK) 사용되는 열 구성](custom-config-columns.md#custom-configure-columns-sdk) 참조), 학습에 사용되는 상호 작용 데이터를 필터링할 수 있습니다([교육에 사용할 항목 상호 작용 데이터 선택](event-values-types.md) 참조).
+ [사용자-개인 맞춤 레시피](native-recipe-new-item-USER_PERSONALIZATION.md) 또는 [개인 맞춤형-순위 레시피](native-recipe-search.md) 레시피를 사용하면 관련성 이외에도 목표에 맞추어 솔루션을 최적화할 수 있습니다. 자세한 내용은 [추가 목표에 맞게 솔루션 최적화](optimizing-solution-for-objective.md) 섹션을 참조하세요.

솔루션을 생성한 후 나중에 사용할 수 있도록 솔루션 ARN을 기록합니다. 자동 학습을 사용하면 솔루션이 활성화된 된 후 1시간 이내에 솔루션 버전 생성이 시작됩니다. 1시간 내에 솔루션 버전을 수동으로 생성하는 경우 솔루션은 첫 번째 자동 학습을 건너뜁니다. 학습이 시작된 후 [ListSolutionVersions](https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutionVersions.html) API 작업을 사용하여 솔루션 버전의 Amazon 리소스 이름(ARN)을 가져올 수 있습니다. 상태를 가져오려면 [DescribeSolutionVersion](https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html) API 작업을 사용합니다.

다음 Python 코드를 사용하여 자동 학습이 시작될 때까지 기다릴 수 있습니다. `wait_for_training_to_start` 메서드는 첫 번째 솔루션 버전의 ARN을 반환합니다.

```
import time
import boto3


def wait_for_training_to_start(new_solution_arn):
    max_time = time.time() + 3 * 60 * 60    # 3 hours
    while time.time() < max_time:
        list_solution_versions_response = personalize.list_solution_versions(
            solutionArn=new_solution_arn
        )
        solution_versions = list_solution_versions_response.get('solutionVersions', [])
        if solution_versions:
            new_solution_version_arn = solution_versions[0]['solutionVersionArn']
            print(f"Solution version ARN: {new_solution_version_arn}")
            return new_solution_version_arn
        else:
            print(f"Training hasn't started yet. Training will start within the next hour.")
            time.sleep(60)


personalize = boto3.client('personalize')

solution_arn = "solution_arn"
solution_version_arn = wait_for_training_to_start(solution_arn)
```

 솔루션 버전이 활성화 상태이면 추천을 받아서 사용할 준비가 된 것입니다. 활성 솔루션 버전을 사용하는 방법은 추천 사항을 받는 방법에 따라 달라집니다.
+  실시간 추천의 경우 Amazon Personalize 캠페인과 함께 활성 솔루션 버전을 배포해야 합니다. 캠페인을 사용하여 사용자를 위한 추천을 받을 수 있습니다. [캠페인을 사용하여 Amazon Personalize 솔루션 버전 배포캠페인 생성](campaigns.md)을(를) 참조하세요.
+ 배치 추천 사항의 경우 배치 추론 작업 또는 배치 세그먼트 작업을 생성할 때 ACTIVE 솔루션 버전을 지정합니다. [배치 항목 추천 받기](getting-batch-recommendations.md) 또는 [배치 사용자 세그먼트 가져오기](getting-user-segments.md)을 참조하세요.