第 3 步:创建解决方案版本 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 3 步:创建解决方案版本

完成后第 1 步:选择配方第 2 步:配置解决方案,您准备好创建解决方案版本。

一个解决方案版本是指可以部署的训练有素的机器学习模型,以获取客户的建议。使用控制台创建解决方案版本,Amazon Command Line Interface(Amazon CLI),或者AmazonSDK。如果您的解决方案版本的状态为 CREATE_IN_PROGREATE_PROGREATE_IN_PROGREATE_PROGREATEStopSolutionVersionCreation操作来停止解决方案版本创建过程。请参阅 停止创建解决方案版本

创建解决方案版本(控制台)

如果你刚完成第 2 步:配置解决方案创建解决方案版显示,选择完成创建解决方案版本。

在解决方案详细信息页面上,您可以在解决方案版部分。当训练完毕后,状态会变为处于活动状态并准备好部署广告系列并获取建议。请参阅中的第 3 步入门(控制台)教程。

如果你远离创建解决方案版页面或者想为现有解决方案创建其他解决方案版本,请从解决方案概述页面创建新的解决方案版本,如下所示。

创建新解决方案版本

  1. 在打开 Amazon Personalize 控制台https://console.aws.amazon.com/personalize/home然后登录您的账户。

  2. 导航到数据集组页面,然后使用新解决方案选择数据集组。

  3. 在导航窗格中,选择解决方案和配方.

  4. 在存储库的解决方案和配方页面中,选择要为其创建解决方案版本的解决方案。

  5. 在解决方案概述页面上,选择创建解决方案版开始训练新模型。

在解决方案详细信息页面上,您可以在解决方案版部分。当训练完毕后,状态会变为处于活动状态您可以使用 Amazon Personalize ation 提供的指标评估它。有关更多信息,请参阅 第 4 步:使用指标评估解决方案版本

如果由于错误而导致培训未完成,则不会向您支付培训费用。如果您的解决方案版本的状态为 CREATE_PENDING 或 CREATE_IN_PRODER,则可以停止解决方案版本创建过程。要停止创建解决方案版本,请导航至解决方案版本详细信息页面并停止. 请参阅 停止创建解决方案版本

创建解决方案版本 (Amazon CLI)

当您的解决方案处于 ACTIVE 状态时,通过运行以下命令训练模型。Replacesolution arn使用解决方案 Amazon 资源名称 (ARN)第 2 步:配置解决方案.

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 ation 提供的指标评估它。有关更多信息,请参阅 第 4 步:使用指标评估解决方案版本。如果由于错误而导致培训未完成,则不会向您支付培训费用。

如果您的解决方案版本的状态为 CREATE_IN_PROGREATE_PROGREATE_IN_PROGREATE_PROGREATEStopSolutionVersionCreation操作来停止解决方案版本创建过程。请参阅 停止创建解决方案版本

创建解决方案版本 (Amazon开发工具包)

当您的解决方案处于活动状态时,请使用以下代码创建一个解决方案版本Amazon SDK for Python (Boto3)或者Amazon SDK for Java 2.x.

SDK for Python (Boto3)

要创建解决方案版本,请使用以下方式create_solution_version方法。替换solution arn使用来自解决方案的 Amazon 资源名称 (ARN)第 2 步:配置解决方案. 下面的代码使用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方法并将解决方案的 Amazon 资源名称 (ARN) 作为参数传递来自的第 2 步:配置解决方案. 下面的代码使用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 ation 提供的指标评估它。有关更多信息,请参阅 第 4 步:使用指标评估解决方案版本。如果由于错误而导致培训未完成,则不会向您支付培训费用。

如果您的解决方案版本的状态为 CREATE_IN_PROGREATE_PROGREATE_IN_PROGREATE_PROGREATEStopSolutionVersionCreation操作来停止解决方案版本创建过程。请参阅 停止创建解决方案版本