建立解決方案 - Amazon Personalize

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立解決方案

您可以使用 Amazon Personalize 主控台 AWS Command Line Interface (AWS CLI) 或 AWS SDKs建立自訂解決方案。下列包含使用 Amazon Personalize 主控台建立解決方案的詳細步驟,以及示範如何建立僅包含必要欄位的解決方案的程式碼範例。

建立解決方案 (主控台)

重要

根據預設,所有新解決方案都會使用自動訓練。透過自動訓練,您會在解決方案處於作用中狀態時產生訓練成本。為了避免不必要的成本,您可以在完成後更新解決方案以關閉自動訓練。如需訓練成本的相關資訊,請參閱 Amazon Personalize 定價

若要在主控台中建立解決方案,請選擇資料集群組,然後指定解決方案名稱、配方和選用的訓練組態。

設定解決方案 (主控台)
  1. https://console.aws.amazon.com/personalize/home:// 開啟 Amazon Personalize 主控台,並登入您的帳戶。

  2. 資料集群組頁面上,選擇您的資料集群組。

  3. 概觀頁面上,針對步驟 3,執行下列其中一項:

    • 如果您建立網域資料集群組,請選擇使用自訂資源,然後選擇建立解決方案

    • 如果您建立了自訂資料集群組,請選擇建立解決方案

  4. 對於 Solution name (解決方案名稱),為您的解決方案指定名稱。

  5. 針對解決方案類型,選擇您要建立的解決方案類型。您選擇的類型會決定可用的配方。

    • 選擇項目建議,以取得使用者的項目建議。例如,個人化電影建議。

    • 選擇動作建議,以取得使用者的動作建議。例如,為使用者產生下一個最佳動作,例如下載您的應用程式。

    • 選擇使用者分割,根據您的項目資料取得使用者區段 (使用者群組)。

  6. 針對配方,選擇配方 (請參閱 選擇配方)。

  7. 對於標籤,選擇性地新增任何標籤。如需標記 Amazon Personalize 資源的詳細資訊,請參閱標記 Amazon Personalize 資源

  8. 選擇 Next (下一步)

  9. 訓練組態頁面上,自訂解決方案以符合您的業務需求。

    • 自動訓練中,選擇解決方案是否使用自動訓練。如果您使用自動訓練,則可以變更 Automatic training frequency。預設訓練頻率為每 7 天一次。

      我們建議您使用自動訓練。它可讓您更輕鬆地維持建議相關性。您的訓練頻率取決於您的業務需求、使用的配方,以及您匯入資料的頻率。如需詳細資訊,請參閱設定自動訓練。如需維護相關性的資訊,請參閱 維持建議相關性

    • 超參數組態中,根據您的配方和業務需求設定任何超參數選項。不同的配方使用不同的超參數。如需可用的超參數,請參閱 中的個別配方選擇配方

    • 在用於訓練的欄中,如果您的配方產生項目建議或使用者區段,可選擇選擇 Amazon Personalize 在建立解決方案版本時考慮的資料欄。如需詳細資訊,請參閱設定訓練時使用的資料欄

    • 在其他組態中,如果您的項目互動資料集同時具有 EVENT_TYPE 或 EVENT_TYPE 和 EVENT_VALUE 資料欄,可選擇使用事件類型事件值閾值欄位來選擇 Amazon Personalize 在訓練模型時使用的項目互動資料。如需詳細資訊,請參閱選擇用於訓練的項目互動資料

    • 如果您使用 使用者個人化配方個人化執行配方配方,除了相關性之外,還可以選擇性地指定目標,並選擇目標敏感度來最佳化目標的解決方案。目標敏感度可設定 Amazon Personalize 如何根據目標與透過互動資料的相關性來平衡建議項目。如需詳細資訊,請參閱針對其他目標最佳化解決方案

  10. 選擇下一步並檢閱解決方案詳細資訊。您無法在建立解決方案之後變更其組態。

  11. 選擇 Create solution (建立解決方案)。建立解決方案後,Amazon Personalize 會在一小時內開始建立您的第一個解決方案版本。訓練開始時,您可以在 解決方案的詳細資訊頁面上的解決方案版本區段中監控它。自動建立的解決方案版本具有 AUTOMATIC 的訓練類型

    當解決方案版本為 ACTIVE 時,您就可以使用它來取得建議。使用作用中解決方案版本的方式取決於如何取得建議:

建立解決方案 (AWS CLI)

重要

根據預設,所有新解決方案都會使用自動訓練。透過自動訓練,您會在解決方案處於作用中狀態時產生訓練成本。為了避免不必要的成本,您可以在完成後更新解決方案以關閉自動訓練。如需訓練成本的相關資訊,請參閱 Amazon Personalize 定價

