Cas d’utilisation - 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.

Cas d’utilisation

Les cas d’utilisation suivants montrent comment utiliser la clause CREATE MODEL en fonction de vos besoins.

CREATE MODEL simple

Voici un résumé des options de base de la syntaxe CREATE MODEL.

Syntaxe CREATE MODEL simple

CREATE MODEL model_name FROM { table_name | ( select_query ) } TARGET column_name FUNCTION prediction_function_name IAM_ROLE { default } SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', [ MAX_CELLS integer ] )

Paramètres CREATE MODEL simples

model_name

Nom du modèle. Le nom du modèle d’un schéma doit être unique.

FROM { table_name | ( select_query ) }

Le table_name ou la requête qui spécifie les données d’entraînement. Il peut s’agir soit d’une table existante dans le système, soit d’une requête SELECT compatible avec Amazon RedShift entre parenthèses, c’est-à-dire (). Le résultat de la requête doit contenir au moins deux colonnes.

TARGET column_name

Nom de la colonne qui devient la cible de la prédiction. La colonne doit exister dans la clause FROM.

FUNCTION prediction_function_name

Valeur qui spécifie le nom de la fonction de machine learning Amazon Redshift à générer par le modèle CREATE MODEL et utilisée pour effectuer des prédictions à l’aide de ce modèle. La fonction est créée dans le même schéma que l’objet de modèle et peut être surchargée.

L'apprentissage automatique Amazon Redshift prend en charge des modèles tels que les modèles Xtreme Gradient Boosted tree (XGBoost) pour la régression et la classification.

IAM_ROLE { default | ’arn:aws:iam::<account-id>:role/<role-name>’ }

Utilisez le mot clé par défaut pour qu’Amazon Redshift utilise le rôle IAM défini comme rôle par défaut et associé au cluster lorsque la commande CREATE MODEL s’exécute. Vous pouvez également spécifier l’ARN d’un rôle IAM pour utiliser ce rôle.

S3_BUCKET 'amzn-s3-demo-bucket'

Le nom du compartiment Amazon S3 que vous avez créé précédemment était utilisé pour partager des données d'entraînement et des artefacts entre Amazon Redshift et SageMaker AI. Amazon Redshift crée un sous-dossier dans ce compartiment avant le déchargement des données d’entraînement. Lorsque l’entraînement est terminé, Amazon Redshift supprime le sous-dossier créé et son contenu.

MAX_CELLS integer

Nombre maximal de cellules à exporter à partir de la clause FROM. La valeur par défaut est 1 000 000.

Le nombre de cellules est le produit du nombre de lignes dans les données d’entraînement (produites par la table ou la requête de clause FROM) multiplié par le nombre de colonnes. Si le nombre de cellules dans les données d’entraînement est supérieur à celui spécifié par le paramètre max_cells, CREATE MODEL crée des sous-échantillons des données d’entraînement de la clause FROM pour réduire la taille du jeu de données d’entraînement en dessous de la valeur MAX_CELLS. Autoriser des jeux de données d’entraînement plus volumineux peut permettre de bénéficier d’une plus grande précision, mais peut également augmenter la durée et le coût d’entraînement du modèle.

Pour obtenir des informations sur les coûts d’utilisation d’Amazon Redshift, consultez Coûts d'utilisation d'Amazon Redshift ML.

Pour plus d’informations sur les coûts associés aux différents nombres de cellules et sur les détails de l’essai gratuit, consultez Tarification Amazon Redshift.

CREATE MODEL avec guide de l’utilisateur

Vous trouverez ci-dessous une description des options de CREATE MODEL en plus des options décrites dans CREATE MODEL simple.

Par défaut, CREATE MODEL recherche la meilleure combinaison de prétraitement et le meilleur modèle pour votre jeu de données spécifique. Il se peut que vous ayez besoin d’un contrôle plus poussé ou d’introduire des connaissances de domaine supplémentaires (comme le type de problème ou l’objectif) pour votre modèle. Dans un scénario de désabonnement client, si le résultat « client n’est pas actif » est rare, l’objectif F1 est souvent préféré à l’objectif Précision. Étant donné que les modèles à haute précision peuvent prédire « le client est actif » tout le temps, il en résulte une haute précision, mais peu de valeur opérationnelle. Pour plus d'informations sur l'objectif F1, consultez Auto MLJob Objective dans le manuel Amazon SageMaker AI API Reference.

Ensuite, le modèle CREATE suit vos suggestions sur les aspects spécifiés, tels que l’objectif. Dans le même temps, CREATE MODEL détecte automatiquement les meilleurs préprocesseurs et les meilleurs hyperparamètres.

