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 AI, 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 modello di SageMaker intelligenza artificiale Random Cut Forest in Amazon Redshift. Quindi, in Amazon Redshift, usi SQL per eseguire previsioni su un endpoint AI remoto SageMaker .

Puoi utilizzare un comando CREATE MODEL per importare un modello di machine learning da un endpoint Amazon SageMaker AI e preparare una funzione di previsione di Amazon Redshift. Quando utilizzi l'operazione CREATE MODEL, fornisci il nome dell'endpoint del modello di machine learning SageMaker AI.

In questo tutorial, crei un modello di machine learning di Amazon Redshift utilizzando un endpoint del modello SageMaker AI. 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 AI, quindi si ottiene il nome dell'endpoint. Puoi quindi utilizzare il comando CREATE MODEL per creare un modello con Amazon Redshift ML. Esegui infine previsioni sul modello utilizzando la funzione di previsione generata dal comando CREATE MODEL.

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 AI

  • Fase 2: Ottieni l'endpoint del modello SageMaker AI

  • 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 AI

  1. Per distribuire il modello, vai alla console Amazon SageMaker AI, 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 AI SageMaker

Sulla console Amazon SageMaker AI, 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

Utilizza l'editor di query v2 di Amazon Redshift per eseguire i comandi SQL seguenti 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 modello SageMaker AI ottenuto nel passaggio precedente. randomcutforest-xxxxxxxxxSostituiscilo con il nome del tuo endpoint SageMaker AI.

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)

È possibile utilizzare il comando SHOW MODEL per verificare quando il modello è pronto.

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

SHOW MODEL public.remote_random_cut_forest

L'output mostra l'endpoint SageMaker AI 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 AI 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. Nota: si fa riferimento alla funzione utilizzata nell'istruzione CREATE MODEL 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: