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 l'CREATEMODELutiliser en fonction de vos besoins.

Simple CREATE MODEL

Les options de base de la CREATE MODEL syntaxe sont résumées ci-dessous.

CREATEMODELSyntaxe 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 ] )

CREATEMODELParamètres simples

model_name

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

FROM{nom_table | (requête_sélection)}

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 SELECT requête compatible avec Amazon Redshift entre parenthèses, c'est-à-dire (). Le résultat de la requête doit contenir au moins deux colonnes.

TARGETnom_colonne

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

FUNCTIONnom_fonction_prédictif

Valeur qui spécifie le nom de la fonction d'apprentissage automatique Amazon Redshift à générer par le CREATE MODEL et à utiliser pour établir 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<account-id><role-name>_ ROLE {par défaut | 'arn:aws:iam : :role/ '}

Utilisez le mot clé par défaut pour qu'Amazon Redshift utilise le IAM rôle défini par défaut et associé au cluster lors de l'exécution de la CREAT MODEL commande. Vous pouvez également spécifier ARN le IAM rôle à utiliser.

S3_ BUCKET 'amzn-s3-demo-bucket'

Nom du compartiment Amazon S3 que vous avez créé précédemment et utilisé pour partager des données d'entraînement et des artefacts entre Amazon Redshift et. SageMaker 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 entier

Le nombre maximum de cellules à exporter depuis la FROM clause. La valeur par défaut est 1 000 000.

Le nombre de cellules est le produit du nombre de lignes des données d'apprentissage (produites par la table de FROM clauses ou la requête) 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 sous-échantillonne les données d'entraînement de la FROM clause afin de réduire la taille de l'ensemble d'apprentissage en dessous de _. 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.

CREATEMODELavec guide de l'utilisateur

Vous trouverez ci-dessous une description des options pour, CREATE MODEL en plus des options décrites dansSimple CREATE MODEL.

Par défaut, CREATE MODEL recherche la meilleure combinaison de prétraitement et de 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 A utoMLJob Objective dans le Amazon SageMaker API Reference.

Suivent CREATE MODEL ensuite vos suggestions sur les aspects spécifiques, tels que l'objectif. Dans le même temps, il découvre CREATE MODEL automatiquement les meilleurs préprocesseurs et les meilleurs hyperparamètres.

CREATEMODELavec syntaxe de guidage utilisateur

CREATEMODELoffre plus de flexibilité sur les aspects que vous pouvez spécifier et sur les aspects qu'Amazon Redshift découvre 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 (, ...) )

CREATEMODELavec paramètres de guidage 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, tel que XGBoost le perceptron multicouche (MLP) ou le Linear Learner, qui sont tous des algorithmes pris en charge par Amazon SageMaker 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' | 'Précision' | '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 de manière explicite, le comportement par défaut est d'utiliser automatiquement MSE : pour la régression, F1 : pour la classification binaire, Exactitude : pour la classification multiclasse. Pour plus d'informations sur les objectifs, consultez A utoMLJob Objective in the Amazon SageMaker API Reference.

MAX_ CELLS entier

(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 entier

(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 {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 cette valeur est définie surOFF, les ensembles de données résultants utilisés pour entraîner les modèles 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 Secure Sockets Layer (SSL).

PREPROCESSORS« chaîne »

(Facultatif) Spécifie certaines combinaisons de préprocesseurs à certains ensembles de colonnes. Le format est une liste de columnSets colonnes 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 d'apprentissage automatique, tels que MLP 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 de plus petite dimension afin de réduire le nombre de fonctionnalités tout en conservant le plus d'informations 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.

CREATEXGBoostmodèles avec AUTO OFF

Les AUTO OFF CREATE MODEL objectifs sont généralement différents de ceux par défaut CREATEMODEL.

En tant qu'utilisateur expérimenté qui connaît déjà le type de modèle que vous souhaitez utiliser et les hyperparamètres à utiliser lors de l'entraînement de ces modèles, vous pouvez utiliser CREATE MODEL with AUTO OFF pour désactiver la découverte CREATE MODEL automatique des préprocesseurs et des hyperparamètres. Pour ce faire, vous spécifiez explicitement le type de modèle. XGBoostest actuellement le seul type de modèle pris en charge lorsqu'il AUTO est défini surOFF. 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.

CREATEXGBoostmodèles avec AUTO OFF syntaxe

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 (, ...) )

CREATEXGBoostmodèles avec AUTO OFF paramètres

AUTO OFF

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

MODEL_TYPE XGBOOST

Spécifie à utiliser XGBOOST pour entraîner le modèle.

OBJECTIVEstr

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 (clé 'valeur' (,..))}

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 pourXGBoost.

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 _ TYPEOBJECTIVE, etPREPROCESSORS.

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;

Apportez votre propre modèle (BYOM) - inférence locale

Amazon Redshift ML prend en charge l'utilisation de bring your own model (BYOM) pour l'inférence locale.

Ce qui suit récapitule les options de CREATE MODEL syntaxe pourBYOM. Vous pouvez utiliser un modèle formé en dehors d'Amazon Redshift avec Amazon SageMaker pour l'inférence dans la base de données localement dans Amazon Redshift.

CREATEMODELsyntaxe pour l'inférence locale

Ce qui suit décrit la CREATE MODEL syntaxe de 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 et Linear Learner pour. MLP BYOM Vous pouvez importer le SageMaker pilote automatique et les modèles directement entraînés sur Amazon à des SageMaker fins d'inférence locale en utilisant ce chemin.

CREATEMODELparamètres pour l'inférence locale

model_name

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

FROM(« nom_tâche » | « s3_path »)

Le job_name utilise un nom de SageMaker tâche Amazon comme entrée. Le nom de la tâche peut être un nom de tâche Amazon SageMaker Training ou un nom de tâche Amazon SageMaker 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 de la tâche, lancez Amazon SageMaker. 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.

FUNCTIONnom_fonction (type de données [,...])

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.

RETURNStype_données

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

IAM<account-id><role-name>_ ROLE {par défaut | 'arn:aws:iam : :role/ '}

Utilisez le mot clé par défaut pour qu'Amazon Redshift utilise le IAM rôle défini par défaut et associé au cluster lors de l'exécution de la CREATE MODEL commande.

Utilisez le nom de ressource Amazon (ARN) pour un IAM rôle utilisé par votre cluster pour l'authentification et l'autorisation.

SETTINGS(S3_ BUCKET « amzn-s3-demo-bucket », | _ _ID « kms_string ») KMS KEY

La BUCKET clause S3_ indique 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 AWS KMS une clé pour protéger les données au repos. Les données en transit sont protégées par le protocole Secure Sockets Layer (SSL).

Pour de plus amples informations, veuillez consulter CREATEMODELavec guide de l'utilisateur.

CREATEMODELpour un exemple d'inférence locale

L'exemple suivant crée un modèle qui a déjà été formé sur Amazon SageMaker, en dehors d'Amazon Redshift. Le type de modèle étant pris en charge par Amazon Redshift ML pour l'inférence locale, ce qui suit CREATE MODEL crée une fonction qui peut être utilisée localement dans Amazon Redshift. Vous pouvez fournir un nom SageMaker de poste de formation.

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.

Apportez votre propre modèle (BYOM) - inférence à distance

Amazon Redshift ML prend également en charge l'utilisation de bring your own model (BYOM) pour l'inférence à distance.

Ce qui suit récapitule les options de CREATE MODEL syntaxe pourBYOM.

CREATEMODELsyntaxe pour l'inférence à distance

La CREATE MODEL syntaxe de l'inférence à distance est décrite ci-dessous.

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)];

CREATEMODELparamètres pour l'inférence à distance

model_name

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

FUNCTIONfn_name ([type de données] [,...])

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.

RETURNStype_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' [: 'nom_modèle']

Le nom du point de SageMaker terminaison Amazon. 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 que le cluster Amazon Redshift. Pour trouver votre point de terminaison, lancez Amazon SageMaker. Dans le menu déroulant Inference (Inférence), choisissez Endpoints (Points de terminaison).

IAM<account-id><role-name>_ ROLE {par défaut | 'arn:aws:iam : :role/ '}

Utilisez le mot clé par défaut pour qu'Amazon Redshift utilise le IAM rôle défini par défaut et associé au cluster lors de l'exécution de la CREATE MODEL commande. Vous pouvez également spécifier ARN le IAM rôle à utiliser.

MAX_ BATCH _ ROWS entier

Le nombre maximum de lignes qu'Amazon Redshift envoie dans une seule demande par lot pour un seul SageMaker appel. Il n'est pris en charge que pour BYOM l'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 est obligatoire uniquement lorsque les types de données en entrée et en sortie le sontSUPER. La valeur par défaut est INT_MAX 2 147 483 647.

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

CREATEMODELpour les notes d'utilisation de l'inférence à distance

Avant de l'utiliser CREATE MODEL pour l'inférence à distance, tenez compte des points 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 SageMaker terminaison Amazon 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 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 text/CSV contenu in. SageMaker

  • 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 in. 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 obligatoire lorsque les types de données en entrée et en sortie le sontSUPER.

  • Lorsque le type de données d'entrée est SUPER le type de contenu du point de terminaison, l'invocation est soit application/json lorsque MAX _ BATCH _ ROWS est, 1 soit application/jsonlines dans tous les autres cas.

  • 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 _ l'ROWSest, 1 soit application/jsonlines dans tous les autres cas.

CREATEMODELpour un exemple d'inférence à distance

L'exemple suivant crée un modèle qui utilise un SageMaker point de terminaison 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 CREATE MODEL commande.

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 une inférence à distance BYOM avec un modèle de langage de grande taille (LLM). LLMshébergés sur Amazon SageMaker Jumpstart, ils acceptent et renvoient le type de application/json contenu et n'acceptent qu'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);

CREATEMODELavec 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.

CREATEMODELavec MEANS syntaxe K-

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);

CREATEMODELavec MEANS paramètres K

AUTO OFF

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

MODEL_TYPE KMEANS

Spécifie à utiliser KMEANS pour entraîner le modèle.

PREPROCESSORS« chaîne »

Spécifie certaines combinaisons de préprocesseurs à certains ensembles de colonnes. Le format est une liste de columnSets colonnes 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 CREATEMODELavec paramètres de guidage 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.

HYPERPARAMETERSDEFAULTEXCEPT(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 Developer Guide SageMaker

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

CREATEMODELavec 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)

CREATEMODELavec 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'] )

CREATEMODELavec les paramètres Forecast

forecast_model_name

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

FROM{nom_table | (requête_sélection)}

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 SELECT requête compatible avec Amazon Redshift 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.

TARGETnom_colonne

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

IAM<account-id><role-name>_ ROLE {par défaut | 'arn:aws:iam : :role/ '}

Utilisez le mot clé par défaut pour qu'Amazon Redshift utilise le IAM rôle défini par défaut et associé au cluster lors de l'exécution de la CREAT MODEL commande. Vous pouvez également spécifier un ARN IAM rôle pour utiliser ce rôle.

AUTOSUR

Active la découverte CREATE MODEL automatique de l'algorithme et de la sélection des 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

Spécifie à utiliser 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.

HORIZONentier

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.

FREQUENCYfréquence_prévision

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.

PERCENTILESficelle

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