Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Anwendungsfälle
Die folgenden Anwendungsfälle demonstrieren die Verwendung von CREATE MODEL je nach Ihren Anforderungen.
Einfaches CREATE MODEL
Im Folgenden werden die grundlegenden Optionen der CREATE MODEL-Syntax zusammengefasst.
Einfache CREATE MODEL-Syntax
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 ] )
Einfache CREATE MODEL-Parameter
- model_name
-
Der Name des Modells Der Modellname in einem Schema muss eindeutig sein.
- FROM { table_name | ( select_query ) }
-
Der Tabellenname oder die Abfrage, die die Trainingsdaten spezifiziert. Dabei kann es sich entweder um eine bestehende Tabelle im System oder eine Amazon-Redshift-kompatible SELECT-Abfrage handeln, die in Klammern () eingeschlossen ist. Das Abfrageergebnis muss mindestens zwei Spalten enthalten.
- TARGET column_name
-
Der Name der Spalte, die zum Vorhersageziel wird. Die Spalte muss in der FROM-Klausel vorhanden sein.
- FUNCTION prediction_function_name
-
Ein Wert, der den Namen der Machine-Learning-Funktion von Amazon Redshift angibt, die von CREATE MODELL generiert und zur Erstellung von Prognosen mit diesem Modell verwendet wird. Die Funktion wird im selben Schema wie das Modellobjekt erstellt und kann überladen werden.
Amazon Redshift Machine Learning unterstützt Modelle wie Xtreme Gradient Boosted Tree (XGBoost) -Modelle für Regression und Klassifizierung.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' }
-
Verwenden Sie das Standardstichwort, damit Amazon Redshift die IAM-Rolle verwendet, die als Standard festgelegt und mit dem Cluster verknüpft ist, wenn der CREATE MODEL-Befehl ausgeführt wird. Alternativ können Sie den ARN einer IAM-Rolle angeben, um diese Rolle zu verwenden.
- S3_Bucket 'amzn-s3-demo-bucket'
-
Der Name des Amazon S3 S3-Buckets, den Sie zuvor erstellt haben, um Trainingsdaten und Artefakte zwischen Amazon Redshift und SageMaker KI auszutauschen. Amazon Redshift erstellt einen Unterordner in diesem Bucket, bevor die Trainingsdaten entladen werden. Wenn das Training abgeschlossen ist, löscht Amazon Redshift den erstellten Unterordner und dessen Inhalt.
- MAX_CELLS Ganzzahl
-
Die maximale Anzahl von Zellen, die aus der FROM-Klausel exportiert werden sollen. Der Standardwert ist 1 000 000.
Die Anzahl der Zellen ist das Produkt aus der Anzahl der Zeilen in den Trainingsdaten (erzeugt durch die FROM-Klausel-Tabelle oder -Abfrage) mal der Anzahl der Spalten. Wenn die Anzahl der Zellen in den Trainingsdaten die durch den Parameter max_cells angegebene Anzahl übersteigt, führt CREATE MODEL ein Downsampling der Trainingsdaten aus der FROM-Klausel durch, um die Größe des Trainingssatzes unter MAX_CELLS zu reduzieren. Größere Trainingsdatensätze können zu einer höheren Genauigkeit führen, aber auch bedeuten, dass das Modell länger zum Trainieren braucht und mehr kostet.
Informationen zu den Kosten für die Nutzung von Amazon Redshift finden Sie unter Kosten für die Verwendung von Amazon Redshift ML.
Weitere Informationen zu den Kosten für unterschiedliche Zellanzahlen und kostenlosen Testversionen finden Sie unter Amazon-Redshift-Preise
.
CREATE MODEL mit Benutzerführung
Nachfolgend finden Sie eine Beschreibung der Optionen für CREATE MODEL, die zusätzlich zu den unter beschriebenen gelten Einfaches CREATE MODEL.
Standardmäßig sucht CREATE MODEL nach der besten Kombination aus Vorverarbeitung und Modell für Ihren jeweiligen Datensatz. Vielleicht benötigen Sie zusätzliche Kontrolle über das Modell oder möchten zusätzliches Fachwissen (z. B. Problemtyp oder Zielsetzung) einführen. Wenn in einem Kundenabwanderungsszenario das Ergebnis „Kunde ist nicht aktiv“ selten ist, wird das F1-Ziel häufig dem Ziel „Genauigkeit“ vorgezogen. Modelle mit einer hohen Genauigkeit sagen wahrscheinlich immer „Kunde ist aktiv“ voraus. Dies ergibt zwar eine hohe Genauigkeit, jedoch ist der geschäftliche Wert gering. Informationen zum F1-Ziel finden Sie unter Auto MLJob Objective in der Amazon SageMaker AI API-Referenz.
Dann folgt CREATE MODEL Ihren Vorschlägen zu den angegebenen Aspekten, wie zum Beispiel dem Ziel. Gleichzeitig ermittelt CREATE MODEL automatisch die besten Präprozessoren und die besten Hyperparameter.
CREATE MODEL mit Benutzerführung – Syntax
CREATE MODEL bietet mehr Flexibilität bei den Aspekten, die Sie angeben können, und den Aspekten, die Amazon Redshift automatisch erkennt.
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 mit Benutzerführung – Parameter
- MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER }
-
(Optional) Gibt den Modelltyp an. Sie können angeben, ob Sie ein Modell eines bestimmten Modelltyps trainieren möchten, z. B. XGBoost Multilayer Perceptron (MLP) oder Linear Learner. Dies sind alles Algorithmen, die Amazon SageMaker AI Autopilot unterstützt. Wenn Sie den Parameter nicht angeben, werden beim Training alle unterstützten Modelltypen nach dem besten Modell durchsucht.
- PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION )
-
(Optional) Gibt den Problemtyp an. Wenn Sie den Problemtyp kennen, können Sie Amazon Redshift so einschränken, dass es nur nach dem besten Modell dieses bestimmten Modelltyps sucht. Wenn Sie diesen Parameter nicht angeben, wird während des Trainings auf der Grundlage Ihrer Daten ein Problemtyp ermittelt.
- OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC')
-
(Optional) Gibt den Namen der objektiven Metrik an, die zur Messung der Vorhersagequalität eines Machine-Learning-Systems verwendet wird. Diese Metrik wird während des Trainings optimiert, um die beste Schätzung der Modellparameterwerte aus den Daten zu erhalten. Wenn Sie nicht explizit eine Metrik angeben, wird standardmäßig automatisch MSE: für Regression, F1: für die binäre Klassifikation und Accuracy: für die Multiklassen-Klassifikation verwendet. Weitere Informationen zu Zielen finden Sie unter Auto MLJob Objective in der Amazon SageMaker AI API-Referenz.
- MAX_CELLS Ganzzahl
-
(Optional) Gibt die Anzahl der Zellen in den Trainingsdaten an. Dieser Wert ist das Produkt aus der Anzahl der Datensätze (in der Trainingsabfrage oder Tabelle) mal der Anzahl der Spalten. Der Standardwert ist 1 000 000.
- MAX_RUNTIME Ganzzahl
-
(Optional) Gibt die Höchstdauer für das Training an. Je nach Größe des Datensatzes sind die Trainingsjobs oft schneller abgeschlossen. Damit legen Sie fest, wie lange das Training maximal dauern soll. Der Standardwert ist 5.400 (90 Minuten).
- S3_GARBAGE_COLLECT { ON | OFF }
-
(Optional) Gibt an, ob Amazon Redshift eine Garbage Collection für die resultierenden Datensätze, die zum Trainieren von Modellen verwendet werden, und die Modelle durchführt. Wenn diese Option auf OFF gesetzt ist, werden die resultierenden Datensätze zum Trainieren von Modellen verwendet und die Modelle bleiben in Amazon S3 und können für andere Zwecke verwendet werden. Wenn die Option auf ON gesetzt ist, löscht Amazon Redshift die Artefakte in Amazon S3, nachdem das Training abgeschlossen ist. Die Standardeinstellung ist ON.
- KMS_KEY_ID 'kms_key_id'
-
(Optional) Gibt an, ob Amazon Redshift serverseitige Verschlüsselung mit einem AWS KMS -Schlüssel verwendet, um Data-at-Rest zu schützen. Bei der Übertragung von Daten werden mit Secure Sockets Layer (SSL) geschützt.
- PREPROCESSORS 'string'
-
(Optional) Gibt bestimmte Kombinationen von Präprozessoren für bestimmte Spalten an. Das Format ist eine Liste von columnSets und entsprechenden Transformern, die auf jede Gruppe von Spalten angewendet werden sollen. Amazon Redshift wendet alle Transformatoren in einer bestimmten Transformer-Liste auf alle Spalten in den entsprechenden ColumnSet Spalten an. Um beispielsweise OneHotEncoder mit Imputer eine Anwendung auf die Spalten t1 und t2 anzuwenden, verwenden Sie den folgenden Beispielbefehl.
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 unterstützt die folgenden Transformer:
-
OneHotEncoder — Wird normalerweise verwendet, um einen diskreten Wert in einen binären Vektor mit einem Wert ungleich Null zu kodieren. Dieser Transformer ist für viele Machine-Learning-Modelle geeignet.
-
OrdinalEncoder — Kodiert diskrete Werte in eine einzelne Ganzzahl. Dieser Transformer ist für bestimmte Machine-Learning-Modelle geeignet, wie MLP und Linear Learner.
-
NumericPassthrough — Übergibt die Eingabe unverändert an das Modell.
-
Imputer – Füllt mit fehlenden Werten und Not-a-Number(NaN)-Werten auf.
-
ImputerWithIndicator — Füllt fehlende Werte und NaN-Werte aus. Dieser Transformer erzeugt auch einen Indikator, ob Werte gefehlt haben und aufgefüllt wurden.
-
Normalizer – Normalisiert Werte, was die Leistung vieler ML-Algorithmen verbessern kann.
-
DateTimeVectorizer — Erzeugt eine Vektoreinbettung, die eine Spalte vom Datentyp Datetime darstellt, die in Modellen für maschinelles Lernen verwendet werden kann.
-
PCA – Projiziert die Daten in einen niedrigdimensionalen Raum, um die Anzahl der Merkmale zu reduzieren und gleichzeitig so viele Informationen wie möglich zu erhalten.
-
StandardScaler — Standardisiert Merkmale, indem der Mittelwert entfernt und auf die Varianz pro Einheit skaliert wird.
-
MinMax — Transformiert Merkmale, indem jedes Merkmal auf einen bestimmten Bereich skaliert wird.
Amazon Redshift ML speichert die trainierten Transformer und wendet sie automatisch als Teil der Vorhersageabfrage an. Sie müssen diese nicht angeben, wenn Sie Prognosen aus Ihrem Modell erstellen.
ERSTELLEN Sie XGBoost Modelle mit AUTO OFF
AUTO OFF CREATE MODEL hat generell andere Ziele als das normale CREATE MODEL.
Als fortgeschrittener Benutzer, der bereits den gewünschten Modelltyp und die Hyperparameter kennt, die beim Training dieser Modelle verwendet werden sollen, können Sie CREATE MODEL mit AUTO OFF verwenden, um die automatische Erkennung von Präprozessoren und Hyperparametern durch CREATE MODEL zu deaktivieren. Dazu geben Sie den Modelltyp explizit an. XGBoost ist derzeit der einzige Modelltyp, der unterstützt wird, wenn AUTO auf OFF gesetzt ist. Sie können Hyperparameter angeben. Amazon Redshift verwendet Standardwerte für alle von Ihnen angegebenen Hyperparameter.
XGBoost Modelle mit AUTO OFF-Syntax ERSTELLEN
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 (, ...) )
ERSTELLEN Sie XGBoost Modelle mit AUTO OFF-Parametern
- AUTO OFF
-
Deaktiviert die automatische Erkennung des Präprozessors, des Algorithmus und der Auswahl der Hyperparameter bei CREATE MODEL.
- MODEL_TYPE XGBOOST
-
Legt fest, dass XGBOOST zum Trainieren des Modells verwendet werden soll.
- OBJECTIVE str
-
Gibt ein vom Algorithmus erkanntes Ziel an. Amazon Redshift unterstützt reg:squarederror, reg:squaredlogerror, reg:logistic, reg:pseudohubererror, reg:tweedie, binary:logistic, binary:hinge, multi:softmax. Weitere Informationen zu diesen Zielen finden Sie in der XGBoost Dokumentation unter Parameter für Lernaufgaben
. - HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( key ‘value’ (,..) ) }
-
Gibt an, ob die XGBoost Standardparameter verwendet oder durch benutzerdefinierte Werte überschrieben werden. Die Werte müssen in einfache Anführungszeichen eingeschlossen werden. Im Folgenden finden Sie Beispiele für Parameter XGBoost und deren Standardwerte.
Parametername Parameterwert Standardwert Hinweise num_class
Ganzzahl Erforderlich für die Multiclass-Klassifizierung.
N/A num_round
Ganzzahl 100
N/A tree_method
Zeichenfolge Automatisch N/A max_depth
Ganzzahl 6 [0, 10] min_child_weight Gleitkommazahl 1 MinValue: 0, MaxValue: 120 subsample Gleitkommazahl 1 MinValue: 0,5, MaxValue: 1 gamma Gleitkommazahl 0 MinValue: 0, MaxValue: 5 alpha Gleitkommazahl 0 MinValue: 0, MaxValue: 100 eta Gleitkommazahl 0.3 MinValue: 0,1, MaxValue: 0,5 colsample_byleve Gleitkommazahl 1 MinValue: 0,1, MaxValue: 1 colsample_bynode Gleitkommazahl 1 MinValue: 0,1, MaxValue: 1 colsample_bytree Gleitkommazahl 1 MinValue: 0,5, MaxValue: 1 Lambda Gleitkommazahl 1 MinValue: 0, MaxValue: 100 max_delta_step Ganzzahl 0 [0, 10]
Das folgende Beispiel bereitet Daten für vor 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;
Im folgenden Beispiel wird ein XGBoost Modell mit angegebenen erweiterten Optionen wie MODEL_TYPE, OBJECTIVE und PREPROCESSORS erstellt.
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');
Im folgenden Beispiel wird eine Inferenzabfrage verwendet, um das Alter der Fische mit einer Datensatznummer größer als 2 500 vorherzusagen. Sie verwendet die Funktion ml_fn_abalone_xgboost_multi_predict_age, die mit dem obigen Befehl erstellt wurde.
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) - lokale Inferenz
Amazon Redshift ML unterstützt die Verwendung von „Bring Your Own Model“ (BYOM) bei der lokalen oder Remote-Inferenz.
Im Folgenden werden die grundlegenden Optionen der CREATE MODEL-Syntax für BYOM zusammengefasst. Sie können ein außerhalb von Amazon Redshift mit Amazon SageMaker AI trainiertes Modell für datenbankinterne Inferenzen lokal in Amazon Redshift verwenden.
CREATE MODEL-Syntax für lokale Inferenz
Im Folgenden wird die CREATE MODEL-Syntax für lokale Inferenz beschrieben.
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 unterstützt derzeit nur vortrainierte XGBoost, MLP- und Linear Learner-Modelle für BYOM. Über diesen Pfad können Sie den SageMaker KI-Autopiloten und Modelle importieren, die direkt in Amazon SageMaker AI trainiert wurden, um lokale Inferenzen zu erzielen.
CREATE MODEL-Parameter für lokale Inferenz
- model_name
-
Der Name des Modells Der Modellname in einem Schema muss eindeutig sein.
- FROM ('job_name' | 's3_path' )
-
Der job_name verwendet einen Amazon SageMaker AI-Jobnamen als Eingabe. Der Jobname kann entweder ein Amazon SageMaker AI-Schulungsauftragsname oder ein Amazon SageMaker AI Autopilot-Jobname sein. Der Job muss in demselben AWS -Konto erstellt werden, das Besitzer des Amazon-Redshift-Clusters ist. Um den Jobnamen zu finden, starten Sie Amazon SageMaker AI. Wählen Sie im Drop-down-Menü Training Training jobs (Trainingsaufträge) aus.
Der 's3_pfad' gibt den S3-Speicherort der .tar.gz-Modellartefaktdatei an, die beim Erstellen des Modells verwendet werden soll.
- FUNCTION function_name ( data_type [, ...] )
-
Der Name der zu erstellenden Funktion und die Datentypen der Eingabeargumente. Sie können einen Schemamen angeben.
- RETURNS data_type
-
Der Datentyp des Werts, der von der Funktion zurückgegeben wird.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}
-
Verwenden Sie das Standardstichwort, damit Amazon Redshift die IAM-Rolle verwendet, die als Standard festgelegt und mit dem Cluster verknüpft ist, wenn der CREATE MODEL-Befehl ausgeführt wird.
Verwenden Sie den Amazon-Ressourcennamen (ARN) für eine IAM-Rolle, die von Ihrem Cluster für Authentifizierung und Autorisierung verwendet wird.
- EINSTELLUNGEN (S3_BUCKET 'amzn-s3-demo-bucket', | KMS_KEY_ID 'kms_string')
-
Die S3_BUCKET-Klausel gibt den Amazon-S3-Speicherort an, der zum Speichern von Zwischenergebnissen verwendet wird.
(Optional) Die KMS_KEY_ID-Klausel gibt an, ob Amazon Redshift serverseitige Verschlüsselung mit einem AWS KMS Schlüssel verwendet, um Daten im Ruhezustand zu schützen. Bei der Übertragung von Daten werden mit Secure Sockets Layer (SSL) geschützt.
Weitere Informationen finden Sie unter CREATE MODEL mit Benutzerführung.
CREATE MODEL für lokale Inferenz – Beispiel
Im folgenden Beispiel wird ein Modell erstellt, das zuvor außerhalb von Amazon Redshift in Amazon SageMaker AI trainiert wurde. Da der Modelltyp von Amazon Redshift ML für die lokale Inferenz unterstützt wird, erstellt das folgende CREATE MODEL eine Funktion, die lokal in Amazon Redshift verwendet werden kann. Sie können einen Namen für den SageMaker KI-Schulungsjob angeben.
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');
Nachdem das Modell erstellt wurde, können Sie die Funktion customer_churn_predict mit den angegebenen Argumenttypen verwenden, um Prognosen zu erstellen.
Bring Your Own Model (BYOM) - Remote-Inferenz
Amazon Redshift ML unterstützt die Verwendung von „Bring Your Own Model“ (BYOM) für die Remote-Inferenz.
Im Folgenden werden die grundlegenden Optionen der CREATE MODEL-Syntax für BYOM zusammengefasst.
CREATE MODEL-Syntax für Remote-Inferenz
Im Folgenden wird die CREATE MODEL-Syntax für Remote-Inferenz beschrieben.
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)];
CREATE MODEL-Parameter für Remote-Inferenz
- model_name
-
Der Name des Modells Der Modellname in einem Schema muss eindeutig sein.
- FUNCTION fn_name ( [data_type] [, ...] )
-
Der Name der Funktion und die Datentypen der Eingabeargumente. Alle unterstützten Datentypen finden Sie unter Datentypen.
Geography
,geometry
undhllsketch
werden nicht unterstützt.Sie können auch einen Funktionsnamen innerhalb eines Schemas angeben, indem Sie eine zweiteilige Notation verwenden, z. B.
myschema.myfunction
- RETURNS data_type
-
Der Datentyp des Werts, der von der Funktion zurückgegeben wird. Alle unterstützten Datentypen finden Sie unter Datentypen.
Geography
,geometry
undhllsketch
werden nicht unterstützt. - SAGEMAKER 'endpoint_name'[:'model_name']
-
Der Name des Amazon SageMaker AI-Endpunkts. Wenn der Endpunktname auf einen Multimodell-Endpunkt verweist, fügen Sie den Namen des zu verwendenden Modells hinzu. Der Endpunkt muss in derselben AWS Region und AWS-Konto wie der Amazon Redshift Redshift-Cluster gehostet werden. Um Ihren Endpunkt zu finden, starten Sie Amazon SageMaker AI. Wählen Sie im Drop-down-Menü Inference (Inferenz) Endpoints (Endpunkte) aus.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}
-
Verwenden Sie das Standardstichwort, damit Amazon Redshift die IAM-Rolle verwendet, die als Standard festgelegt und mit dem Cluster verknüpft ist, wenn der CREATE MODEL-Befehl ausgeführt wird. Alternativ können Sie den ARN einer IAM-Rolle angeben, um diese Rolle zu verwenden.
- MAX_BATCH_ROWS, Ganzzahl
-
Die maximale Anzahl von Zeilen, die Amazon Redshift in einer einzigen Batch-Anfrage für einen einzelnen SageMaker KI-Aufruf sendet. Sie wird nur für BYOM mit Remote-Inferenz unterstützt. Die tatsächliche Anzahl der Zeilen in einem Batch hängt ebenfalls von der Eingabegröße ab, ist jedoch kleiner oder gleich diesem Wert. Der Mindestwert für diesen Parameter ist 1. Der Höchstwert ist oder
INT_MAX
2.147.483.647. Dieser Parameter ist nur erforderlich, wenn sowohl Eingabe- als auch zurückgegebene Datentypen erforderlich sind.SUPER
Der Standardwert ist oderINT_MAX
2.147.483.647.
Wenn das Modell auf einem SageMaker KI-Endpunkt bereitgestellt wird, erstellt SageMaker KI die Informationen des Modells in Amazon Redshift. Anschließend führt es eine Inferenz über die externe Funktion durch. Sie können den Befehl SHOW MODEL verwenden, um die Modellinformationen auf Ihrem Amazon-Redshift-Cluster anzuzeigen.
CREATE MODEL für Remote-Inferenz – Hinweise zur Verwendung
Bevor Sie CREATE MODEL für Remote-Inferenz verwenden, sollten Sie Folgendes beachten:
-
Der Endpunkt muss von demselben AWS Konto gehostet werden, dem der Amazon Redshift Redshift-Cluster gehört.
-
Stellen Sie sicher, dass der Amazon SageMaker AI-Endpunkt entweder über genügend Ressourcen verfügt, um Inferenzrufe von Amazon Redshift aufzunehmen, oder dass der Amazon SageMaker AI-Endpunkt automatisch skaliert werden kann.
-
Wenn Sie den
SUPER
Datentyp nicht als Eingabe verwenden, akzeptiert das Modell nur Eingaben im Format kommagetrennter Werte (CSV), was einem Inhaltstyp von in AI entspricht.text/CSV
SageMaker -
Wenn Sie den
SUPER
Datentyp nicht als Eingabe verwenden, ist die Ausgabe von Modellen ein einzelner Wert des Typs, der bei der Erstellung der Funktion angegeben wurde. Die Ausgabe erfolgt im Format kommagetrennter Werte (CSV) über den Inhaltstyptext/CSV
in SageMaker AI.VARCHAR
Datentypen dürfen nicht in Anführungszeichen stehen und dürfen keine neuen Zeilen enthalten, und jede Ausgabe muss in einer neuen Zeile erfolgen. -
Modelle akzeptieren Nullen als leere Zeichenfolgen.
-
Wenn der Eingabedatentyp ist
SUPER
, wird nur ein Eingabeargument unterstützt. -
Wenn der Eingabedatentyp ist
SUPER
, muss auch der zurückgegebene Datentyp seinSUPER
. -
MAX_BATCH_ROWS ist erforderlich, wenn sowohl die Eingabe- als auch die zurückgegebenen Datentypen SUPER sind.
-
Wenn der Eingabedatentyp der Inhaltstyp des Endpunkts ist
SUPER
, ist der Aufruf entweder,application/json
wenn MAX_BATCH_ROWS der Fall ist, oder in allen anderen Fällen.1
application/jsonlines
-
Wenn der zurückgegebene Datentyp der Accept-Typ des Endpunkts ist
SUPER
, ist der Aufruf entweder,application/json
wenn MAX_BATCH_ROWS der Wert ist, oder in allen anderen Fällen.1
application/jsonlines
CREATE MODEL für Remote-Inferenz – Beispiel
Im folgenden Beispiel wird ein Modell erstellt, das einen KI-Endpunkt verwendet, um Vorhersagen zu treffen SageMaker . Vergewissern Sie sich, dass der Endpunkt ausgeführt wird, um Prognosen zu erstellen, und geben Sie seinen Namen in dem Befehl CREATE MODEL an.
CREATE MODEL remote_customer_churn FUNCTION remote_fn_customer_churn_predict (varchar, int, float, float) RETURNS int SAGEMAKER 'customer-churn-endpoint' IAM_ROLE default;
Im folgenden Beispiel wird ein BYOM mit Remote-Inferenz mit einem Large Language Model (LLM) erstellt. LLMs auf Amazon SageMaker AI Jumpstart gehostet, akzeptieren und geben den application/json
Inhaltstyp zurück und sie unterstützen ein einzelnes JSON pro Aufruf. Die eingegebenen und zurückgegebenen Datentypen müssen den Wert 1 haben SUPER
und MAX_BATCH_ROWS muss auf 1 gesetzt sein.
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 mit K-MEANS
Amazon Redshift unterstützt den K-Means-Algorithmus, der Daten gruppiert, die nicht markiert sind. Dieser Algorithmus löst Clusterprobleme, bei denen Sie Gruppierungen in den Daten erkennen möchten. Nicht klassifizierte Daten werden aufgrund ihrer Ähnlichkeiten und Unterschiede gruppiert und partitioniert.
CREATE MODEL mit K-MEANS – Syntax
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 mit K-MEANS – Parameter
- AUTO OFF
-
Deaktiviert die automatische Erkennung des Präprozessors, des Algorithmus und der Auswahl der Hyperparameter bei CREATE MODEL.
- MODEL_TYPE KMEANS
-
Legt fest, dass KMEANS zum Trainieren des Modells verwendet werden soll.
- PREPROCESSORS 'string'
-
Gibt bestimmte Kombinationen von Präprozessoren für bestimmte Spalten an. Das Format ist eine Liste von columnSets und entsprechenden Transformern, die auf jede Gruppe von Spalten angewendet werden sollen. Amazon Redshift unterstützt 3 K-Means-Präprozessoren, nämlich StandardScaler, und MinMax. NumericPassthrough Wenn Sie keine Vorverarbeitung für K-Means anwenden möchten, wählen Sie NumericPassthrough die Option explizit als Transformator. Weitere Informationen zu unterstützten Transformern finden Sie unter CREATE MODEL mit Benutzerführung – Parameter.
Der K-Means-Algorithmus verwendet einen euklidischen Abstand zum Berechnen der Ähnlichkeit. Die Vorverarbeitung der Daten stellt sicher, dass die Features des Modells im gleichen Maßstab bleiben und zuverlässige Ergebnisse liefern.
- HYPERPARAMETERS DEFAULT EXCEPT ( K 'val' [, ...] )
-
Gibt an, ob die K-Means-Parameter verwendet werden. Sie müssen den
K
-Parameter angeben, wenn Sie den K-Means-Algorithmus verwenden. Weitere Informationen finden Sie unter K-Means Hyperparameters im Amazon SageMaker AI Developer Guide
Im folgenden Beispiel werden Daten für K-Means vorbereitet.
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 mit Forecast
Prognosemodelle in Redshift ML verwenden Amazon Forecast, um präzise Zeitreihenprognosen zu erstellen. Auf diese Weise können Sie historische Daten über einen bestimmten Zeitraum verwenden, um Vorhersagen über zukünftige Ereignisse zu treffen. Zu den häufigsten Anwendungsfällen von Amazon Forecast gehören die Verwendung von Einzelhandelsproduktdaten, um zu entscheiden, wie der Lagerbestand bewertet werden soll, die Vewendung von Herstellungsmengendaten, um vorherzusagen, wie viel von einem Artikel bestellt werden soll, und die Verwendung von Web-Traffic-Daten, um zu prognostizieren, wie viel Traffic ein Webserver empfangen könnte.
Kontingentlimits von Amazon Forecast werden in Amazon-Redshift-Prognosemodellen durchgesetzt. Die maximale Anzahl von Prognosen ist beispielsweise 100, wobei diese jedoch anpassbar ist. Wenn Sie ein Prognosemodell löschen, werden die zugehörigen Ressourcen in Amazon Forecast nicht automatisch entfernt. Wenn Sie einen Redshift-Cluster löschen, werden auch alle zugehörigen Modelle entfernt.
Beachten Sie, dass Prognosemodelle derzeit nur in den folgenden Regionen verfügbar sind:
-
USA Ost (Ohio): (us-east-2)
-
USA Ost (Nord-Virginia): (us-east-1)
-
USA West (Oregon): (us-west-2)
-
Asien-Pazifik (Mumbai): (ap-south-1)
-
Asien-Pazifik (Seoul): (ap-northeast-2)
-
Asien-Pazifik (Singapur): (ap-southeast-1)
-
Asien-Pazifik (Sydney): (ap-southeast-2)
-
Asien-Pazifik (Tokyo) (ap-northeast-1)
-
Europa (Frankfurt) (eu-central-1)
-
Europa (Irland) (eu-west-1)
CREATE MODEL mit Forecast-Syntax
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 mit Forecast-Parametern
- forecast_model_name
-
Der Name des Modells Der Modellname muss eindeutig sein.
- FROM { table_name | ( select_query ) }
-
Der Tabellenname oder die Abfrage, die die Trainingsdaten spezifiziert. Dabei kann es sich entweder um eine bestehende Tabelle im System oder um eine mit Amazon Redshift kompatible SELECT-Abfrage handeln, die in Klammern eingeschlossen ist. Das Tabellen- oder Abfrageergebnis muss mindestens drei Spalten haben: (1) eine Varchar-Spalte, die den Namen der Zeitreihe angibt. Jeder Datensatz kann mehrere Zeitreihen, (2) eine datetime-Spalte und (3) die vorherzusagende Zielspalte enthalten. Diese Zielspalte muss entweder eine Ganzzahl oder ein Gleitkommawert sein. Wenn Sie einen Datensatz mit mehr als drei Spalten angeben, geht Amazon Redshift davon aus, dass alle zusätzlichen Spalten Teil einer verwandten Zeitreihe sind. Beachten Sie, dass verwandte Zeitreihen vom Typ „int“ (Ganzzahl) oder „float“ (Gleitkommawert) sein müssen. Weitere Informationen zu verwandten Zeitreihen finden Sie unter Verwenden von Datasets verwandter Zeitreihen.
- TARGET column_name
-
Der Name der Spalte, die zum Vorhersageziel wird. Die Spalte muss in der FROM-Klausel vorhanden sein.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' }
-
Verwenden Sie das Standardstichwort, damit Amazon Redshift die IAM-Rolle verwendet, die als Standard festgelegt und mit dem Cluster verknüpft ist, wenn der CREATE MODEL-Befehl ausgeführt wird. Alternativ können Sie einen ARN einer IAM-Rolle angeben, um diese Rolle zu verwenden.
- AUTO ON
-
Aktiviert die automatische Erkennung des Algorithmus und die Auswahl der Hyperparameter bei CREATE MODEL. Wenn Sie bei der Erstellung eines Prognosemodells ein angeben, wird eine Forecast verwendet AutoPredictor, bei der Amazon Forecast die optimalen Kombinationen von Algorithmen auf jede Zeitreihe in Ihrem Datensatz anwendet.
- MODEL_TYPE FORECAST
-
Legt fest, dass FORECAST zum Trainieren des Modells verwendet werden soll.
- S3_BUCKET 'amzn-s3-demo-bucket'
-
Der Name des Buckets von Amazon Simple Storage Service, den Sie zuvor erstellt haben und der verwendet wird, um Trainingsdaten und Artefakte zwischen Amazon Redshift und Amazon Forecast auszutauschen. Amazon Redshift erstellt einen Unterordner in diesem Bucket, bevor die Trainingsdaten entladen werden. Wenn das Training abgeschlossen ist, löscht Amazon Redshift den erstellten Unterordner und dessen Inhalt.
- HORIZON-Ganzzahl
-
Die maximale Anzahl von Vorhersagen, die das Prognosemodell zurückgeben kann. Sobald das Modell trainiert ist, können Sie diese Ganzzahl nicht mehr ändern.
- FREQUENCY forecast_frequency
-
Gibt an, wie detailliert die Prognosen sein sollen. Verfügbare Optionen sind
Y | M | W | D | H | 30min | 15min | 10min | 5min | 1min
. Erforderlich, wenn Sie ein Prognosemodell trainieren. - PERCENTILES-Zeichenfolge
-
Eine durch Komma getrennte Zeichenfolge, die die Prognosetypen angibt, mit denen ein Prädiktor trainiert wird. Bei den Prognosetypen kann es sich um Quantile von 0,01 bis 0,99 handeln, und zwar in Schritten von 0,01 oder höher. Sie können den Mittelwert der Prognose auch mit Mittelwert angeben. Sie können maximal fünf Prognosetypen angeben.
Das folgende Beispiel zeigt, wie ein einfaches Prognosemodell erstellt wird.
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);
Nachdem Sie das Prognosemodell erstellt haben, können Sie eine neue Tabelle mit den Prognosedaten erstellen.
CREATE TABLE forecast_model_results as SELECT Forecast(forecast_example)
Anschließend können Sie die neue Tabelle abfragen, um Vorhersagen zu erhalten.
SELECT * FROM forecast_model_results