

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ソリューションバージョンの手動作成
<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)、または AWS SDK を使用して作成します。ソリューションバージョンのステータスが CREATE\$1PENDING または CREATE\$1IN\$1PROGRESS の場合、この [StopSolutionVersionCreation](API_StopSolutionVersionCreation.md) 操作を使用してソリューションバージョンの作成プロセスを停止できます。「[ソリューションバージョンの作成の停止](stop-solution-version.md)」を参照してください。

エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。ソリューションバージョンのステータスが CREATE\$1PENDING または CREATE\$1IN\$1PROGRESS の場合、ソリューションバージョンの作成プロセスを停止できます。ソリューションバージョンの作成を停止するには、ソリューションバージョンの詳細のページに移動して、**[Stop]** (停止) を選択します。詳細については、「[ソリューションバージョンの作成の停止](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. **[Solution and recipes]** (ソリューションとレシピ) のページで、ソリューションバージョンを作成するソリューションを選択します。

1. ソリューションの概要のページで、**[Create solution version]** (ソリューションバージョンを作成) を選択して、新しいモデルのトレーニングを開始します。

ソリューションの詳細のページでは、**[Solution versions]** (ソリューションバージョン) のセクションでトレーニングの進捗状況を追跡できます。トレーニングが完了すると、ステータスは **[Active]** (アクティブ) になり、Amazon Personalize が提供するメトリクスを使用して評価できます。詳細については、「[メトリクスを使用して Amazon Personalize ソリューションバージョンを評価する](working-with-training-metrics.md)」を参照してください。

 ソリューションバージョンが ACTIVE になれば、レコメンデーションを取得するために使用する準備が整います。アクティブなソリューションバージョンの使用方法は、レコメンデーションの取得方法によって異なります。
+  リアルタイムのレコメンデーションを行うには、ACTIVE ソリューションバージョンを 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) からのソリューションの Amazon リソースネーム (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` であればトレーニングは完了しており、Amazon Personalize が提供するメトリクスを使用して評価できます。詳細については、「[メトリクスを使用して Amazon Personalize ソリューションバージョンを評価する](working-with-training-metrics.md)」を参照してください。エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。

ソリューションバージョンのステータスが CREATE\$1PENDING または CREATE\$1IN\$1PROGRESS の場合、この [StopSolutionVersionCreation](API_StopSolutionVersionCreation.md) 操作を使用してソリューションバージョンの作成プロセスを停止できます。「[ソリューションバージョンの作成の停止](stop-solution-version.md)」を参照してください。

 ソリューションバージョンが ACTIVE になれば、レコメンデーションを取得するために使用する準備が整います。アクティブなソリューションバージョンの使用方法は、レコメンデーションの取得方法によって異なります。
+  リアルタイムのレコメンデーションを行うには、ACTIVE ソリューションバージョンを Amazon Personalize キャンペーンでデプロイします。キャンペーンを使用して、ユーザー向けのレコメンデーションを取得します。「[キャンペーンを使用して Amazon Personalize のソリューションバージョンをデプロイするキャンペーンの作成](campaigns.md)」を参照してください。
+ バッチレコメンデーションでは、バッチ推論ジョブまたはバッチセグメントジョブを作成するときに ACTIVE ソリューションバージョンを指定します。「[バッチアイテムのレコメンデーションの取得](getting-batch-recommendations.md)」または「[バッチユーザーセグメントの取得](getting-user-segments.md)」を参照してください。

## ソリューションバージョンの作成 (AWS SDK)
<a name="create-solution-version-sdk"></a>

ソリューションが ACTIVE である場合は、次のコードを使用してソリューションバージョンを作成します。[Amazon Personalize のカスタムソリューションの設定](customizing-solution-config.md) から Amazon リソースネーム (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` であればトレーニングは完了しており、Amazon Personalize が提供するメトリクスを使用して評価できます。詳細については、「[メトリクスを使用して Amazon Personalize ソリューションバージョンを評価する](working-with-training-metrics.md)」を参照してください。エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。

ソリューションバージョンのステータスが CREATE\$1PENDING または CREATE\$1IN\$1PROGRESS の場合、この [StopSolutionVersionCreation](API_StopSolutionVersionCreation.md) 操作を使用してソリューションバージョンの作成プロセスを停止できます。「[ソリューションバージョンの作成の停止](stop-solution-version.md)」を参照してください。

 ソリューションバージョンが ACTIVE になれば、レコメンデーションを取得するために使用する準備が整います。アクティブなソリューションバージョンの使用方法は、レコメンデーションの取得方法によって異なります。
+  リアルタイムのレコメンデーションを行うには、ACTIVE ソリューションバージョンを Amazon Personalize キャンペーンでデプロイします。キャンペーンを使用して、ユーザー向けのレコメンデーションを取得します。「[キャンペーンを使用して Amazon Personalize のソリューションバージョンをデプロイするキャンペーンの作成](campaigns.md)」を参照してください。
+ バッチレコメンデーションでは、バッチ推論ジョブまたはバッチセグメントジョブを作成するときに ACTIVE ソリューションバージョンを指定します。「[バッチアイテムのレコメンデーションの取得](getting-batch-recommendations.md)」または「[バッチユーザーセグメントの取得](getting-user-segments.md)」を参照してください。