Tutoriel : Création de modèles d'inférence à distance - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Tutoriel : Création de modèles d'inférence à distance

Le didacticiel suivant décrit les étapes de création d'un modèle Random Cut Forest préalablement entraîné et déployé sur Amazon SageMaker, en dehors d'Amazon Redshift. L'algorithme Random Cut Forest détecte les points de données anormaux au sein d'un jeu de données. La création d'un modèle par inférence à distance vous permet d'intégrer votre SageMaker modèle Random Cut Forest dans Amazon Redshift. Ensuite, dans Amazon Redshift, vous utilisez SQL pour effectuer des prédictions sur un point de terminaison distant SageMaker .

Vous pouvez utiliser une commande CREATE MODEL pour importer un modèle d'apprentissage automatique depuis un point de SageMaker terminaison Amazon et préparer une fonction de prédiction Amazon Redshift. Lorsque vous utilisez l'opération CREATE MODEL, vous fournissez le nom du point de terminaison du modèle d'apprentissage SageMaker automatique.

Dans ce didacticiel, vous allez créer un modèle d'apprentissage automatique Amazon Redshift à l'aide d'un point de terminaison SageMaker du modèle. Une fois votre modèle de machine learning prêt, vous pouvez l'utiliser pour effectuer des prédictions dans Amazon Redshift. Tout d'abord, vous entraînez et créez un point de terminaison sur Amazon SageMaker, puis vous obtenez le nom du point de terminaison. Ensuite, vous utilisez la commande CREATE MODEL pour créer un modèle avec Amazon Redshift ML. Enfin, vous effectuez des prédictions sur ce modèle à l'aide de la fonction de prédiction générée par la commande CREATE MODEL.

Exemples de cas d'utilisation

Vous pouvez utiliser des modèles Random Cut Forest et l'inférence à distance pour la détection d'anomalies dans d'autres jeux de données, comme la prédiction d'une augmentation ou d'une diminution rapide des transactions de commerce en ligne. Vous pouvez également prédire des changements importants dans les conditions météorologiques ou l'activité sismique.

Tâches

  • Prérequis

  • Étape 1 : Déployer le SageMaker modèle Amazon

  • Étape 2 : obtenir le point de terminaison du SageMaker modèle

  • Étape 3 : charger les données d'Amazon S3 dans Amazon Redshift

  • Étape 4 : créer un modèle avec Amazon Redshift ML

  • Étape 5 : effectuer des prédictions avec le modèle

Prérequis

Pour effectuer ce didacticiel, vous devez avoir rempli les conditions suivantes :

Étape 1 : Déployer le SageMaker modèle Amazon

  1. Pour déployer le modèle, accédez à la SageMaker console Amazon, choisissez Notebook instances sous Notebook dans le volet de navigation.

  2. Choisissez Open Jupyter pour le bloc-notes Jupyter créé par le modèle. CloudFormation

  3. Sélectionnez bring-your-own-model-remote-inference.ipynb.

  4. Configurez les paramètres pour stocker les entrées et sorties d'entraînement dans Amazon S3 en remplaçant les lignes suivantes par votre compartiment et votre préfixe Amazon S3.

    data_location=f"s3://{bucket}/{prefix}/", output_path=f"s3://{bucket}/{prefix}/output",
  5. Choisissez le bouton fast-forward (avance rapide) pour exécuter toutes les cellules.

Étape 2 : obtenir le point de terminaison du SageMaker modèle

Sur la SageMaker console Amazon, sous Inference dans le volet de navigation, choisissez Endpoints et recherchez le nom de votre modèle. Vous devez copier le nom du point de terminaison de votre modèle lorsque vous créez le modèle d'inférence à distance dans Amazon Redshift.

Étape 3 : charger les données d'Amazon S3 dans Amazon Redshift

Utilisez l'éditeur de requête v2 Amazon Redshift pour exécuter les commandes SQL suivantes dans Amazon Redshift. Ces commandes suppriment la table rcf_taxi_data si elle existe, créent une table du même nom et chargent l'exemple de jeu de données dans la table.

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;

Étape 4 : créer un modèle avec Amazon Redshift ML

Exécutez la requête suivante pour créer un modèle dans Amazon Redshift ML à l'aide du point de terminaison du SageMaker modèle que vous avez obtenu à l'étape précédente. randomcutforest-xxxxxxxxxRemplacez-le par le nom de votre propre SageMaker point de terminaison.

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

Vérifier le statut du modèle (facultatif)

Vous pouvez utiliser la commande SHOW MODEL pour savoir quand votre modèle sera prêt.

Pour vérifier le statut du modèle, utilisez l'opération SHOW MODEL suivante.

SHOW MODEL public.remote_random_cut_forest

La sortie indique le SageMaker point de terminaison et le nom de la fonction.

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

Étape 5 : effectuer des prédictions avec le modèle

L'algorithme Amazon SageMaker Random Cut Forest est conçu pour détecter les points de données anormaux dans un ensemble de données. Dans cet exemple, votre modèle est conçu pour détecter les pics de trajets en taxi dus à des événements importants. Vous pouvez utiliser ce modèle pour prédire les événements anormaux en générant un score d'anomalie pour chaque point de données.

Utilisez la requête suivante pour calculer les scores d'anomalies dans le jeu de données complet des taxis. Notez que vous faites référence à la fonction que vous avez utilisée dans votre instruction CREATE MODEL à l'étape précédente.

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

Vérifier les anomalies hautes et basses (facultatif)

Exécutez la requête suivante pour rechercher tous les points de données dont les scores dépassent le score moyen d'au moins trois écarts types.

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;

Exécutez la requête suivante pour rechercher tous les points de données dont les scores dépassent le score moyen d'au moins trois écarts types.

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;

Pour plus d'informations sur Amazon Redshift ML, consultez la documentation suivante :

Pour plus d'informations sur le machine learning, consultez la documentation suivante :