CREATE MODEL avec syntaxe de guide de l’utilisateur

CREATE MODEL offre plus de flexibilité sur les aspects que vous pouvez spécifier et les aspects qu’Amazon Redshift détecte automatiquement.

CREATE MODEL model_name FROM { table_name | ( select_statement ) } TARGET column_name FUNCTION function_name IAM_ROLE { default } [ MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER} ] [ PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION ) ] [ OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC') ] SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | S3_GARBAGE_COLLECT { ON | OFF }, | KMS_KEY_ID 'kms_key_id', | MAX_CELLS integer, | MAX_RUNTIME integer (, ...) )

CREATE MODEL avec paramètres de guide de l’utilisateur

MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER }

(Facultatif) Spécifie le type de modèle. Vous pouvez spécifier si vous souhaitez entraîner un modèle d'un type de modèle spécifique XGBoost, tel que le perceptron multicouche (MLP) ou le Linear Learner, qui sont tous des algorithmes pris en charge par Amazon SageMaker AI Autopilot. Si vous ne spécifiez pas le paramètre, tous les types de modèles pris en charge sont recherchés pendant l’entraînement pour trouver le meilleur modèle.

PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION )

(Facultatif) Spécifie le type de problème. Si vous connaissez le type de problème, vous pouvez limiter la recherche Amazon Redshift au meilleur modèle de ce type en particulier. Si vous ne spécifiez pas ce paramètre, un type de problème est détecté pendant l’entraînement, en fonction de vos données.

OBJECTIVE ( ’MSE’ | ’Accuracy’ | ’F1’ | ’F1Macro’ | ’AUC’)

(Facultatif) Spécifie le nom de la métrique d’objectif utilisée pour mesurer la qualité prédictive d’un système de machine learning. Cette métrique est optimisée pendant l’entraînement afin de fournir la meilleure estimation des valeurs des paramètres du modèle à partir des données. Si vous ne spécifiez pas de métrique explicitement, le comportement par défaut consiste à utiliser automatiquement MSE : pour la régression, F1 : pour la classification binaire, Précision : pour la classification multiclasse. Pour plus d'informations sur les objectifs, consultez Auto MLJob Objective dans le manuel Amazon SageMaker AI API Reference.

MAX_CELLS integer

(Facultatif) Spécifie le nombre de cellules dans les données d’entraînement. Cette valeur est le produit du nombre d’enregistrements (dans la requête d’entraînement ou dans la table) multiplié par le nombre de colonnes. La valeur par défaut est 1 000 000.

MAX_RUNTIME integer

(Facultatif) Spécifie la durée maximale d’entraînement. Les tâches d’entraînement se terminent souvent plus tôt en fonction de la taille du jeu de données. Ce nombre spécifie la durée maximale de l’entraînement. La valeur par défaut est 5 400 (90 minutes).

S3_GARBAGE_COLLECT { ON | OFF }{SUR | OFF}

(Facultatif) Spécifie si Amazon Redshift lance le récupérateur de mémoire sur les jeux de données obtenus utilisés pour entraîner les modèles et sur les modèles. Si la valeur est définie sur OFF, les jeux de données obtenus utilisés pour entraîner les modèles et les modèles eux-mêmes restent dans Amazon S3 et peuvent être utilisés à d’autres fins. Si la valeur est définie sur ON, Amazon Redshift supprime les artefacts dans Amazon S3 une fois l’entraînement terminé. La valeur par défaut est ON.

KMS_KEY_ID ’kms_key_id’

(Facultatif) Spécifie si Amazon Redshift utilise le chiffrement côté serveur avec une clé AWS KMS pour protéger les données au repos. Les données en transit sont protégées par le protocole SSL.

PREPROCESSORS ’string’

(Facultatif) Spécifie certaines combinaisons de préprocesseurs à certains ensembles de colonnes. Le format est une liste de columnSets et les transformations appropriées à appliquer à chaque ensemble de colonnes. Amazon Redshift applique tous les transformateurs d'une liste de transformateurs spécifique à toutes les colonnes de la liste correspondante. ColumnSet Par exemple, pour appliquer OneHotEncoder avec Imputer aux colonnes t1 et t2, utilisez l'exemple de commande suivant.

CREATE MODEL customer_churn FROM customer_data TARGET 'Churn' FUNCTION predict_churn IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } PROBLEM_TYPE BINARY_CLASSIFICATION OBJECTIVE 'F1' PREPROCESSORS '[ ... {"ColumnSet": [ "t1", "t2" ], "Transformers": [ "OneHotEncoder", "Imputer" ] }, {"ColumnSet": [ "t3" ], "Transformers": [ "OneHotEncoder" ] }, {"ColumnSet": [ "temp" ], "Transformers": [ "Imputer", "NumericPassthrough" ] } ]' SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket' )

Amazon Redshift prend en charge les transformateurs suivants :

  • OneHotEncoder — Généralement utilisé pour coder une valeur discrète dans un vecteur binaire avec une valeur différente de zéro. Ce transformateur convient à de nombreux modèles de machine learning.

  • OrdinalEncoder — Encode des valeurs discrètes en un seul entier. Ce transformateur convient à certains modèles de machine learning, tels que MLP et Linear Learner.

  • NumericPassthrough — Transmet l'entrée telle quelle dans le modèle.

  • Imputer : remplit les valeurs manquantes et les valeurs qui ne sont pas un nombre (NaN).

  • ImputerWithIndicator — Complète les valeurs manquantes et les valeurs NaN. Ce transformateur crée également un indicateur indiquant si des valeurs étaient manquantes et ont été emplies.

  • Normalizer : normalise les valeurs, ce qui peut améliorer les performances de nombreux algorithmes de machine learning.

  • DateTimeVectorizer — Crée une intégration vectorielle, représentant une colonne de type de données date/heure pouvant être utilisée dans les modèles d'apprentissage automatique.

  • PCA : projette les données dans un espace dimensionnel inférieur afin de réduire le nombre de fonctions tout en conservant autant d’informations que possible.

  • StandardScaler — Normalise les caractéristiques en supprimant la moyenne et en les adaptant à l'unité de variance.

  • MinMax — Transforme les entités en adaptant chaque entité à une plage donnée.

Amazon Redshift ML stocke les transformateurs entraînés et les applique automatiquement dans le cadre de la requête de prédiction. Vous n’avez pas besoin de les spécifier lorsque vous générez des prédictions à partir de votre modèle.

CRÉEZ des XGBoost modèles avec AUTO OFF

En général, la commande AUTO OFF CREATE MODEL a des objectifs différents de ceux de la commande CREATE MODE par défaut.

Si vous êtes utilisateur avancé qui connaît déjà le type de modèle souhaité et les hyperparamètres à utiliser lors de l’entraînement de ces modèles, vous pouvez utiliser CREATE MODEL avec AUTO OFF pour désactiver la détection automatique CREATE MODEL des préprocesseurs et des hyperparamètres. Pour ce faire, vous devez spécifier explicitement le type de modèle. XGBoost est actuellement le seul type de modèle pris en charge lorsque AUTO est réglé sur OFF. Vous pouvez spécifier des hyperparamètres. Amazon Redshift utilise des valeurs par défaut pour tous les hyperparamètres que vous avez spécifiés.

CRÉEZ des XGBoost modèles avec la syntaxe AUTO OFF

CREATE MODEL model_name FROM { table_name | (select_statement ) } TARGET column_name FUNCTION function_name IAM_ROLE { default } AUTO OFF MODEL_TYPE XGBOOST OBJECTIVE { 'reg:squarederror' | 'reg:squaredlogerror' | 'reg:logistic' | 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:hinge' | 'multi:softmax' | 'rank:pairwise' | 'rank:ndcg' } HYPERPARAMETERS DEFAULT EXCEPT ( NUM_ROUND '10', ETA '0.2', NUM_CLASS '10', (, ...) ) PREPROCESSORS 'none' SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | S3_GARBAGE_COLLECT { ON | OFF }, | KMS_KEY_ID 'kms_key_id', | MAX_CELLS integer, | MAX_RUNTIME integer (, ...) )

CRÉEZ des XGBoost modèles avec les paramètres AUTO OFF

AUTO OFF

Désactive la détection automatique CREATE MODEL du préprocesseur, de l’algorithme et de la sélection d’hyperparamètres.

MODEL_TYPE XGBOOST

Indiquer d’utiliser XGBOOST pour entraîner le modèle.

OBJECTIVE str

Spécifie un objectif reconnu par l’algorithme. Amazon Redshift prend en charge reg:squarederror, reg:squaredlogerror, reg:logistic, reg:pseudohubererror, reg:tweedie, binary:logistic, binary:hinge, multi:softmax. Pour plus d'informations sur ces objectifs, consultez la section Paramètres des tâches d'apprentissage dans la XGBoost documentation.

HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( key ‘value’ (,..) ) }

Spécifie si les XGBoost paramètres par défaut sont utilisés ou remplacés par des valeurs spécifiées par l'utilisateur. Les valeurs doivent être entre guillemets simples. Vous trouverez ci-dessous des exemples de paramètres pour XGBoost et leurs valeurs par défaut.

Nom du paramètre Valeur de paramètre Valeur par défaut Remarques

num_class

Entier

Requis pour la classification multiclasse.

N/A

num_round

Entier

100

N/A

tree_method

Chaîne Auto N/A

max_depth

Entier 6 [0 , 10]
min_child_weight Float 1 MinValue: 0, MaxValue 120
subsample Float 1 MinValue: 0,5, MaxValue : 1
gamma Float 0 MinValue: 0, MaxValue 5
alpha Float 0 MinValue: 0, MaxValue 100
eta Float 0.3 MinValue: 0,1, MaxValue 0,5
colsample_byleve Float 1 MinValue: 0,1, MaxValue 1
colsample_bynode Float 1 MinValue: 0,1, MaxValue 1
colsample_bytree Float 1 MinValue: 0,5, MaxValue : 1
lambda Float 1 MinValue: 0, MaxValue 100
max_delta_step Entier 0 [0, 10]

L'exemple suivant prépare les données pour XGBoost.

DROP TABLE IF EXISTS abalone_xgb; CREATE TABLE abalone_xgb ( length_val float, diameter float, height float, whole_weight float, shucked_weight float, viscera_weight float, shell_weight float, rings int, record_number int); COPY abalone_xgb FROM 's3://redshift-downloads/redshift-ml/abalone_xg/' REGION 'us-east-1' IAM_ROLE default IGNOREHEADER 1 CSV;

L'exemple suivant crée un XGBoost modèle avec des options avancées spécifiées, telles que MODEL_TYPE, OBJECTIVE et PREPROCESSORS.

DROP MODEL abalone_xgboost_multi_predict_age; CREATE MODEL abalone_xgboost_multi_predict_age FROM ( SELECT length_val, diameter, height, whole_weight, shucked_weight, viscera_weight, shell_weight, rings FROM abalone_xgb WHERE record_number < 2500 ) TARGET rings FUNCTION ml_fn_abalone_xgboost_multi_predict_age IAM_ROLE default AUTO OFF MODEL_TYPE XGBOOST OBJECTIVE 'multi:softmax' PREPROCESSORS 'none' HYPERPARAMETERS DEFAULT EXCEPT (NUM_ROUND '100', NUM_CLASS '30') SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket');

L’exemple suivant utilise une requête d’inférence pour prédire l’âge du poisson dont le nombre d’enregistrements est supérieur à 2 500. Il utilise la fonction ml_fn_abalone_xgboost_multi_predict_age créée à partir de la commande ci-dessus.

select ml_fn_abalone_xgboost_multi_predict_age(length_val, diameter, height, whole_weight, shucked_weight, viscera_weight, shell_weight)+1.5 as age from abalone_xgb where record_number > 2500;

Modèle BYOM (Bring Your Own Model) : inférence locale

Amazon Redshift ML prend en charge l’utilisation du modèle BYOM pour l’inférence locale.

Vous trouverez ci-dessous un résumé des options de syntaxe CREATE MODEL pour le modèle BYOM. Vous pouvez utiliser un modèle formé en dehors d'Amazon Redshift avec Amazon SageMaker AI pour effectuer des inférences dans la base de données localement dans Amazon Redshift.

Syntaxe CREATE MODEL pour l'inférence locale

Voici une description de la syntaxe CREATE MODEL pour l’inférence locale.

CREATE MODEL model_name FROM ('job_name' | 's3_path' ) FUNCTION function_name ( data_type [, ...] ) RETURNS data_type IAM_ROLE { default } [ SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | --required KMS_KEY_ID 'kms_string') --optional ];

Amazon Redshift ne prend actuellement en charge que les modèles préentraînés XGBoost, MLP et Linear Learner pour le BYOM. Vous pouvez importer le pilote automatique SageMaker AI et les modèles directement entraînés dans Amazon SageMaker AI à des fins d'inférence locale en utilisant ce chemin.

Paramètres CREATE MODEL pour l’inférence locale

model_name

Nom du modèle. Le nom du modèle d’un schéma doit être unique.

FROM (’job_name’ | ’s3_path’ )

Le job_name utilise un nom de tâche Amazon SageMaker AI comme entrée. Le nom du poste peut être un nom de tâche de formation Amazon SageMaker AI ou un nom de tâche Amazon SageMaker AI Autopilot. La tâche doit être créée dans le même AWS compte que celui qui possède le cluster Amazon Redshift. Pour trouver le nom du poste, lancez Amazon SageMaker AI. Dans le menu déroulant Training (Entraînement), choisissez Training jobs (Tâches d’entraînement).

’s3_path’ spécifie l’emplacement S3 du fichier d’artefacts de modèle .tar.gz à utiliser lors de la création du modèle.

FUNCTION function_name ( data_type [, ...] )

Nom de la fonction à créer et types de données des arguments d’entrée. Vous pouvez spécifier un nom de schéma.

RETURNS type_données

Type de données de la valeur renvoyée par la fonction.

IAM_ROLE { default | ’arn:aws:iam::<account-id>:role/<role-name>’}

Utilisez le mot clé par défaut pour qu’Amazon Redshift utilise le rôle IAM défini comme rôle par défaut et associé au cluster lorsque la commande CREATE MODEL s’exécute.

Utilisez l’Amazon Resource Name (ARN) d’un rôle IAM que votre cluster utilise pour l’authentification et l’autorisation.

PARAMÈTRES (S3_BUCKET 'amzn-s3-demo-bucket', | KMS_KEY_ID 'kms_string')

La clause S3_BUCKET spécifie l’emplacement Amazon S3 utilisé pour stocker les résultats intermédiaires.

(Facultatif) La clause KMS_KEY_ID indique si Amazon Redshift utilise le chiffrement côté serveur avec une clé pour protéger les données au repos. AWS KMS Les données en transit sont protégées par le protocole SSL.

Pour plus d'informations, consultez CREATE MODEL avec guide de l’utilisateur.

Exemple CREATE MODEL pour l’inférence locale

L'exemple suivant crée un modèle qui a déjà été formé à Amazon SageMaker AI, en dehors d'Amazon Redshift. Étant donné que le type de modèle est pris en charge par le ML d’Amazon Redshift pour l’inférence locale, la commande CREATE MODEL suivante crée une fonction qui peut être utilisée localement dans Amazon Redshift. Vous pouvez fournir un nom de poste de formation à l' SageMaker IA.

CREATE MODEL customer_churn FROM 'training-job-customer-churn-v4' FUNCTION customer_churn_predict (varchar, int, float, float) RETURNS int IAM_ROLE default SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket');

Une fois le modèle créé, vous pouvez utiliser la fonction customer_churn_predict avec les types d’arguments spécifiés pour effectuer des prédictions.

Modèle BYOM (Bring Your Own Model) : inférence distante

Amazon Redshift ML prend également en charge l’utilisation du modèle BYOM pour l’inférence distante.

Vous trouverez ci-dessous un résumé des options de syntaxe CREATE MODEL pour le modèle BYOM.

Syntaxe CREATE MODEL pour l’inférence distante

Voici une description de la syntaxe CREATE MODEL pour l’inférence distante.

CREATE MODEL model_name FUNCTION function_name ( data_type [, ...] ) RETURNS data_type SAGEMAKER 'endpoint_name'[:'model_name'] IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } [SETTINGS (MAX_BATCH_ROWS integer)];

Paramètres CREATE MODEL pour l’inférence distante

model_name

Nom du modèle. Le nom du modèle d’un schéma doit être unique.

FUNCTION fn_name ( [data_type] [, ...] )

Nom de la fonction et types de données des arguments d’entrée. Consultez Types de données pour connaître tous les types de données pris en charge. Geography, geometry et hllsketch ne sont pas pris en charge.

Vous pouvez également fournir un nom de fonction dans un schéma en utilisant une notation en deux parties, telle quemyschema.myfunction.

RETURNS type_données

Type de données de la valeur renvoyée par la fonction. Consultez Types de données pour connaître tous les types de données pris en charge. Geography, geometry et hllsketch ne sont pas pris en charge.

SAGEMAKER ’endpoint_name’[:’model_name’]

Nom du point de terminaison Amazon SageMaker AI. Si le nom du point de terminaison pointe vers un point de terminaison multimodèle, ajoutez le nom du modèle à utiliser. Le point de terminaison doit être hébergé dans la même AWS région et Compte AWS que le cluster Amazon Redshift. Pour trouver votre point de terminaison, lancez Amazon SageMaker AI. Dans le menu déroulant Inference (Inférence), choisissez Endpoints (Points de terminaison).

IAM_ROLE { default | ’arn:aws:iam::<account-id>:role/<role-name>’}

Utilisez le mot clé par défaut pour qu’Amazon Redshift utilise le rôle IAM défini comme rôle par défaut et associé au cluster lorsque la commande CREATE MODEL s’exécute. Vous pouvez également spécifier l’ARN d’un rôle IAM pour utiliser ce rôle.

MAX_BATCH_ROWS entier

Le nombre maximum de lignes qu'Amazon Redshift envoie dans une seule demande par lot pour un seul appel d' SageMaker IA. Il n'est pris en charge que pour le BYOM avec inférence à distance. Le nombre réel de lignes dans un lot dépend également de la taille d'entrée, mais il est inférieur ou égal à cette valeur. La valeur minimale pour ce paramètre est 1. La valeur maximale est INT_MAX de 2 147 483 647. Ce paramètre n'est obligatoire que lorsque les types de données en entrée et en sortie le sontSUPER. La valeur par défaut estINT_MAX, ou 2 147 483 647.

Lorsque le modèle est déployé sur un SageMaker point de terminaison d' SageMaker IA, l'IA crée les informations du modèle dans Amazon Redshift. Il effectue ensuite une inférence à travers la fonction externe. Vous pouvez utiliser la commande SHOW MODEL pour afficher les informations de modèle sur votre cluster Amazon Redshift.

CREATE MODEL pour les notes d’utilisation d’inférence distante

Avant d’utiliser CREATE MODLE pour l’inférence distante, tenez compte des éléments suivants :

  • Le point de terminaison doit être hébergé par le même AWS compte que celui qui possède le cluster Amazon Redshift.

  • Assurez-vous que le point de terminaison Amazon SageMaker AI dispose de suffisamment de ressources pour prendre en charge les appels d'inférence d'Amazon Redshift ou que le point de terminaison SageMaker Amazon AI peut être automatiquement redimensionné.

  • Si vous n'utilisez pas le type de SUPER données comme entrée, le modèle accepte uniquement les entrées au format de valeurs séparées par des virgules (CSV), ce qui correspond à un type de contenu text/CSV dans SageMaker AI.

  • Si vous n'utilisez pas le type de SUPER données en entrée, la sortie des modèles est une valeur unique du type spécifié lors de la création de la fonction. La sortie est au format de valeurs séparées par des virgules (CSV) via un type de text/CSV contenu AI. SageMaker VARCHARles types de données ne peuvent pas être entre guillemets et ne peuvent pas contenir de nouvelles lignes, et chaque sortie doit figurer sur une nouvelle ligne.

  • Les modèles acceptent les valeurs NULL comme chaînes vides.

  • Lorsque le type de données d'entrée estSUPER, un seul argument d'entrée est pris en charge.

  • Lorsque le type de données d'entrée estSUPER, le type de données renvoyé doit également l'êtreSUPER.

  • MAX_BATCH_ROWS est requis lorsque les types de données en entrée et en sortie sont de type SUPER.

  • Lorsque le type de données d'entrée est SUPER le type de contenu du point de terminaison, c'est soit application/json lorsque MAX_BATCH_ROWS l'est1, soit dans tous les autres cas. application/jsonlines

  • Lorsque le type de données renvoyé est SUPER le type d'acceptation, l'invocation du point de terminaison est soit application/json lorsque MAX_BATCH_ROWS l'est1, soit dans tous les autres cas. application/jsonlines

Exemple de CREATE MODEL pour l'inférence distante

L'exemple suivant crée un modèle qui utilise un point de terminaison d' SageMaker IA pour effectuer des prédictions. Assurez-vous que le point de terminaison est en cours d’exécution pour effectuer des prédictions et spécifiez son nom dans la commande CREATE MODEL.

CREATE MODEL remote_customer_churn FUNCTION remote_fn_customer_churn_predict (varchar, int, float, float) RETURNS int SAGEMAKER 'customer-churn-endpoint' IAM_ROLE default;

L'exemple suivant crée un BYOM avec inférence à distance avec un grand modèle de langage (LLM). LLMs hébergés sur Amazon SageMaker AI Jumpstart, ils acceptent et renvoient le type de application/json contenu et prennent en charge un seul JSON par appel. Les types de données d'entrée et de retour doivent être définis sur 1 SUPER et MAX_BATCH_ROWS doit être défini sur 1.

CREATE MODEL sample_super_data_model FUNCTION sample_super_data_model_predict(super) RETURNS super SAGEMAKER 'sample_super_data_model_endpoint' IAM_ROLE default SETTINGS (MAX_BATCH_ROWS 1);

CREATE MODEL avec K-MEANS

