建立解決方案 - Amazon Personalize

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

建立解決方案

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

建立解決方案 (主控台)

重要

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

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

若要設定解決方案 (主控台)
  1. https://console.aws.amazon.com/personalize/家中打開 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時具有 EVENT _ TYPE 和 _ VALUE 欄,請選擇性地使用事件類型事件值閾值欄位來選擇 Amazon Personalize 在訓練模型時使用的項目互動資料。如需詳細資訊,請參閱選擇用於訓練的項目互動資料

    • 如果您使用用戶個性化配方個性化排名食譜方案,請選擇性地指定「目標」並選擇「目標」敏感度,除了相關性之外,針對目標最佳化解決方案。客觀敏感度可設定 Amazon Personalize 如何根據您的目標與互動資料的相關性進行比較,來平衡推薦項目。如需詳細資訊,請參閱針對額外目標最佳化解決方案

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

  11. 選擇 Create solution (建立解決方案)。建立解決方案之後,Amazon Personalize 會在一小時內開始建立您的第一個解決方案版本。訓練開始時,您可以在解決方案詳細資料頁面的 [解決方案版本] 區段中對其進行監視。自動建立的解決方案版本的 [訓練] 類型為AUTOMATIC。

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

建立解決方案 (AWS CLI)

重要

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

若要建立解決方案 AWS CLI,使用指create-solution令。此命令使用CreateSolutionAPI操作。下列程式碼會示範如何建立使用自動訓練的解決方案。它每五天自動創建一個新的解決方案版本。

若要使用程式碼,請更新程式碼以為解決方案命名、指定資料集群組的 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供 future 使用。透過自動訓練,解決方案版本建立會在解決方案為之後的一個開始ACTIVE。如果您在一小時內手動建立解決方案版本,則解決方案會略過第一個自動訓練。訓練開始後,您可以透過ListSolutionVersionsAPI作業取得解決方案版本的 Amazon 資源名稱 (ARN)。若要取得其狀態,請使用該DescribeSolutionVersionAPI作業。

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

建立解決方案 (AWS SDKs)

重要

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

若要建立解決方案 AWS SDKs,使用CreateSolutionAPI操作。下列程式碼會示範如何建立使用自動訓練的解決方案。它每五天自動創建一個新的解決方案版本。

若要使用程式碼,請更新程式碼以為解決方案命名、指定資料集群組的 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供 future 使用。透過自動訓練,解決方案版本建立會在解決方案為之後的一個開始ACTIVE。如果您在一小時內手動建立解決方案版本,則解決方案會略過第一個自動訓練。訓練開始後,您可以透過ListSolutionVersionsAPI作業取得解決方案版本的 Amazon 資源名稱 (ARN)。若要取得其狀態,請使用該DescribeSolutionVersionAPI作業。

您可以使用下面的 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,您就可以使用它來取得建議。您如何使用作用中的解決方案版本取決於您如何取得建議: