Tutorial: Erstellen von Remote-Inferenzmodellen - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tutorial: Erstellen von Remote-Inferenzmodellen

Im folgenden Tutorial werden die Schritte zum Erstellen eines Random-Cut-Forest-Modells beschrieben, das zuvor in Amazon SageMakeraußerhalb von Amazon Redshift trainiert und bereitgestellt wurde. Der Random-Cut-Forest-Algorithmus erkennt anormale Datenpunkte in einem Datensatz. Wenn Sie ein Modell mit Remote-Inferenz erstellen, können Sie Ihr Random-Cut-Forest- SageMaker Modell in Amazon Redshift integrieren. Anschließend verwenden Sie in Amazon Redshift SQL, um Vorhersagen auf einem Remote- SageMaker Endpunkt durchzuführen.

Sie können einen Befehl CREATE MODEL verwenden, um ein Machine-Learning-Modell von einem Amazon- SageMaker Endpunkt zu importieren und eine Amazon-Redshift-Vorhersagefunktion vorzubereiten. Wenn Sie die Operation CREATE MODEL verwenden, geben Sie den Endpunktnamen des SageMaker Machine-Learning-Modells an.

In diesem Tutorial erstellen Sie ein Machine-Learning-Modell von Amazon Redshift mithilfe eines SageMaker Modellendpunkts. Sobald Ihr Machine-Learning-Modell bereit ist, können Sie es verwenden, um Prognosen in Amazon Redshift zu treffen. Zuerst trainieren und erstellen Sie einen Endpunkt in Amazon SageMakerund erhalten dann den Endpunktnamen. Anschließend verwenden Sie den Befehl CREATE MODEL, um ein Modell mit Amazon Redshift ML zu erstellen. Schließlich treffen Sie Prognosen für das Modell mithilfe der Voraussagefunktion, die mit dem Befehl CREATE MODEL generiert wird.

Beispielanwendungsfälle

Sie können Random-Cut-Forest-Modelle und Remote-Inferenz zur Erkennung von Anomalien in anderen Datensätzen verwenden, z. B. zur Prognose eines raschen Anstiegs oder Rückgangs von E-Commerce-Transaktionen. Sie können auch signifikante Änderungen des Wetters oder der seismischen Aktivität voraussagen.

Aufgaben

  • Voraussetzungen

  • Schritt 1: Bereitstellen des Amazon- SageMaker Modells

  • Schritt 2: Abrufen des SageMaker Modellendpunkts

  • Schritt 3: Laden von Daten aus Amazon S3 in Amazon Redshift

  • Schritt 4: Erstellen eines Modells mit Amazon Redshift ML

  • Schritt 5: Erstellen von Prognosen mit dem Modell

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

Schritt 1: Bereitstellen des Amazon- SageMaker Modells

  1. Um das Modell bereitzustellen, navigieren Sie zur Amazon- SageMaker Konsole und wählen Sie im Navigationsbereich unter Notebook die Option Notebook-Instances aus.

  2. Wählen Sie Jupyter öffnen für das Jupyter-Notebook aus, das von der CloudFormation Vorlage erstellt wurde.

  3. Wählen Sie bring-your-own-model-remote-inference.ipynb.

  4. Richten Sie die Parameter zum Speichern der Trainingseingabe- und -ausgabe in Amazon S3 ein, indem Sie die folgenden Zeilen durch Ihren Amazon-S3-Bucket und Ihr Präfix ersetzen.

    data_location=f"s3://{bucket}/{prefix}/", output_path=f"s3://{bucket}/{prefix}/output",
  5. Wählen Sie die fast-forward-Schaltfläche aus, um alle Zellen auszuführen.

Schritt 2: Abrufen des SageMaker Modellendpunkts

Wählen Sie in der Amazon- SageMaker Konsole unter Inferenz im Navigationsbereich Endpunkte und suchen Sie Ihren Modellnamen. Sie müssen den Endpunktnamen Ihres Modells kopieren, wenn Sie das Remote-Inferenzmodell in Amazon Redshift erstellen.

Schritt 3: Laden von Daten aus Amazon S3 in Amazon Redshift

Verwenden Sie den Abfrage-Editor v2 von Amazon Redshift, um die folgenden SQL-Befehle in Amazon Redshift auszuführen. Mit diesen Befehlen werden die Tabelle rcf_taxi_data verworfen, falls sie vorhanden ist, eine gleichnamige Tabelle erstellt und der Beispieldatensatz in die Tabelle geladen.

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;

Schritt 4: Erstellen eines Modells mit Amazon Redshift ML

Führen Sie die folgende Abfrage aus, um ein Modell in Amazon Redshift ML mit dem SageMaker Modellendpunkt zu erstellen, den Sie im vorherigen Schritt erhalten haben. Ersetzen Sie durch den Namen randomcutforest-xxxxxxxxx Ihres eigenen SageMaker Endpunkts.

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

Überprüfen des Modellstatus (optional)

Sie können den Befehl SHOW MODEL verwenden, um festzustellen, wann Ihr Modell bereit ist.

Verwenden Sie die folgende Operation SHOW MODEL, um den Status des Modells zu überprüfen.

SHOW MODEL public.remote_random_cut_forest

Die Ausgabe zeigt den SageMaker Endpunkt und den Funktionsnamen.

+--------------------------+-----------------------------------------+ | 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 | +--------------------------+-----------------------------------------+

Schritt 5: Erstellen von Prognosen mit dem Modell

Der Amazon SageMaker Random Cut Forest-Algorithmus ist darauf ausgelegt, ungewöhnliche Datenpunkte innerhalb eines Datensatzes zu erkennen. In diesem Beispiel wurde Ihr Modell entwickelt, um Spitzen bei Taxifahrten aufgrund wichtiger Veranstaltungen zu erkennen. Sie können das Modell verwenden, um anomale Ereignisse vorherzusagen, indem Sie für jeden Datenpunkt einen Anomaliewert generieren.

Verwenden Sie die folgende Abfrage, um die Anomaliewerte für den gesamten Taxi-Datensatz zu berechnen. Beachten Sie, dass Sie auf die Funktion verweisen, die Sie im vorherigen Schritt in Ihrer Anweisung CREATE MODEL verwendet haben.

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

Prüfen auf hohe und niedrige Anomalien (optional)

Führen Sie die folgende Abfrage aus, um Datenpunkte zu finden, deren Ergebnisse größer als drei Standardabweichungen vom Mittelwert sind.

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;

Führen Sie die folgende Abfrage aus, um Datenpunkte zu finden, deren Ergebnisse größer als drei Standardabweichungen vom Mittelwert sind.

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;

Weitere Informationen zu Amazon Redshift ML finden Sie in der folgenden Dokumentation:

Weitere Informationen über Machine Learning finden Sie in der folgenden Dokumentation: