教學課程:建置遠端推論模型 - Amazon Redshift

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

教學課程:建置遠端推論模型

以下教學將介紹如何建立隨機切割森林模型的步驟 SageMaker,該模型先前已在 Amazon Amazon Redshift 以外的亞馬遜中進行訓練並部署。隨機分割森林演算法會偵測資料集中的異常資料點。使用遠端推論建立模型可讓您將隨機切割森林 SageMaker 模型帶入 Amazon Redshift。然後,在 Amazon Redshift 中,您可以使用 SQL 在遠 SageMaker 端端點上執行預測。

您可以使用「建立模型」命令從 Amazon SageMaker 端點匯入機器學習模型,並準備 Amazon Redshift 預測功能。使用 CREATE MODEL 作業時,您需要提供 SageMaker 機器學習模型的端點名稱。

在本教學中,您會使用模型端點建立 Amazon Redshift 機器學習 SageMaker 模型。一旦您的機器學習模型準備就緒,您就可以使用它在 Amazon Redshift 中執行預測。首先,您訓練並在 Amazon 中建立端點 SageMaker,然後取得端點名稱。然後,您可以使用 CREATE MODEL 命令建立具有 Amazon Redshift ML 的模型。最後,您可以使用 CREATE MODEL 指令產生的預測函數對模型執行預測。

使用案例範例

您可以使用隨機分割森林模型和遠端推論來偵測其他資料集中的異常狀況,例如預測電子商務交易的快速增加或減少。您還可以預測天氣或地震活動的顯著變化。

工作

  • 必要條件

  • 步驟 1:部署 Amazon SageMaker 模型

  • 步驟 2:取得模 SageMaker 型端點

  • 步驟 3:將資料從 Amazon S3 載入到 Amazon Redshift

  • 步驟 4:建立 Amazon Redshift ML 的模型

  • 步驟 5:執行模型的預測

必要條件

若要完成本教學課程,您需要以下先決條件:

步驟 1:部署 Amazon SageMaker 模型

  1. 若要部署模型,請移至 Amazon SageMaker 主控台,在導覽窗格中的 [筆記本] 下選擇 [筆記本] 執行個體

  2. 為範本所建立的 Jupyter 記事本選擇「開啟 Jupyter」。 CloudFormation

  3. 選擇 bring-your-own-model-remote-inference.ipynb

  4. 將以下幾行取代為 Amazon S3 儲存貯體和字首,設定參數來將訓練輸入和輸出儲存在 Amazon S3 中。

    data_location=f"s3://{bucket}/{prefix}/", output_path=f"s3://{bucket}/{prefix}/output",
  5. 選擇快轉按鈕以執行所有儲存格。

步驟 2:取得模 SageMaker 型端點

在 Amazon 主 SageMaker 控台的導覽窗格中的推論下,選擇端點並尋找您的型號名稱。在 Amazon Redshift 中建立遠端推論模型時,必須複製模型的端點名稱。

步驟 3:將資料從 Amazon S3 載入到 Amazon Redshift

使用 Amazon Redshift 查詢編輯器 v2 在 Amazon Redshift 中執行以下 SQL 命令。如果 rcf_taxi_data 資料表存在,這些命令會捨棄資料表、建立相同名稱的資料表,然後將範例資料集載入資料表中。

DROP TABLE IF EXISTS public.rcf_taxi_data CASCADE; CREATE TABLE public.rcf_taxi_data (ride_timestamp timestamp, nbr_passengers int); COPY public.rcf_taxi_data FROM 's3://sagemaker-sample-files/datasets/tabular/anomaly_benchmark_taxi/NAB_nyc_taxi.csv' IAM_ROLE default IGNOREHEADER 1 FORMAT AS CSV;

步驟 4:建立 Amazon Redshift ML 的模型

執行下列查詢,以使用您在上一個步驟中取得的 SageMaker 模型端點在 Amazon Redshift ML 中建立模型。randomcutforest-xxxxxxxxx用您自己的 SageMaker 端點名稱替換。

CREATE MODEL public.remote_random_cut_forest FUNCTION remote_fn_rcf(int) RETURNS decimal(10, 6) SAGEMAKER '<randomcutforest-xxxxxxxxx>' IAM_ROLE default;

檢查模型狀態 (選擇性)

您可以使用 SHOW MODEL 命令來知道模型何時準備就緒。

使用 SHOW MODEL 來檢查模型的狀態。

SHOW MODEL public.remote_random_cut_forest

輸出顯示 SageMaker 端點和函數名稱。

+--------------------------+-----------------------------------------+ | Model Name | remote_random_cut_forest | +--------------------------+-----------------------------------------+ | Schema Name | public | | Owner | awsuser | | Creation Time | Wed, 15.06.2022 17:58:21 | | Model State | READY | | | | | PARAMETERS: | | | Endpoint | <randomcutforest-xxxxxxxxx> | | Function Name | remote_fn_rcf | | Inference Type | Remote | | Function Parameter Types | int4 | | IAM Role | default-aws-iam-role | +--------------------------+-----------------------------------------+

步驟 5:執行模型的預測

Amazon SageMaker 隨機切割森林演算法旨在偵測資料集中的異常資料點。在此範例中,您的模型旨在偵測由於重要事件而導致的計程車乘車尖峰。您可以透過為每個資料點產生異常分數,使用模型來預測異常事件。

使用下列查詢來計算整個計程車資料集的異常分數。請注意,您會參考上一個步驟中在 CREATE MODEL 陳述式中使用的函數。

SELECT ride_timestamp, nbr_passengers, public.remote_fn_rcf(nbr_passengers) AS score FROM public.rcf_taxi_data;

檢查是高分和低分的異常 (選擇性)

執行下列查詢,以尋找分數大於平均分數三個標準差的任何資料點。

WITH score_cutoff AS ( SELECT STDDEV(public.remote_fn_rcf(nbr_passengers)) AS std, AVG(public.remote_fn_rcf(nbr_passengers)) AS mean, (mean + 3 * std) AS score_cutoff_value FROM public.rcf_taxi_data ) SELECT ride_timestamp, nbr_passengers, public.remote_fn_rcf(nbr_passengers) AS score FROM public.rcf_taxi_data WHERE score > ( SELECT score_cutoff_value FROM score_cutoff ) ORDER BY 2 DESC;

執行下列查詢,以尋找分數大於平均分數三個標準差的任何資料點。

WITH score_cutoff AS ( SELECT STDDEV(public.remote_fn_rcf(nbr_passengers)) AS std, AVG(public.remote_fn_rcf(nbr_passengers)) AS mean, (mean - 3 * std) AS score_cutoff_value FROM public.rcf_taxi_data ) SELECT ride_timestamp, nbr_passengers, public.remote_fn_rcf(nbr_passengers) AS score FROM public.rcf_taxi_data WHERE score < ( SELECT score_cutoff_value FROM score_cutoff ) ORDER BY 2 DESC;

如需 Amazon Redshift ML 的相關資訊,請參閱下列文件:

如需機器學習的相關資訊,請參閱下列文件: