Tutorial: Creazione di modelli di inferenza remota - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: Creazione di modelli di inferenza remota

Il seguente tutorial illustra i passaggi per creare un modello Random Cut Forest precedentemente addestrato e distribuito in Amazon SageMaker, al di fuori di Amazon Redshift. L'algoritmo Random Cut Forest rileva punti dati anomali all'interno di un set di dati. La creazione di un modello con inferenza remota ti consente di portare il tuo SageMaker modello Random Cut Forest in Amazon Redshift. Quindi, in Amazon Redshift, puoi SQL eseguire previsioni su un endpoint remoto. SageMaker

Puoi usare un CREATE MODEL comando per importare un modello di machine learning da un SageMaker endpoint Amazon e preparare una funzione di previsione di Amazon Redshift. Quando si utilizza l'CREATEMODELoperazione, si fornisce il nome dell'endpoint del modello di SageMaker machine learning.

In questo tutorial, crei un modello di machine learning di Amazon Redshift utilizzando un endpoint SageMaker modello. Una volta che il modello di machine learning è pronto, puoi utilizzarlo per eseguire previsioni in Amazon Redshift. Innanzitutto, si addestra e si crea un endpoint in Amazon SageMaker, quindi si ottiene il nome dell'endpoint. Quindi, usi il CREATE MODEL comando per creare un modello con Amazon Redshift ML. Infine, esegui previsioni sul modello utilizzando la funzione di previsione generata dal CREATE MODEL comando.

Esempi di casi d'uso

È possibile utilizzare modelli Random Cut Forest e l'inferenza remota per il rilevamento di anomalie in altri set di dati, ad esempio la previsione di un rapido aumento o diminuzione delle transazioni di e-commerce. È inoltre possibile prevedere variazioni significative relative al meteo l'attività sismica.

Attività

  • Prerequisiti

  • Fase 1: Implementazione del modello Amazon SageMaker

  • Fase 2: Ottieni l'endpoint del SageMaker modello

  • Passaggio 3: caricamento dei dati da Amazon S3 ad Amazon Redshift

  • Passaggio 4: creazione di un modello con Amazon Redshift ML

  • Passaggio 5: esecuzione di previsioni con il modello

Prerequisiti

I prerequisiti per il completamento di questo sono elencati di seguito:

Fase 1: Implementazione del modello Amazon SageMaker

  1. Per distribuire il modello, vai alla SageMaker console Amazon, scegli Istanze Notebook in Notebook nel pannello di navigazione.

  2. Scegli Open Jupyter per il notebook Jupyter creato dal modello. CloudFormation

  3. Scegli bring-your-own-model-remote-inference.ipynb.

  4. Configura i parametri per archiviare l'input e l'output di addestramento in Amazon S3 sostituendo le righe seguenti con il bucket e il prefisso Amazon S3.

    data_location=f"s3://{bucket}/{prefix}/", output_path=f"s3://{bucket}/{prefix}/output",
  5. Seleziona il pulsante di avanzamento rapido per eseguire tutte le celle.

Fase 2: Ottieni l'endpoint del modello SageMaker

Sulla SageMaker console Amazon, in Inference nel riquadro di navigazione, scegli Endpoints e trova il nome del tuo modello. Quando crei il modello di inferenza remota in Amazon Redshift, devi copiare il nome dell'endpoint del modello.

Passaggio 3: caricamento dei dati da Amazon S3 ad Amazon Redshift

Usa l'editor di query di Amazon Redshift v2 per eseguire i seguenti SQL comandi in Amazon Redshift. Questi comandi eliminano la tabella rcf_taxi_data, se esiste, creano una tabella con lo stesso nome e caricano il set di dati di esempio nella tabella.

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;

Passaggio 4: creazione di un modello con Amazon Redshift ML

Esegui la seguente query per creare un modello in Amazon Redshift ML utilizzando l'endpoint del SageMaker modello ottenuto nel passaggio precedente. Replace (Sostituisci) foresta tagliata a caso - xxxxxxxxx con il nome del proprio endpoint. SageMaker

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

Controllo dello stato del modello (facoltativo)

Puoi usare il SHOW MODEL comando per sapere quando il tuo modello è pronto.

Per verificare lo stato del modello, utilizzate la seguente SHOW MODEL operazione.

SHOW MODEL public.remote_random_cut_forest

L'output mostra l' SageMaker endpoint e il nome della funzione.

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

Passaggio 5: esecuzione di previsioni con il modello

L'algoritmo Amazon SageMaker Random Cut Forest è progettato per rilevare punti dati anomali all'interno di un set di dati. In questo esempio, il modello è progettato per rilevare i picchi a livello di corse in taxi dovuti a eventi importanti. È possibile utilizzare il modello per prevedere eventi anomali generando un punteggio delle anomalie per ogni punto dati.

Utilizza la seguente query per calcolare i punteggi delle anomalie nell'intero set di dati relativo ai taxi. Tieni presente che fai riferimento alla funzione che hai usato nella tua CREATE MODEL dichiarazione nel passaggio precedente.

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

Verifica della presenza di anomalie alte e basse (facoltativo)

Esegui la seguente query per trovare i punti dati con punteggi superiori a tre deviazioni standard rispetto al punteggio medio.

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;

Esegui la seguente query per trovare i punti dati con punteggi superiori a tre deviazioni standard rispetto al punteggio medio.

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;

Per ulteriori informazioni su Amazon Redshift ML, fare riferimento ai seguenti collegamenti:

Per ulteriori informazioni sul machine learning, consulta la documentazione seguente: