ソリューションバージョンを手動で作成する - Amazon Personalize

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

ソリューションバージョンを手動で作成する

を完了するとAmazon Personalize でのカスタムソリューションの設定、トレーニングを開始する準備が整います。

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

  • ソリューションの自動トレーニングをオフにした場合、または手動でトレーニングする場合は、ソリューションバージョンを手動で作成できます。ソリューションバージョンとは、トレーニング済みの機械学習モデルをいいます。コンソールを使用してソリューションバージョンを作成できます。 AWS Command Line Interface (AWS CLI)、または AWS SDKs。ソリューションバージョンのステータスが CREATE_PENDING または CREATE_IN_ の場合PROGRESS、 StopSolutionVersionCreationオペレーションを使用してソリューションバージョンの作成プロセスを停止できます。「ソリューションバージョンの作成の停止」を参照してください。

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

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

Amazon Personalize コンソールを使用して新しいソリューションバージョンを手動で作成するには、ソリューションの詳細ページからトレーニングを開始します。

新しいソリューションバージョンを作成するには
  1. https://console.aws.amazon.com/personalize/自宅の Amazon Personalize コンソールを開き、アカウントにサインインします。

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

  3. ナビゲーションペインの [カスタムリソース] を選択し、[ソリューションとレシピ] を選択します。

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

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

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

ソリューションバージョンが になるとACTIVE、それを使用してレコメンデーションを取得する準備が整います。アクティブなソリューションバージョンの使用方法は、レコメンデーションの取得方法によって異なります。

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

ソリューションが の場合はACTIVE、次のコマンドを実行してモデルをトレーニングします。を のソリューション Amazon リソースネーム (ARN) solution arnに置き換えますAmazon Personalize でのカスタムソリューションの設定

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

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

ソリューションバージョンが になるとACTIVE、それを使用してレコメンデーションを取得する準備が整います。アクティブなソリューションバージョンの使用方法は、レコメンデーションの取得方法によって異なります。

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

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

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

ソリューションバージョンが になるとACTIVE、それを使用してレコメンデーションを取得する準備が整います。アクティブなソリューションバージョンの使用方法は、レコメンデーションの取得方法によって異なります。