Amazon Redshift prend en charge l’algorithme K-Means qui regroupe des données non étiquetées. Cet algorithme résout les problèmes de mise en cluster lorsque vous souhaitez découvrir des regroupements dans les données. Les données non classifiées sont regroupées et partitionnées en fonction de leurs similitudes et de leurs différences.

CREATE MODEL avec la syntaxe K-MEANS

CREATE MODEL model_name FROM { table_name | ( select_statement ) } FUNCTION function_name IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } AUTO OFF MODEL_TYPE KMEANS PREPROCESSORS 'string' HYPERPARAMETERS DEFAULT EXCEPT ( K 'val' [, ...] ) SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', KMS_KEY_ID 'kms_string', | -- optional S3_GARBAGE_COLLECT on / off, | -- optional MAX_CELLS integer, | -- optional MAX_RUNTIME integer -- optional);

CREATE MODEL avec les paramètres K-MEANS

AUTO OFF

Désactive la détection automatique CREATE MODEL du préprocesseur, de l’algorithme et de la sélection d’hyperparamètres.

MODEL_TYPE KMEANS

Permet de spécifier l’utilisation de KMEANS pour entraîner le modèle.

PREPROCESSORS ’string’

Spécifie certaines combinaisons de préprocesseurs à certains ensembles de colonnes. Le format est une liste de columnSets et les transformations appropriées à appliquer à chaque ensemble de colonnes. Amazon Redshift prend en charge 3 préprocesseurs K-Means, à savoir StandardScaler, et. MinMax NumericPassthrough Si vous ne souhaitez appliquer aucun prétraitement pour K-Means, choisissez-le NumericPassthrough explicitement en tant que transformateur. Pour plus d’informations sur les transformateurs pris en charge, consultez CREATE MODEL avec paramètres de guide de l’utilisateur.

L’algorithme K-Means utilise la distance euclidienne pour calculer la similarité. Le prétraitement des données garantit que les fonctions du modèle restent à la même échelle et produisent des résultats fiables.

HYPERPARAMETERS DEFAULT EXCEPT ( K ’val’ [, ...] )

Spécifie si les paramètres K-Means sont utilisés. Vous devez spécifier le paramètre K lors de l’utilisation de l’algorithme K-Means. Pour plus d'informations, consultez K-Means Hyperparameters dans le manuel Amazon SageMaker AI Developer Guide

L’exemple suivant prépare des données pour K-Means.

CREATE MODEL customers_clusters FROM customers FUNCTION customers_cluster IAM_ROLE default AUTO OFF MODEL_TYPE KMEANS PREPROCESSORS '[ { "ColumnSet": [ "*" ], "Transformers": [ "NumericPassthrough" ] } ]' HYPERPARAMETERS DEFAULT EXCEPT ( K '5' ) SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket'); select customer_id, customers_cluster(...) from customers; customer_id | customers_cluster -------------------- 12345 1 12346 2 12347 4 12348

CREATE MODEL avec Forecast

Les modèles de prévisions de Redshift ML utilisent Amazon Forecast pour créer des prévisions chronologiques précises. Cela vous permet d’utiliser des données historiques sur une période donnée pour faire des prédictions sur des événements futurs. Les cas d’utilisation courants d’Amazon Forecast incluent l’utilisation des données sur les produits vendus au détail pour déterminer le prix des stocks, les données de quantité de fabrication pour prédire la quantité à commander d’un article et les données de trafic Web pour prévoir le volume de trafic qu’un serveur Web est susceptible de recevoir.

Les limites de quota d’Amazon Forecast sont appliquées dans les modèles de prévisions Amazon Redshift. Par exemple, le nombre maximum de prévisions est de 100, mais il est ajustable. La suppression d’un modèle de prévision ne supprime pas automatiquement les ressources associées dans Amazon Forecast. Si vous supprimez un cluster Redshift, tous les modèles associés sont également supprimés.

Notez que les modèles de prévisions ne sont actuellement disponibles que dans les régions suivantes :

  • USA Est (Ohio) (us-east-2)

  • USA Est (Virginie du Nord) (us-east-1)

  • USA Ouest (Oregon) (us-west-2)

  • Asie-Pacifique (Mumbai) (ap-south-1)

  • Asie-Pacifique (Séoul) (ap-northeast-2)

  • Asie-Pacifique (Singapour) (ap-southeast-1)

  • Asie-Pacifique (Sydney) (ap-southeast-2)

  • Asie-Pacifique (Tokyo) (ap-northeast-1)

  • Europe (Francfort) (eu-central-1)

  • Europe (Irlande) (eu-west-1)

