翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ソリューションバージョンの作成
を完了するとソリューションの作成と構成、ソリューションバージョンを作成する準備が整います。ソリューションバージョンとは、トレーニング済みの機械学習モデルをいいます。ソリューションバージョンはカスタムリソースです。Amazon Personalize のキャンペーンでソリューションバージョンをデプロイできます。キャンペーンを使用して、ユーザー向けのレコメンデーションを取得します。また、ソリューションバージョンを使用してバッチレコメンデーションを取得することもできます。
コンソール、AWS Command Line Interface (AWS CLI)、またはAWS SDK を使用してソリューションバージョンを作成できます。ソリューションバージョンのステータスが CREATE_PENDING または CREATE_IN_PROGRESS の場合、この StopSolutionVersionCreation 操作を使用してソリューションバージョンの作成プロセスを停止できます。ソリューションバージョンの作成を停止する を参照してください。
ソリューションバージョンの作成 (コンソール)
Amazon Personalize コンソールで最初にソリューションを作成するときは、ソリューションバージョンも作成します。ソリューションの詳細のページでは、[Solution versions] (ソリューションバージョン) のセクションでトレーニングの進捗状況を追跡できます。トレーニングが完了すると、ステータスは [Active] (アクティブ) になり、キャンペーンをデプロイしてレコメンデーションを取得する準備が整います。キャンペーンの作成 を参照してください。
既存のソリューションに追加のソリューションバージョンを作成する場合は、次のようにソリューション概要ページから新しいソリューションバージョンを作成します。
新しいソリューションバージョンを作成するには
-
https://console.aws.amazon.com/personalize/home で Amazon Personalize コンソールを開き、アカウントにサインインします。
-
データセットグループのページに移動し、新しいソリューションのデータセットグループを選択します。
-
ナビゲーションペインで、[Solutions and recipes] (ソリューションとレシピ) を選択します。
-
[Solution and recipes] (ソリューションとレシピ) のページで、ソリューションバージョンを作成するソリューションを選択します。
-
ソリューションの概要のページで、[Create solution version] (ソリューションバージョンを作成) を選択して、新しいモデルのトレーニングを開始します。
ソリューションの詳細のページでは、[Solution versions] (ソリューションバージョン) のセクションでトレーニングの進捗状況を追跡できます。トレーニングが完了すると、ステータスは [Active] (アクティブ) になり、Amazon Personalize が提供するメトリクスを使用して評価できます。詳細については、「メトリクスを使ったソリューションバージョンの評価」を参照してください。
エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。ソリューションバージョンのステータスが CREATE_PENDING または CREATE_IN_PROGRESS の場合、ソリューションバージョンの作成プロセスを停止できます。ソリューションバージョンの作成を停止するには、ソリューションバージョンの詳細のページに移動して、[Stop] (停止) を選択します。ソリューションバージョンの作成を停止する を参照してください。
ソリューションバージョンの作成 (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"
}
}
status
が ACTIVE
であればトレーニングは完了しており、Amazon Personalize が提供するメトリクスを使用して評価できます。詳細については、「メトリクスを使ったソリューションバージョンの評価」を参照してください。エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。
ソリューションバージョンのステータスが CREATE_PENDING または CREATE_IN_PROGRESS の場合、この StopSolutionVersionCreation 操作を使用してソリューションバージョンの作成プロセスを停止できます。ソリューションバージョンの作成を停止する を参照してください。
ソリューションバージョンの作成 (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 を渡します。status
が ACTIVE
であればトレーニングは完了しており、Amazon Personalize が提供するメトリクスを使用して評価できます。詳細については、「メトリクスを使ったソリューションバージョンの評価」を参照してください。エラーが原因でトレーニングが完了しない場合、トレーニングの料金は請求されません。
ソリューションバージョンのステータスが CREATE_PENDING または CREATE_IN_PROGRESS の場合、この StopSolutionVersionCreation 操作を使用してソリューションバージョンの作成プロセスを停止できます。「ソリューションバージョンの作成を停止する」を参照してください。