ステップ 3: ソリューションバージョンの作成 - Amazon Personalize

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

ステップ 3: ソリューションバージョンの作成

ステップ 1: レシピの選択ステップ 2: ソリューションを設定する を完了すると、ソリューションバージョンを作成する準備が整います。

ソリューションバージョンとは、顧客向けのレコメンデーションを取得するためにデプロイできる、トレーニング済みの機械学習モデルをいいます。ソリューションバージョンは、コンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用して作成します。ソリューションバージョンのステータスが CREATE_PENDING または CREATE_IN_PROGRESS の場合、この StopSolutionVersionCreation 操作を使用してソリューションバージョンの作成プロセスを停止できます。「ソリューションバージョンの作成を停止する」を参照してください。

ソリューションバージョンの作成 (コンソール)

Amazon Personalize コンソールでソリューションを最初に作成するときは、ソリューションバージョンも作成します。ソリューションの詳細のページでは、[Solution versions] (ソリューションバージョン) のセクションでトレーニングの進捗状況を追跡できます。トレーニングが完了すると、ステータスは [Active] (アクティブ) になり、キャンペーンをデプロイしてレコメンデーションを取得する準備が整います。「キャンペーンの作成」を参照してください。

既存のソリューション向けに追加のソリューションバージョンを作成する場合は、次のようにソリューションの概要のページから新しいソリューションバージョンを作成します。

新しいソリューションバージョンを作成するには

  1. https://console.aws.amazon.com/personalize/home で Amazon Personalize コンソールを開き、アカウントにサインインします。

  2. データセットグループのページに移動し、新しいソリューションのデータセットグループを選択します。

  3. ナビゲーションペインで、[Solutions and recipes] (ソリューションとレシピ) を選択します。

  4. [Solution and recipes] (ソリューションとレシピ) のページで、ソリューションバージョンを作成するソリューションを選択します。

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

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

エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。ソリューションバージョンのステータスが CREATE_PENDING または CREATE_IN_PROGRESS の場合、ソリューションバージョンの作成プロセスを停止できます。ソリューションバージョンの作成を停止するには、ソリューションバージョンの詳細のページに移動して、[Stop] (停止) を選択します。「ソリューションバージョンの作成を停止する」を参照してください。

ソリューションバージョンの作成 (AWS CLI)

ソリューションが ACTIVE である場合は、次のコマンドを実行してモデルをトレーニングします。solution arn を、ステップ 2: ソリューションを設定する からのソリューションの 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」を参照してください。

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

statusACTIVE であればトレーニングは完了しており、Amazon Personalize が提供するメトリクスを使用して評価できます。詳細については、「ステップ 4: メトリクスを使用してソリューションバージョンを評価する」を参照してください。エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。

ソリューションバージョンのステータスが CREATE_PENDING または CREATE_IN_PROGRESS の場合、この StopSolutionVersionCreation 操作を使用してソリューションバージョンの作成プロセスを停止できます。「ソリューションバージョンの作成を停止する」を参照してください。

ソリューションバージョンの作成 (AWS SDK)

ソリューションが ACTIVE である場合は、次のコードを使用して、AWS SDK for Python (Boto3) または AWS SDK for Java 2.x でソリューションバージョンを作成します。

SDK for Python (Boto3)

ソリューションバージョンを作成するには、次の create_solution_version メソッドを使用します。solution arn を、ステップ 2: ソリューションを設定する からのソリューションの Amazon リソースネーム (ARN) に置き換えます。次のコードは、DescribeSolutionVersion 操作を使用してソリューションバージョンのステータスを取得します。

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

ソリューションバージョンを作成するには、次の createPersonalizeSolutionVersion メソッドを使用し、ステップ 2: ソリューションを設定する からのソリューションの Amazon リソースネーム (ARN) をパラメータとして渡します。次のコードは、DescribeSolutionVersion 操作を使用してソリューションバージョンのステータスを取得します。

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 ""; }

現在のソリューションバージョンのステータスを確認するには、DescribeSolutionVersion オペレーションを呼び出して、CreateSolutionVersion オペレーションから返されるソリューションバージョン​の ARN を渡します。statusACTIVE であればトレーニングは完了しており、Amazon Personalize が提供するメトリクスを使用して評価できます。詳細については、「ステップ 4: メトリクスを使用してソリューションバージョンを評価する」を参照してください。エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。

ソリューションバージョンのステータスが CREATE_PENDING または CREATE_IN_PROGRESS の場合、この StopSolutionVersionCreation 操作を使用してソリューションバージョンの作成プロセスを停止できます。「ソリューションバージョンの作成を停止する」を参照してください。