更新解决方案以更改其自动训练配置 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

更新解决方案以更改其自动训练配置

创建解决方案后,可以更改其自动训练配置。您可以打开或关闭自动训练,也可以更改训练频率。

  • 如果开启自动训练,则第一次自动训练将在解决方案更新完成后的一小时内开始。如果您在一小时内手动创建解决方案版本,则解决方案会跳过第一次自动训练。

  • 如果您修改解决方案的训练频率,则训练计划会重置,并且新的解决方案版本将在一小时内开始训练。解决方案版本的创建继续按新的频率进行,即第 1 天是更新解决方案的那一天。

可以使用 Amazon Personalize 控制台、Amazon Command Line Interface 或 Amazon SDK 更新解决方案。解决方案更新要几分钟。在更新过程中,您可以为解决方案创建解决方案版本,但不能删除解决方案。在更新完成之前,解决方案使用之前的配置。有关自动训练的更多信息,请参阅配置自动训练

更新解决方案(控制台)

要在控制台中更新解决方案,请导航到解决方案,选择更新,然后指定要使用的新配置。

配置解决方案
  1. 打开 Amazon Personalize 控制台(网址为 https://console.aws.amazon.com/personalize/home),并登录您的账户。

  2. 数据集组页面,选择您的数据集组。

  3. 在导航窗格中,选择自定义资源,然后选择解决方案和配方

  4. 选择您的解决方案,然后选择右上角的更新

  5. 自动训练中,修改解决方案是否使用自动训练。如果自动训练已开启,则可以更改 Automatic training frequency。默认训练频率为每 7 天一次。

  6. 选择更新解决方案。您可以在解决方案的详细信息页面上找到解决方案更新的状态。

更新解决方案(Amazon CLI)

要使用 Amazon Command Line Interface 更新解决方案,请使用 update-solution 命令。此命令使用 UpdateSolution API 操作。以下代码展示了如何更新解决方案以使用训练频率为 5 天的自动训练。要关闭自动训练,请指定 --no-perform-auto-training 并省略 solution-update-config

默认训练频率为每 7 天一次。表达式必须采用以下格式:rate(value unit)。对于值,指定一个介于 1 和 30 之间的数字。对于单位,请指定 daydays

aws personalize update-solution \ --solution-arn solution ARN \ --perform-auto-training \ --solution-update-config "{\"autoTrainingConfig\": {\"schedulingExpression\": \"rate(5 days)\"}}"

要获取更新的状态,请使用 describe-solution 命令(使用 DescribeSolution API 操作),并在 latestSolutionUpdate 中找到更新状态。

更新解决方案 (Amazon SDK)

要使用 Amazon SDK 更新解决方案,请使用 UpdateSolution API 操作。以下代码展示了如何使用 SDK for Python(Boto3)更新解决方案以使用训练频率为 5 天的自动训练。该代码通过 DescribeSolution API 操作获取更新的状态。

默认训练频率为每 7 天一次。表达式必须采用以下格式:rate(value unit)。对于值,指定一个介于 1 和 30 之间的数字。对于单位,请指定 daydays

import boto3 personalize = boto3.client('personalize') update_solution_response = personalize.update_solution( solutionArn='SOLUTION ARN', performAutoTraining=True, solutionUpdateConfig={ "autoTrainingConfig": { "schedulingExpression": "rate(5 days)" } } ) describe_solution_response = personalize.describe_solution( solutionArn='SOLUTION ARN' ) update_status = describe_solution_response["solution"]["latestSolutionUpdate"]["status"] print(f"Update status: {update_status}")