CREATE MODEL avec une syntaxe Forecast

CREATE [ OR REPLACE ] MODEL forecast_model_name FROM { table_name | ( select_query ) } TARGET column_name IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'} AUTO ON MODEL_TYPE FORECAST SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', HORIZON integer, FREQUENCY forecast_frequency [PERCENTILES '0.1', '0.5', '0.9'] )

CREATE MODEL avec des paramètres Forecast

forecast_model_name

Nom du modèle. Le nom du modèle doit être unique.

FROM { table_name | ( select_query ) }

Le table_name ou la requête qui spécifie les données d’entraînement. Il peut s’agir d’une table existante dans le système ou d’une requête SELECT compatible avec Amazon RedShift, placée entre parenthèses. Le résultat de la table ou de la requête doit comporter au moins trois colonnes : (1) une colonne varchar qui indique le nom de la série chronologique. Chaque jeu de données peut comporter plusieurs séries chronologiques ; (2) une colonne date/heure ; et (3) la colonne cible pour les prévisions. Cette colonne cible doit être un nombre entier ou à virgule flottante. Si vous fournissez un jeu de données comportant plus de trois colonnes, Amazon Redshift part du principe que toutes les colonnes supplémentaires font partie d’une série chronologique associée. Notez que les séries chronologiques associées doivent être de type nombre entier ou à virgule flottante. Pour plus d’informations sur les séries chronologiques associées, consultez Utilisation de jeux de données de séries chronologiques associés.

TARGET column_name

Nom de la colonne qui devient la cible de la prédiction. La colonne doit exister dans la clause FROM.

IAM_ROLE { default | ’arn:aws:iam::<account-id>:role/<role-name>’ }

Utilisez le mot clé par défaut pour qu’Amazon Redshift utilise le rôle IAM défini comme rôle par défaut et associé au cluster lorsque la commande CREATE MODEL s’exécute. Vous pouvez également spécifier l’ARN d’un rôle IAM pour utiliser ce rôle.

AUTO ON

Active la détection automatique CREATE MODEL de l’algorithme et de la sélection d’hyperparamètres. Si vous spécifiez « on » lors de la création d'un modèle de prévision AutoPredictor, vous devez utiliser un modèle Forecast, dans lequel Amazon Forecast applique les combinaisons optimales d'algorithmes à chaque série chronologique de votre ensemble de données.

MODEL_TYPE FORECAST

Permet de spécifier l’utilisation de FORECAST pour entraîner le modèle.

S3_BUCKET 'amzn-s3-demo-bucket'

Nom du compartiment Amazon Simple Storage Service que vous avez créé précédemment et qui est utilisé pour partager des données d’entraînement et des artefacts entre Amazon Redshift et Amazon Forecast. Amazon Redshift crée un sous-dossier dans ce compartiment avant de décharger les données d’entraînement. Lorsque l’entraînement est terminé, Amazon Redshift supprime le sous-dossier créé et son contenu.

Entier HORIZON

Le nombre maximum de prédictions que le modèle de prévision peut renvoyer. Une fois le modèle entraîné, vous ne pouvez pas modifier cet entier.

FREQUENCY forecast_frequency

Indique le degré de granularité que vous souhaitez pour les prévisions. Les options disponibles sont Y | M | W | D | H | 30min | 15min | 10min | 5min | 1min. Obligatoire si vous entraînez un modèle de prévision.

Chaîne PERCENTILES

Une chaîne délimitée par des virgules qui spécifie les types de prévisions utilisés pour entraîner un prédicteur. Les types de prévisions peuvent être des quantiles compris entre 0,01 et 0,99, par incréments de 0,01 ou plus. Vous pouvez également spécifier la prévision moyenne à l’aide de la moyenne. Vous pouvez spécifier un maximum de cinq types de prévisions.

L’exemple suivant montre comment créer un modèle de prévision simple.

CREATE MODEL forecast_example FROM forecast_electricity_ TARGET target IAM_ROLE 'arn:aws:iam::<account-id>:role/<role-name>' AUTO ON MODEL_TYPE FORECAST SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket', HORIZON 24, FREQUENCY 'H', PERCENTILES '0.25,0.50,0.75,mean', S3_GARBAGE_COLLECT OFF);

Après avoir créé le modèle de prévision, vous pouvez créer une nouvelle table contenant les données de prédiction.

CREATE TABLE forecast_model_results as SELECT Forecast(forecast_example)

Vous pouvez ensuite interroger la nouvelle table pour obtenir des prédictions.

SELECT * FROM forecast_model_results