若要使用 建立解決方案 AWS CLI,請使用 create-solution命令。此命令使用 CreateSolution API 操作。下列程式碼說明如何建立使用自動訓練的解決方案。它會每五天自動建立新的解決方案版本。

若要使用程式碼,請更新以為解決方案命名、指定資料集群組的 Amazon Resource Name (ARN)、選擇性地變更訓練頻率,以及指定要使用的配方 ARN。如需配方的詳細資訊,請參閱選擇配方

aws personalize create-solution \ --name solution name \ --dataset-group-arn dataset group ARN \ --recipe-arn recipe ARN \ --perform-auto-training \ --solution-config "{\"autoTrainingConfig\": {\"schedulingExpression\": \"rate(5 days)\"}}"

建立解決方案後,請記錄解決方案 ARN 以供日後使用。透過自動訓練,解決方案版本建立會在解決方案為 ACTIVE 後的一小時內開始。如果您在小時內手動建立解決方案版本,解決方案會略過第一個自動訓練。訓練開始後,您可以使用 ListSolutionVersions API 操作取得解決方案版本的 Amazon Resource Name (ARN)。若要取得其狀態,請使用 DescribeSolutionVersion API 操作。

當解決方案版本為 ACTIVE 時,您就可以使用它來取得建議。使用作用中解決方案版本的方式取決於如何取得建議:

建立解決方案AWS SDKs)

重要

根據預設,所有新解決方案都會使用自動訓練。透過自動訓練,您會在解決方案處於作用中狀態時產生訓練成本。為了避免不必要的成本,您可以在完成後更新解決方案以關閉自動訓練。如需訓練成本的相關資訊,請參閱 Amazon Personalize 定價

若要使用 AWS SDKs建立解決方案,請使用 CreateSolution API 操作。下列程式碼說明如何建立使用自動訓練的解決方案。它會每五天自動建立新的解決方案版本。

若要使用程式碼,請將其更新為提供解決方案名稱、指定資料集群組的 Amazon Resource Name (ARN)、選擇性地變更訓練頻率,以及指定您要使用的配方 ARN。如需配方的詳細資訊,請參閱選擇配方

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_solution_response = personalize.create_solution( name = 'solution name', recipeArn = 'recipe ARN', datasetGroupArn = 'dataset group ARN', performAutoTraining = True, solutionConfig = { "autoTrainingConfig": { "schedulingExpression": "rate(5 days)" } } ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)
SDK for JavaScript v3
import { CreateSolutionCommand, PersonalizeClient, } from "@aws-sdk/client-personalize"; // create client const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the solution parameters export const solutionParam = { datasetGroupArn: "DATASET_GROUP_ARN" /* required */, recipeArn: "RECIPE_ARN" /* required */, name: "SOLUTION_NAME" /* required */, performAutoTraining: true /* optional, default is true */, solutionConfig: { autoTrainingConfig: { schedulingExpression: "rate(5 days)" /* optional, default is every 7 days */, }, }, }; export const run = async () => { try { const response = await personalizeClient.send( new CreateSolutionCommand(solutionParam) ); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

建立解決方案後,請記錄解決方案 ARN 以供日後使用。透過自動訓練,解決方案版本建立會在解決方案為 ACTIVE 後的一小時內開始。如果您在小時內手動建立解決方案版本,解決方案會略過第一個自動訓練。訓練開始後,您可以使用 ListSolutionVersions API 操作取得解決方案版本的 Amazon Resource Name (ARN)。若要取得其狀態,請使用 DescribeSolutionVersion API 操作。

您可以使用下列 Python 程式碼等待自動訓練開始。wait_for_training_to_start 方法會傳回第一個解決方案版本的 ARN。

import time import boto3 def wait_for_training_to_start(new_solution_arn): max_time = time.time() + 3 * 60 * 60 # 3 hours while time.time() < max_time: list_solution_versions_response = personalize.list_solution_versions( solutionArn=new_solution_arn ) solution_versions = list_solution_versions_response.get('solutionVersions', []) if solution_versions: new_solution_version_arn = solution_versions[0]['solutionVersionArn'] print(f"Solution version ARN: {new_solution_version_arn}") return new_solution_version_arn else: print(f"Training hasn't started yet. Training will start within the next hour.") time.sleep(60) personalize = boto3.client('personalize') solution_arn = "solution_arn" solution_version_arn = wait_for_training_to_start(solution_arn)

當解決方案版本為 ACTIVE 時,您就可以使用它來取得建議。使用作用中解決方案版本的方式取決於如何取得建議: