

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

# 솔루션 버전 수동 생성
<a name="creating-a-solution-version"></a>

[Amazon Personalize에서 사용자 지정 솔루션 구성](customizing-solution-config.md)을 완료하면 학습을 시작할 준비가 된 것입니다.
+  솔루션이 자동 학습을 사용하는 경우 솔루션은 지정한 학습 빈도에 따라 솔루션 버전을 생성합니다. 기본적으로 모든 새 솔루션은 자동 학습을 사용하여 7일마다 새 솔루션 버전을 생성합니다. 솔루션 버전을 수동으로 생성할 수 있습니다. 자세한 내용은 [자동 학습 구성](solution-config-auto-training.md) 섹션을 참조하세요.
+ 솔루션에 대한 자동 학습을 끄거나 수동으로 학습하려는 경우 솔루션 버전을 수동으로 생성할 수 있습니다. 솔루션 버전은 학습된 기계 학습 모델을 말합니다.** 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWSSDK를 사용하여 솔루션 버전을 생성할 수 있습니다. 솔루션 버전이 CREATE\_PENDING 또는 CREATE\_IN\_PROGRESS 상태인 경우, [StopSolutionVersionCreation](API_StopSolutionVersionCreation.md)작업을 사용하여 솔루션 버전 생성 프로세스를 중지할 수 있습니다. [솔루션 버전 생성 중지](stop-solution-version.md)을(를) 참조하세요.

오류로 인해 교육이 완료되지 않은 경우, 교육 비용은 청구되지 않습니다. 솔루션 버전이 CREATE\_PENDING 또는 CREATE\_IN\_PROGRESS 상태인 경우, 솔루션 버전 생성 프로세스를 중지할 수 있습니다. 솔루션 버전 생성을 중지하려면 솔루션 버전 세부 정보 페이지로 이동한 다음 **중지**를 선택합니다. 자세한 내용은 [솔루션 버전 생성 중지](stop-solution-version.md) 섹션을 참조하세요.

**Topics**
+ [솔루션 버전 생성(콘솔)](#create-solution-version-console)
+ [솔루션 버전 생성(AWS CLI)](#create-solution-version-cli)
+ [솔루션 버전 생성(AWS SDK)](#create-solution-version-sdk)

## 솔루션 버전 생성(콘솔)
<a name="create-solution-version-console"></a>

Amazon Personalize 콘솔을 사용하여 새 솔루션 버전을 수동으로 생성하려면 솔루션의 세부 정보 페이지에서 학습을 시작합니다.

**솔루션 버전을 생성하려면**

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

1. 데이터세트 그룹 페이지로 이동하여 새 솔루션이 포함된 데이터세트 그룹을 선택합니다.

1. 탐색 창의 **사용자 지정 리소스**에서 **솔루션 및 레시피**를 선택합니다.

1. **솔루션 및 레시피** 페이지에서 솔루션 버전을 생성하려는 솔루션을 선택합니다.

1. 솔루션 개요 페이지에서 **솔루션 버전 생성**을 선택하여 새 모델 학습을 시작합니다.

솔루션 세부 정보 페이지의 **솔루션 버전** 단원에서 교육 진행 상황을 추적할 수 있습니다. 교육이 완료되면 상태가 **활성으로** 표시되며, Personalize에서 제공하는 지표를 사용하여 교육을 평가할 수 있습니다. 자세한 내용은 [지표를 사용하여 Amazon Personalize 솔루션 버전 평가](working-with-training-metrics.md) 섹션을 참조하세요.

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

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

솔루션이 ACTIVE인 경우, 다음 명령을 실행하여 모델을 교육시킵니다. `solution arn`을 [Amazon Personalize에서 사용자 지정 솔루션 구성](customizing-solution-config.md)에서 제공하는 솔루션 리소스 이름(ARN)으로 대체하세요.

```
aws personalize create-solution-version \
  --solution-arn {{solution arn}}
```

솔루션 버전 ARN이 예를 들어, 다음과 같이 표시됩니다.

```
{
  "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/SolutionName/<version-id>"
}
```

`describe-solution-version` 명령을 사용하여 솔루션 버전의 교육 상태를 확인합니다. 이전 단계에서 반환된 솔루션 버전 ARN을 입력합니다. API에 대한 자세한 내용은 [DescribeSolutionVersion](API_DescribeSolutionVersion.md)단원을 참조하세요.

```
aws personalize describe-solution-version \
  --solution-version-arn {{solution version arn}}
```

솔루션 버전의 속성과 학습 `status`가 표시됩니다. 처음에 상태는 CREATE PENDING으로 표시됩니다. 예를 들면 다음과 같이 표시됩니다.

```
{
  "solutionVersion": {
      "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/solutionName/<version-id>",
      ...,
      "status": "CREATE PENDING"
  }
}
```

`status`이 `ACTIVE`이면 교육이 완료된 것이므로, Personalize에서 제공하는 지표를 사용하여 교육을 평가할 수 있습니다. 자세한 내용은 [지표를 사용하여 Amazon Personalize 솔루션 버전 평가](working-with-training-metrics.md)단원을 참조하세요. 오류로 인해 교육이 완료되지 않은 경우, 교육 비용은 청구되지 않습니다.

솔루션 버전이 CREATE\_PENDING 또는 CREATE\_IN\_PROGRESS 상태인 경우, [StopSolutionVersionCreation](API_StopSolutionVersionCreation.md)작업을 사용하여 솔루션 버전 생성 프로세스를 중지할 수 있습니다. [솔루션 버전 생성 중지](stop-solution-version.md)을(를) 참조하세요.

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

## 솔루션 버전 생성(AWS SDK)
<a name="create-solution-version-sdk"></a>

솔루션이 활성 상태이면 다음 코드를 사용하여 솔루션 버전을 생성하세요. [Amazon Personalize에서 사용자 지정 솔루션 구성](customizing-solution-config.md)에서 리소스 이름(ARN)을 지정합니다. [DescribeSolutionVersion](API_DescribeSolutionVersion.md) 작업을 사용하여 솔루션 버전의 상태를 검색합니다.

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

```
import boto3

personalize = boto3.client('personalize')
# Store the solution ARN
solution_arn = '{{solution arn}}'
        
# Use the solution ARN to get the solution status.
solution_description = personalize.describe_solution(solutionArn = 'solution_arn')['solution']
print('Solution status: ' + solution_description['status'])

# Use the solution ARN to create a solution version.
print ('Creating solution version')
response = personalize.create_solution_version(solutionArn = solution_arn)
solution_version_arn = response['solutionVersionArn']
print('Solution version ARN: ' + solution_version_arn)

# Use the solution version ARN to get the solution version status.
solution_version_description = personalize.describe_solution_version(
    solutionVersionArn = solution_version_arn)['solutionVersion']
print('Solution version status: ' + solution_version_description['status'])
```

------
#### [ SDK for Java 2.x ]

```
public static String createPersonalizeSolutionVersion(PersonalizeClient personalizeClient, String solutionArn) {
        long maxTime = 0;
        long waitInMilliseconds = 30 * 1000; // 30 seconds
        String solutionStatus = "";
        String solutionVersionStatus = "";
        String solutionVersionArn = "";

        try {
            DescribeSolutionRequest describeSolutionRequest = DescribeSolutionRequest.builder()
                .solutionArn(solutionArn)
                .build();
            
            maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60;

            // Wait until solution is active. 
            while (Instant.now().getEpochSecond() < maxTime) {

                solutionStatus = personalizeClient.describeSolution(describeSolutionRequest).solution().status();
                System.out.println("Solution status: " + solutionStatus);

                if (solutionStatus.equals("ACTIVE") || solutionStatus.equals("CREATE FAILED")) {
                    break;
                }
                try {
                    Thread.sleep(waitInMilliseconds);
                } catch (InterruptedException e) {
                    System.out.println(e.getMessage());
                }
            }
            
            // Once the solution is active, start creating a solution version.
            
            if (solutionStatus.equals("ACTIVE")) {

                CreateSolutionVersionRequest createSolutionVersionRequest = CreateSolutionVersionRequest.builder()
                    .solutionArn(solutionArn)
                    .build();
                
                CreateSolutionVersionResponse createSolutionVersionResponse = personalizeClient.createSolutionVersion(createSolutionVersionRequest);
                solutionVersionArn = createSolutionVersionResponse.solutionVersionArn();

                System.out.println("Solution version ARN: " + solutionVersionArn);

                DescribeSolutionVersionRequest describeSolutionVersionRequest = DescribeSolutionVersionRequest.builder() 
                    .solutionVersionArn(solutionVersionArn)
                    .build();
                
                maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60;
                
                while (Instant.now().getEpochSecond() < maxTime) {

                    // Use the solution version ARN to get the solution version status.
                    solutionVersionStatus = personalizeClient.describeSolutionVersion(describeSolutionVersionRequest).solutionVersion().status();
                    System.out.println("Solution version status: " + solutionVersionStatus);
    
                    if (solutionVersionStatus.equals("ACTIVE") || solutionVersionStatus.equals("CREATE FAILED")) {
                        break;
                    }
                    try {
                        Thread.sleep(waitInMilliseconds);
                    } catch (InterruptedException e) {
                        System.out.println(e.getMessage());
                    }
                }
                return solutionVersionArn;
            }
        } catch(PersonalizeException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }
```

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

```
// Get service clients module and commands using ES6 syntax.
import { CreateSolutionVersionCommand } from "@aws-sdk/client-personalize";
import { personalizeClient } from "./libs/personalizeClients.js";
// Or, create the client here.
// const personalizeClient = new PersonalizeClient({ region: "REGION"});

// Set the solution version parameters.
export const solutionVersionParam = {
  solutionArn: "SOLUTION_ARN" /* required */,
};

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

------



현재의 솔루션 버전 상태를 확인하려면 [DescribeSolutionVersion](API_DescribeSolutionVersion.md)작업을 호출하고 `CreateSolutionVersion`작업에서 반환된 솔루션 버전의 ARN을 전달합니다. `status`이 `ACTIVE`이면 교육이 완료된 것이므로, Personalize에서 제공하는 지표를 사용하여 교육을 평가할 수 있습니다. 자세한 내용은 [지표를 사용하여 Amazon Personalize 솔루션 버전 평가](working-with-training-metrics.md)단원을 참조하세요. 오류로 인해 교육이 완료되지 않은 경우, 교육 비용은 청구되지 않습니다.

솔루션 버전이 CREATE\_PENDING 또는 CREATE\_IN\_PROGRESS 상태인 경우, [StopSolutionVersionCreation](API_StopSolutionVersionCreation.md)작업을 사용하여 솔루션 버전 생성 프로세스를 중지할 수 있습니다. [솔루션 버전 생성 중지](stop-solution-version.md)을(를) 참조하세요.

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