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à.
Casi d'uso
I seguenti casi d'uso dimostrano come utilizzare CREATE MODEL in base alle proprie esigenze.
CREATE MODEL semplice
Di seguito viene riportato un riepilogo delle opzioni di base della sintassi di CREATE MODEL.
Sintassi di CREATE MODEL semplice
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 ] )
Parametri di CREATE MODEL semplice
- model_name
-
Il nome del modello. Il nome del modello in uno schema deve essere unico.
- FROM { nome_tabella | ( query_select ) }
-
Il nome_tabella o la query che specifica i dati di addestramento. Possono essere una tabella esistente nel sistema o una query SELECT compatibile con Amazon Redshift racchiusa tra parentesi, ovvero (). Il risultato della query deve contenere almeno due colonne.
- TARGET nome_colonna
-
Il nome della colonna che diventa la destinazione della previsione. La colonna deve esistere nella clausola FROM.
- FUNCTION nome_funzione_previsione
-
Un valore che specifica il nome della funzione di machine learning di Amazon Redshift che deve essere generata da CREATE MODEL e utilizzata per effettuare previsioni utilizzando questo modello. La funzione viene creata nello stesso schema dell'oggetto modello e può essere sovraccaricata.
L'apprendimento automatico di Amazon Redshift supporta modelli come i modelli Xtreme Gradient Boosted tree () XGBoost per la regressione e la classificazione.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' }
-
Utilizzare la parola chiave predefinita per fare in modo che Amazon Redshift utilizzi il ruolo IAM impostato come predefinito e associato al cluster quando viene eseguito il comando CREAT MODEL. In alternativa, è possibile specificare l'ARN di un ruolo IAM per utilizzare quel ruolo.
- S3_BUCKET 'amzn-s3-demo-bucket'
-
Il nome del bucket Amazon S3 creato in precedenza è stato utilizzato per condividere dati e artefatti di addestramento tra Amazon Redshift e AI. SageMaker Amazon Redshift crea una sottocartella in questo bucket prima di scaricare i dati di addestramento. Una volta completato l'addestramento, Amazon Redshift elimina la sottocartella creata e il relativo contenuto.
- MAX_CELLS integer
-
Il numero massimo di celle da esportare dalla clausola FROM. Il valore di default è 1.000.000.
Il numero di celle è il prodotto del numero di righe nei dati di addestramento (prodotti dalla tabella o dalla query della clausola FROM) moltiplicato per il numero di colonne. Se il numero di celle nei dati di addestramento è superiore a quello specificato dal parametro max_cells, CREATE MODEL sottocampiona i dati di addestramento della clausola FROM per ridurre le dimensioni del set di addestramento sotto MAX_CELLS. Consentire set di dati di addestramento più grandi può produrre una maggiore precisione, ma può anche significare che il modello richiede più tempo e costa di più.
Per ulteriori informazioni sui costi di utilizzo di Amazon Redshift, consultare Costi per l'utilizzo di Amazon Redshift ML.
Per ulteriori informazioni sui costi associati a vari numeri di cellulare e i dettagli della versione di prova gratuita, consultare Prezzi di Amazon Redshift
.
CREATE MODEL con guida per l'utente
Di seguito, è possibile trovare una descrizione delle opzioni per CREATE MODEL in aggiunta alle opzioni descritte in CREATE MODEL semplice.
Per impostazione predefinita, CREATE MODEL cerca la migliore combinazione di preelaborazione e modello per il set di dati specifico. Potrebbe essere necessario un controllo aggiuntivo o introdurre ulteriori informazioni sul dominio (ad esempio il tipo di problema o l'obiettivo) sul modello. In uno scenario di abbandono del cliente, se il risultato "il cliente non è attivo" è raro, l'obiettivo F1 è spesso preferito all'obiettivo Precisione. Poiché i modelli ad alta precisione potrebbero prevedere "il cliente è attivo" per tutto il tempo, ciò si traduce in un'elevata precisione ma poco valore aziendale. Per informazioni sull'obiettivo F1, consulta Auto MLJob Objective nel riferimento dell'API Amazon SageMaker AI.
Quindi il CREATE MODEL segue i suggerimenti sugli aspetti specificati, come l'obiettivo. Allo stesso tempo, CREATE MODEL rileva automaticamente i migliori preprocessori e i migliori iperparametri.
Sintassi di CREATE MODEL con guida per l'utente
CREATE MODEL offre una maggiore flessibilità sugli aspetti che è possibile specificare e sugli aspetti che Amazon Redshift rileva automaticamente.
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 (, ...) )
Parametri di CREATE MODEL con guida per l'utente
- MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER }
-
(Facoltativo) Specifica il tipo di modello. Puoi specificare se desideri addestrare un modello di un tipo specifico XGBoost, come Multilayer Perceptron (MLP) o Linear Learner, che sono tutti algoritmi supportati da Amazon AI Autopilot. SageMaker Se non si specifica il parametro, durante l'addestramento vengono ricercati tutti i tipi di modello supportati per trovare il modello migliore.
- PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION )
-
(Facoltativo) Specifica il tipo di problema. Se si conosce il tipo di problema, è possibile limitare Amazon Redshift alla ricerca solo del modello migliore di quel tipo di modello specifico. Se non si specifica questo parametro, durante l'addestramento viene rilevato un tipo di problema in base ai dati.
- OBIETTIVO ('MSE' | 'Precisione' | 'F1' | 'F1Macro' | 'AUC')
-
(Facoltativo) Specifica il nome del parametro dell'obiettivo utilizzato per misurare la qualità predittiva di un sistema di machine learning. Questo parametro è ottimizzato durante l'addestramento per fornire la migliore stima per i valori dei parametri del modello dai dati. Se non si specifica esplicitamente un parametro, il comportamento di default consiste nell'utilizzare automaticamente MSE: per la regressione, F1: per la classificazione binaria, Accuracy: per la classificazione multiclass. Per ulteriori informazioni sugli obiettivi, consulta Auto MLJob Objective nell'Amazon SageMaker AI API Reference.
- MAX_CELLS integer
-
(Facoltativo) Specifica il numero di celle nei dati di addestramento. Questo valore è il prodotto del numero di record (nella query di addestramento o nella tabella) moltiplicato per il numero di colonne. Il valore di default è 1.000.000.
- MAX_RUNTIME integer
-
(Facoltativo) Specifica la durata massima dell'addestramento. I processi di addestramento spesso vengono completati prima di questo valore, a seconda delle dimensioni del set di dati. Specifica la durata massima dell'addestramento. Il valore di default è 5.400 (90 minuti).
- S3_GARBAGE_COLLECT { ON | OFF }
-
(Facoltativo) Specifica se Amazon Redshift esegue la garbage collection sui set di dati risultanti utilizzati per addestrare i modelli e i modelli stessi. Se impostato su OFF, i set di dati risultanti utilizzati per addestrare i modelli e i modelli stessi rimangono in Amazon S3 e possono essere utilizzati per altri scopi. Se impostato su ON, Amazon Redshift elimina gli artefatti in Amazon S3 al termine dell'addestramento. Il valore di default è ON.
- KMS_KEY_ID 'kms_key_id'
-
(Facoltativo) Specifica se Amazon Redshift utilizza la crittografia lato server con una chiave AWS KMS per proteggere i dati a riposo. I dati in transito sono protetti con Secure Sockets Layer (SSL).
- PREPROCESSORS 'string'
-
(Facoltativo) Specifica alcune combinazioni di preprocessori per determinati set di colonne. Il formato è un elenco di columnSets e le trasformazioni appropriate da applicare a ciascun set di colonne. Amazon Redshift applica tutti i trasformatori di uno specifico elenco di trasformatori a tutte le colonne dell'elenco corrispondente. ColumnSet Ad esempio, per applicare OneHotEncoder con Imputer alle colonne t1 e t2, usa il comando di esempio seguente.
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 supporta i seguenti trasformatori:
-
OneHotEncoder — In genere viene utilizzato per codificare un valore discreto in un vettore binario con un valore diverso da zero. Questo trasformatore è adatto per numerosi modelli di machine learning.
-
OrdinalEncoder — Codifica i valori discreti in un unico numero intero. Questo trasformatore è adatto per modelli di machine learning specifici, come MLP e Linear Learner.
-
NumericPassthrough — Trasmette l'input così com'è nel modello.
-
Imputer: riempie i valori mancanti e non i valori numerici (NaN).
-
ImputerWithIndicator — Compila i valori mancanti e i valori NaN. Questo trasformatore crea anche un indicatore di eventuali valori mancanti e compilati.
-
Normalizzatore: normalizza i valori, il che può migliorare le prestazioni di molti algoritmi di machine learning.
-
DateTimeVectorizer — Crea un incorporamento vettoriale, che rappresenta una colonna di tipo di dati datetime che può essere utilizzata nei modelli di machine learning.
-
PCA: proietta i dati in uno spazio dimensionale inferiore per ridurre il numero di funzioni mantenendo al contempo il maggior numero di informazioni possibile.
-
StandardScaler — Standardizza le funzionalità rimuovendo la media e scalando alla varianza unitaria.
-
MinMax — Trasforma le funzionalità ridimensionando ciascuna funzionalità in base a un determinato intervallo.
Amazon Redshift ML memorizza i trasformatori addestrati e li applica automaticamente come parte della query di previsione. Non è necessario specificarli quando si generano le previsioni dal modello.
CREA XGBoost modelli con AUTO OFF
L'AUTO OFF CREATE MODEL ha generalmente obiettivi diversi da quelli di default CREATE MODEL.
In qualità di utente avanzato che conosce già il tipo di modello desiderato e gli iperparametri da utilizzare durante l'addestramento di questi modelli, è possibile utilizzare CREATE MODEL con l'opzione AUTO OFF per disattivare il rilevamento automatico CREATE MODEL di preprocessori e iperparametri. A tale scopo, specificate esplicitamente il tipo di modello. XGBoost è attualmente l'unico tipo di modello supportato quando AUTO è impostato su OFF. È possibile specificare iperparametri. Amazon Redshift utilizza i valori predefiniti per tutti gli iperparametri specificati.
CREATE XGBoost modelli con la sintassi 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 (, ...) )
CREA XGBoost modelli con parametri AUTO OFF
- AUTO OFF
-
Disattiva il rilevamento automatico CREATE MODEL della selezione di preprocessore, algoritmo e iperparametri.
- MODEL_TYPE XGBOOST
-
Specifica di utilizzare XGBOOST per addestrare il modello.
- OBJECTIVE str
-
Specifica un obiettivo riconosciuto dall'algoritmo. Amazon Redshift supporta reg:squarederror, reg:squaredlogerror, reg:logistic, reg:pseudohubererror, reg:tweedie, binary:logistic, binary:cerniera, multi:softmax. Per ulteriori informazioni su questi obiettivi, consulta la sezione Parametri delle attività di apprendimento
nella XGBoost documentazione. - HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( key ‘value' (,..) ) }
-
Speciifica se i XGBoost parametri predefiniti vengono utilizzati o sostituiti dai valori specificati dall'utente. I valori devono essere racchiusi tra virgolette singole. Di seguito sono riportati alcuni esempi di parametri e relativi valori predefiniti. XGBoost
Nome del parametro Valore del parametro Valore predefinito Note num_class
Numero intero Necessario per la classificazione multiclass.
N/D num_round
Numero intero 100
N/D tree_method
Stringa Auto (Automatico) N/D max_depth
Numero intero 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 (alfa) 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 Numero intero 0 [0, 10]
L'esempio seguente prepara i dati per 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'esempio seguente crea un XGBoost modello con opzioni avanzate specificate, come MODEL_TYPE, OBJECTIVE e 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');
Nell'esempio seguente viene utilizzata una query di inferenza per prevedere l'età del pesce con un numero di record maggiore di 2500. Utilizza la funzione ml_fn_abalone_xgboost_multi_predict_age creata dal comando precedente.
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;
Bring your own model (BYOM) - inferenza locale
Amazon Redshift ML supporta l'utilizzo dell'approccio bring your own model (BYOM) nell'inferenza locale.
Di seguito viene riportato un riepilogo delle opzioni per la sintassi di CREATE MODEL per BYOM. Puoi utilizzare un modello addestrato all'esterno di Amazon Redshift con Amazon SageMaker AI per l'inferenza nel database a livello locale in Amazon Redshift.
Sintassi di CREATE MODEL per l'inferenza locale
Di seguito viene descritta la sintassi CREATE MODEL per l'inferenza 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 attualmente supporta solo modelli pre-addestrati XGBoost, MLP e Linear Learner per BYOM. Puoi importare SageMaker AI Autopilot e modelli addestrati direttamente in Amazon SageMaker AI per l'inferenza locale utilizzando questo percorso.
Parametri di CREATE MODEL per l'inferenza locale
- model_name
-
Il nome del modello. Il nome del modello in uno schema deve essere unico.
- FROM ('nome_processo' | 'percorso_s3' )
-
Il job_name utilizza un nome di lavoro Amazon SageMaker AI come input. Il nome del lavoro può essere il nome di un processo di formazione Amazon SageMaker AI o un nome di lavoro di Amazon SageMaker AI Autopilot. Il processo deve essere creato nello stesso account AWS proprietario del cluster Amazon Redshift. Per trovare il nome del lavoro, avvia Amazon SageMaker AI. Nel menu a discesa Training (Addestramento), scegliere Training jobs (Processi di addestramento).
'percorso_s3' specifica la posizione S3 del file di artefatti del modello .tar.gz da utilizzare durante la creazione del modello.
- FUNCTION nome_funzione ( tipo_dati [, ...] )
-
Il nome della funzione da creare e i tipi di dati degli argomenti di input. È possibile fornire un nome dello schema.
- RETURNS data_type
-
Il tipo di dati del valore restituito dalla funzione.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}
-
Utilizzare la parola chiave predefinita per fare in modo che Amazon Redshift utilizzi il ruolo IAM impostato come predefinito e associato al cluster quando viene eseguito il comando CREATE MODEL.
L'Amazon Resource Name (ARN) per un ruolo IAM utilizzato dal cluster per l'autenticazione e l'autorizzazione.
- IMPOSTAZIONI (S3_BUCKET 'amzn-s3-demo-bucket', | KMS_KEY_ID 'kms_string')
-
La clausola S3_BUCKET specifica la posizione Amazon S3 utilizzata per archiviare i risultati intermedi.
(Facoltativo) La clausola KMS_KEY_ID specifica se Amazon Redshift utilizza la crittografia lato server con una chiave per proteggere i dati inattivi. AWS KMS I dati in transito sono protetti con Secure Sockets Layer (SSL).
Per ulteriori informazioni, consulta CREATE MODEL con guida per l'utente.
Esempio di CREATE MODEL per l'inferenza locale
L'esempio seguente crea un modello che è stato precedentemente addestrato in Amazon SageMaker AI, al di fuori di Amazon Redshift. Poiché il tipo di modello è supportato da Amazon Redshift ML per l'inferenza locale, il seguente CREATE MODEL crea una funzione che può essere utilizzata in locale in Amazon Redshift. Puoi fornire il nome di un lavoro di formazione sull' SageMaker intelligenza artificiale.
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');
Dopo aver creato il modello, è possibile utilizzare la funzione customer_churn_predict con i tipi di argomenti specificati per effettuare le previsioni.
Bring your own model (BYOM) - inferenza remota
Amazon Redshift ML supporta anche l'utilizzo dell'approccio bring your own model (BYOM) per l'inferenza remota.
Di seguito viene riportato un riepilogo delle opzioni per la sintassi di CREATE MODEL per BYOM.
Sintassi di CREATE MODEL per l'inferenza remota
Di seguito viene descritta la sintassi di CREATE MODEL per l'inferenza remota.
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)];
Parametri di CREATE MODEL per l'inferenza remota
- model_name
-
Il nome del modello. Il nome del modello in uno schema deve essere unico.
- FUNCTION nome_fn ( [tipo_dati] [, ...] )
-
Il nome della funzione e i tipi di dati degli argomenti di input. Consulta Tipi di dati per l'elenco di tutti i tipi di dati supportati.
Geography
,geometry
ehllsketch
non sono supportati.Puoi anche fornire un nome di funzione all'interno di uno schema utilizzando una notazione in due parti, ad esempio.
myschema.myfunction
- RETURNS data_type
-
Il tipo di dati del valore restituito dalla funzione. Consulta Tipi di dati per l'elenco di tutti i tipi di dati supportati.
Geography
,geometry
ehllsketch
non sono supportati. - SAGEMAKER 'nome_endpoint'[:'nome_modello']
-
Il nome dell'endpoint Amazon SageMaker AI. Se il nome dell'endpoint punta a un endpoint multimodello, aggiungere il nome del modello da utilizzare. L'endpoint deve essere ospitato nella stessa AWS regione e nel Account AWS cluster Amazon Redshift. Per trovare il tuo endpoint, avvia Amazon SageMaker AI. Nel menu a discesa Inference (Inferenza), scegliere Endpoints (Endpoint).
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}
-
Utilizzare la parola chiave predefinita per fare in modo che Amazon Redshift utilizzi il ruolo IAM impostato come predefinito e associato al cluster quando viene eseguito il comando CREATE MODEL. In alternativa, è possibile specificare l'ARN di un ruolo IAM per utilizzare quel ruolo.
- Numero intero MAX_BATCH_ROWS
-
Il numero massimo di righe che Amazon Redshift invia in una singola richiesta batch per una singola chiamata SageMaker AI. È supportato solo per BYOM con inferenza remota. Il numero effettivo di righe in un batch dipende anche dalla dimensione di input, ma è inferiore o uguale a questo valore. Il valore minimo per questo parametro è 1. Il valore massimo è
INT_MAX
, ovvero 2.147.483.647. Questo parametro è obbligatorio solo quando entrambi i tipi di dati di input e restituiti lo sono.SUPER
Il valore predefinito èINT_MAX
, o 2.147.483.647.
Quando il modello viene distribuito su un endpoint di SageMaker intelligenza artificiale, l' SageMaker intelligenza artificiale crea le informazioni del modello in Amazon Redshift. Esegue quindi l'inferenza attraverso la funzione esterna. È possibile utilizzare il comando SHOW MODEL per visualizzare le informazioni sul modello sul cluster Amazon Redshift.
Note di utilizzo di CREATE MODEL per l'inferenza remota
Prima di utilizzare CREATE MODEL per l'inferenza remota, considerare quanto segue:
-
L'endpoint deve essere ospitato dallo stesso AWS account proprietario del cluster Amazon Redshift.
-
Assicurati che l'endpoint Amazon SageMaker AI disponga di risorse sufficienti per accogliere le chiamate di inferenza da Amazon Redshift o che l'endpoint SageMaker Amazon AI possa essere ridimensionato automaticamente.
-
Se non utilizzi il tipo di
SUPER
dati come input, il modello accetta solo input nel formato di valori separati da virgole (CSV) che corrisponde a un tipo di contenuto dell'IA.text/CSV
SageMaker -
Se non utilizzi il tipo di
SUPER
dati come input, l'output dei modelli è un singolo valore del tipo specificato al momento della creazione della funzione. L'output è in formato di valori separati da virgole (CSV) tramite un tipo di contenuto di AI.text/CSV
SageMakerVARCHAR
i tipi di dati non possono essere racchiusi tra virgolette e non possono contenere nuove righe e ogni output deve essere racchiuso in una nuova riga. -
I modelli accettano valori null come stringhe vuote.
-
Quando il tipo di dati di input è
SUPER
, è supportato solo un argomento di input. -
Se il tipo di dati di input è
SUPER
, deve esserlo anche il tipo di dati restituitoSUPER
. -
MAX_BATCH_ROWS è obbligatorio quando sia i tipi di dati di input che quelli restituiti sono SUPER.
-
Quando il tipo di dati di input è il tipo di contenuto
SUPER
dell'endpoint, l'invocazione èapplication/json
quando MAX_BATCH_ROWS lo è o in tutti gli altri casi.1
application/jsonlines
-
Quando il tipo di dati restituito è il tipo di accettazione
SUPER
dell'endpoint, l'invocazione avviene quando MAX_BATCH_ROWS lo è o in tutti gli altri casi.application/json
1
application/jsonlines
Esempio di CREATE MODEL per l'inferenza remota
L'esempio seguente crea un modello che utilizza un endpoint AI per fare previsioni. SageMaker Assicurarsi che l'endpoint sia in esecuzione per effettuare previsioni e specificarne il nome nel comando 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'esempio seguente crea un BYOM con inferenza remota con un modello di modello linguistico di grandi dimensioni (LLM). LLMs ospitati su Amazon SageMaker AI Jumpstart accettano e restituiscono il tipo di application/json
contenuto e supportano un singolo JSON per chiamata. I tipi di dati di input e restituiti devono essere SUPER
e MAX_BATCH_ROWS deve essere impostato su 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);
CREA MODELLO con K-MEANS
Amazon Redshift supporta l'algoritmo K-Means che raggruppa i dati che non sono etichettati. Questo algoritmo risolve i problemi di clustering in cui si desidera individuare i raggruppamenti nei dati. I dati non classificati vengono raggruppati e ripartiti in base alle somiglianze e alle differenze.
CREA MODELLO con sintassi 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);
CREA MODELLO con i parametri K-MEANS
- AUTO OFF
-
Disattiva il rilevamento automatico CREATE MODEL della selezione di preprocessore, algoritmo e iperparametri.
- KMEANS MODEL_TYPE
-
Specifica di utilizzare XGBOOST per addestrare il modello.
- PREPROCESSORS 'string'
-
Specifica alcune combinazioni di preprocessori per determinati set di colonne. Il formato è un elenco di columnSets e le trasformazioni appropriate da applicare a ciascun set di colonne. Amazon Redshift supporta 3 preprocessori K-Means, vale a dire StandardScaler, e. MinMax NumericPassthrough Se non desideri applicare alcuna preelaborazione per K-Means, scegli NumericPassthrough esplicitamente come trasformatore. Per ulteriori informazioni sulla funzionalità di trasformazione delle proprietà, consultare Parametri di CREATE MODEL con guida per l'utente.
L'algoritmo K-Means utilizza la distanza eucliidea per calcolare la somiglianza. La preelaborazione dei dati garantisce che le caratteristiche del modello rimangano sulla stessa scala e producano risultati affidabili.
- HYPERPARAMETERS DEFAULT ECCETTO (K 'val' [,...])
-
Specifica se vengono utilizzati i parametri K-Means. È necessario specificare il parametro
K
quando usi l'algoritmo K-Means. Per ulteriori informazioni, consulta K-Means Hyperparameters nella Amazon SageMaker AI Developer Guide
L'esempio seguente prepara i dati per 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 with Forecast
I modelli di previsione in Redshift ML utilizzano Amazon Forecast per creare previsioni accurate di serie temporali. In questo modo puoi utilizzare i dati cronologici relativi a un periodo di tempo per fare previsioni su eventi futuri. I casi d'uso più comuni di Amazon Forecast includono l'utilizzo dei dati dei prodotti al dettaglio per decidere i prezzi dell'inventario, i dati sulla quantità di produzione per prevedere la quantità di un articolo da ordinare e i dati sul traffico Web per prevedere il traffico che potrebbe ricevere un server Web.
Quota limits from Amazon Forecast (Limiti di quota di Amazon Forecast) vengono applicati nei modelli di previsione di Amazon Redshift. Ad esempio, il numero massimo di previsioni è 100, ma è regolabile. L'eliminazione di un modello di previsione non elimina automaticamente le risorse associate in Amazon Forecast. Se elimini un cluster Redshift, vengono eliminati anche tutti i modelli associati.
Tieni presente che i modelli di previsione sono attualmente disponibili solo nelle seguenti regioni:
-
Stati Uniti orientali (Ohio) (us-east-2)
-
Stati Uniti orientali (Virginia settentrionale) (us-east-1)
-
Stati Uniti occidentali (Oregon) (us-west-2)
-
Asia Pacifico (Mumbai) (ap-south-1)
-
Asia Pacifico (Seoul) (ap-northeast-2)
-
Asia Pacifico (Singapore) (ap-southeast-1)
-
Asia Pacifico (Sydney) (ap-southeast-2)
-
Asia Pacifico (Tokyo) (ap-northeast-1)
-
Europa (Francoforte) (eu-central-1)
-
Europa (Irlanda) (eu-west-1)
CREATE MODEL con sintassi 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 con parametri Forecast
- forecast_model_name
-
Il nome del modello. Il nome del modello deve essere univoco.
- FROM { nome_tabella | ( query_select ) }
-
Il nome_tabella o la query che specifica i dati di addestramento. Può essere una tabella esistente nel sistema o una query SELECT compatibile con Amazon Redshift racchiusa tra parentesi. Il risultato della tabella o della query deve contenere almeno tre colonne: (1) una colonna varchar che specifica il nome della serie temporale. Ogni set di dati può avere più serie temporali, (2) una colonna data/ora e (3) la colonna di destinazione da prevedere. Questa colonna di destinazione deve essere di tipo int o float. Se fornisci un set di dati composto da più di tre colonne, Amazon Redshift presuppone che tutte le colonne aggiuntive facciano parte di una serie temporale correlata. Notare che le serie temporali correlate devono essere di tipo int o float. Per ulteriori informazioni sulle serie temporali correlate, consulta Using Related Time Series Datasets (Utilizzo di set di dati relativi alle serie temporali).
- TARGET nome_colonna
-
Il nome della colonna che diventa la destinazione della previsione. La colonna deve esistere nella clausola FROM.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' }
-
Utilizzare la parola chiave predefinita per fare in modo che Amazon Redshift utilizzi il ruolo IAM impostato come predefinito e associato al cluster quando viene eseguito il comando CREAT MODEL. In alternativa, è possibile specificare un ARN di un ruolo IAM per utilizzare quel ruolo.
- AUTO ON
-
Attiva il rilevamento automatico CREATE MODEL della selezione di algoritmo e iperparametri. Specificare on quando si crea un modello Forecast indica di utilizzare un Forecast AutoPredictor, in cui Amazon Forecast applica le combinazioni ottimali di algoritmi a ogni serie temporale del set di dati.
- MODEL_TYPE FORECAST
-
Specifica di utilizzare FORECAST per addestrare il modello.
- S3_BUCKET 'amzn-s3-demo-bucket'
-
Il nome del bucket Amazon Simple Storage Service creato in precedenza e utilizzato per condividere i dati di addestramento e gli artefatti tra Amazon Redshift e Amazon Forecast. Amazon Redshift crea una sottocartella in questo bucket prima di scaricare i dati di addestramento. Una volta completato l'addestramento, Amazon Redshift elimina la sottocartella creata e il relativo contenuto.
- HORIZON integer
-
Il numero massimo di previsioni che il modello di previsione può restituire. Una volta addestrato il modello, non è possibile modificare questo numero intero.
- FREQUENCY forecast_frequency
-
Specifica la granularità desiderata per le previsioni. Le opzioni disponibili sono
Y | M | W | D | H | 30min | 15min | 10min | 5min | 1min
. Obbligatorio se stai addestrando un modello di previsione. - Stringa PERCENTILES
-
Una stringa delimitata da virgole che specifica i tipi di previsione utilizzati per addestrare un predittore. I tipi di previsione possono essere quantili da 0,01 a 0,99, con incrementi di 0,01 o superiori. Puoi anche specificare la previsione media con la media. È possibile specificare un massimo di cinque tipi di previsione.
L'esempio seguente dimostra come creare un modello di previsione semplice.
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);
Dopo aver creato il modello di previsione, puoi creare una nuova tabella con i dati di previsione.
CREATE TABLE forecast_model_results as SELECT Forecast(forecast_example)
È quindi possibile eseguire query sulla nuova tabella per ottenere previsioni.
SELECT * FROM forecast_model_results