ソリューションバージョンの作成 - Amazon Personalize

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

ソリューションバージョンの作成

完了するとソリューションの作成と構成、トレーニングを開始する準備が整います。

  • ソリューションが自動トレーニングを使用している場合、ソリューションは指定したトレーニング頻度でソリューションバージョンを作成します。デフォルトでは、新しいソリューションはすべて自動トレーニングを使用して 7 日ごとに新しいソリューションバージョンを作成します。ソリューションバージョンは引き続き手動で作成できます。詳細については、「自動トレーニングの設定」を参照してください。

  • ソリューションのauto トレーニングをオフにした場合や、手動でトレーニングしたい場合は、ソリューションバージョンを手動で作成できます。ソリューションバージョンとは、トレーニング済みの機械学習モデルをいいます。コンソール、 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. ナビゲーションペインの [カスタムリソース] を選択し、[ソリューションとレシピ] を選択します。

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

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

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

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

アクティブなソリューションバージョンをどのように使用するかは、推奨事項がどのように表示されるかによって異なります。

  • リアルタイムのレコメンデーションを行うには、Amazon Personalize キャンペーンを含む ACTIVE ソリューションバージョンをデプロイします。このキャンペーンを使用して、ユーザー向けのレコメンデーションを取得します。キャンペーンの作成 を参照してください。

  • バッチレコメンデーションでは、バッチ推論ジョブまたはバッチセグメントジョブを作成するときに ACTIVE ソリューションバージョンを指定します。バッチレコメンデーションとユーザーセグメント (カスタムリソース) を参照してください。

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

ソリューションが ACTIVE である場合は、次のコマンドを実行してモデルをトレーニングします。solution arn を、ソリューションの作成と構成 からのソリューションの 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 が提供するメトリクスを使用して評価できます。詳細については、「メトリクスを使用してソリューションバージョンを評価する」を参照してください。エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。

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

アクティブなソリューションバージョンをどのように使用するかは、レコメンデーションを取得する方法によって異なります。

  • リアルタイムのレコメンデーションを行うには、Amazon Personalize キャンペーンを含む ACTIVE ソリューションバージョンをデプロイします。このキャンペーンを使用して、ユーザー向けのレコメンデーションを取得します。キャンペーンの作成 を参照してください。

  • バッチレコメンデーションでは、バッチ推論ジョブまたはバッチセグメントジョブを作成するときに ACTIVE ソリューションバージョンを指定します。バッチレコメンデーションとユーザーセグメント (カスタムリソース) を参照してください。

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

ソリューションが ACTIVE である場合は、次のコードを使用してソリューションバージョンを作成します。ソリューションの作成と構成 から Amazon リソースネーム (ARN) を指定します。DescribeSolutionVersion の操作を使用してソリューションバージョンのステータスを取得します。

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

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

アクティブなソリューションバージョンをどのように使用するかは、レコメンデーションを取得する方法によって異なります。

  • リアルタイムのレコメンデーションを行うには、Amazon Personalize キャンペーンを含む ACTIVE ソリューションバージョンをデプロイします。このキャンペーンを使用して、ユーザー向けのレコメンデーションを取得します。キャンペーンの作成 を参照してください。

  • バッチレコメンデーションでは、バッチ推論ジョブまたはバッチセグメントジョブを作成するときに ACTIVE ソリューションバージョンを指定します。「バッチレコメンデーションとユーザーセグメント (カスタムリソース)」を参照してください。