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.
Erste Schritte mit Amazon Redshift ML
Amazon Redshift ML erleichtert SQL-Benutzern das Erstellen, Trainieren und Bereitstellen von Machine-Learning-Modellen mit vertrauten SQL-Befehlen. Mit Amazon Redshift ML können Sie Ihre Daten in Ihrem Redshift-Cluster verwenden, um Modelle mit Amazon SageMaker AI zu trainieren. Danach können Sie die Modelle lokalisieren und Prognosen innerhalb einer Amazon-Redshift-Datenbank erstellen. Amazon Redshift ML unterstützt derzeit die Algorithmen für maschinelles Lernen: XGBoost (AUTO ON und OFF) und Multilayer Perceptron (AUTO ON), K-Means (AUTO OFF) und Linear Learner.
Themen
Einrichtung für die Amazon-Redshift-ML-Administration in Cluster aufteilen und konfigurieren
Bevor Sie mit Amazon Redshift ML arbeiten, schließen Sie die Cluster-Einrichtung ab und konfigurieren Sie die Berechtigungen für die Verwendung von Amazon Redshift ML.
Cluster-Einrichtung für die Verwendung von Amazon Redshift ML
Bevor Sie mit Amazon Redshift ML arbeiten können, müssen die folgenden Voraussetzungen erfüllt sein.
Führen Sie als Amazon Redshift-Administrator die folgende einmalige Einrichtung für die Verwendung von von Amazon Redshift bereitgestellten Clustern durch. Informationen zur Verwendung von Amazon Redshift ML mit Amazon Redshift Serverless finden Sie unter Erste Schritte mit Amazon Redshift Serverless.
So führen Sie eine einmalige ClusterEinrichtung für Amazon Redshift ML durch
-
Erstellen Sie einen Redshift-Cluster mit dem AWS Management Console oder dem AWS Command Line Interface (AWS CLI). Stellen Sie sicher, dass Sie die AWS Identity and Access Management (IAM-) Richtlinie bei der Erstellung des Clusters anhängen. Weitere Informationen zu den erforderlichen Berechtigungen für die Verwendung von Amazon Redshift ML mit Amazon SageMaker AI finden Sie unter Erforderliche Berechtigungen für die Verwendung von Amazon Redshift Machine Learning (ML)
-
Erstellen Sie die IAM-Rolle, die für die Nutzung von Amazon Redshift ML erforderlich ist, mit einer der folgenden Methoden:
-
Um SageMaker KI mit Amazon Redshift ML zu verwenden, erstellen Sie eine IAM-Rolle mit
AmazonS3FullAccess
undAmazonSageMakerFullAccess
Richtlinien. Wenn Sie planen, auch Prognosemodelle zu erstellen, fügen Sie die RichtlinieAmazonForecastFullAccess
ebenfalls Ihrer Rolle hinzu. -
Um Amazon Bedrock mit Amazon Redshift ML zu verwenden, erstellen Sie eine IAM-Rolle mit
AmazonS3FullAccess
und Richtlinien.AmazonBedrockFullAccess
-
Wir empfehlen, dass Sie eine IAM-Rolle über die Amazon-Redshift-Konsole erstellen, die über die
AmazonRedshiftAllCommandsFullAccess
-Richtlinie mit Berechtigungen zum Ausführen von SQL-Befehlen wie z. B. CREATE MODEL verfügt. Amazon Redshift verwendet einen nahtlosen API-basierten Mechanismus, um in Ihrem Namen programmgesteuert IAM-Rollen in Ihrem Namen zu erstellen. AWS-Konto Amazon Redshift fügt der IAM-Rolle automatisch bestehende AWS verwaltete Richtlinien hinzu. Bei dieser Methode können Sie in der Amazon-Redshift-Konsole bleiben und müssen zur Rollenerstellung nicht zur IAM-Konsole wechseln. Weitere Informationen finden Sie unter Erstellen einer IAM-Rolle als Standard für Amazon Redshift.Wenn eine IAM-Rolle als Standard für Ihren Cluster erstellt wird, schließen Sie
redshift
als Teil des Ressourcennamens ein oder verwenden Sie ein Redshift-spezifisches Tag, um diese Ressourcen zu kennzeichnen.Wenn für Ihren Cluster erweitertes Amazon-VPC-Routing aktiviert wurde, können Sie eine IAM-Rolle verwenden, die über die Amazon-Redshift-Konsole erstellt wurde. Dieser IAM-Rolle wurde die
AmazonRedshiftAllCommandsFullAccess
-Richtlinie angehängt und Sie fügen die folgenden Berechtigungen zur Richtlinie hinzu. Diese zusätzlichen Berechtigungen ermöglichen Amazon Redshift, ein elastic network interface (ENI) in Ihrem Konto zu erstellen und zu löschen und es an Kompilierungsaufgaben anzuhängen, die auf Amazon EC2 oder Amazon ECS ausgeführt werden. Auf diese Weise kann auf Objekte in Ihren Amazon S3 Buckets nur von innerhalb einer Virtual Private Cloud (VPC) zugegriffen werden, wobei der Internetzugang gesperrt ist.{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcEndpoints", "ec2:DescribeDhcpOptions", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "*" }
Um Amazon Bedrock Foundation-Modelle zu verwenden, fügen Sie den folgenden Abschnitt hinzu:
// Required section if you use Bedrock models. { "Effect": "Allow", "Action": "bedrock:InvokeModel", "Resource": [ "arn:aws:bedrock:
<region>
::foundation-model/*" ] } -
Wenn Sie eine IAM-Rolle mit einer restriktiveren Richtlinie erstellen möchten, können Sie die folgende Richtlinie verwenden. Sie können diese Richtlinie auch entsprechend Ihren Anforderungen anpassen.
Der Amazon-S3-Bucket
redshift-downloads/redshift-ml/
ist der Ort, an dem die Beispieldaten für andere Schritte und Beispiele gespeichert werden. Sie können ihn entfernen, wenn Sie keine Daten aus Amazon S3 laden müssen. Sie können ihn auch durch andere Amazon-S3-Buckets ersetzen, die Sie zum Laden von Daten in Amazon Redshift verwenden.Die Werte
,your-account-id
undyour-role
amzn-s3-demo-bucket
sind die, die Sie als Teil Ihres Befehls CREATE MODEL angeben.(Optional) Verwenden Sie den Abschnitt AWS KMS Schlüssel der Beispielrichtlinie, wenn Sie bei der Verwendung von Amazon Redshift ML einen AWS KMS Schlüssel angeben. Der Wert
ist der Schlüssel, den Sie als Teil Ihres CREATE-MODEL-Befehls verwenden.your-kms-key
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "sagemaker:*Job*", "sagemaker:AddTags", "sagemaker:CreateModel", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig, "sagemaker:DeleteModel" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole", "s3:AbortMultipartUpload", "s3:GetObject", "s3:DeleteObject", "s3:PutObject" ], "Resource": [ "arn:aws:iam::
<your-account-id>
:role/<your-role>
", "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:s3:::redshift-downloads/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket, "arn:aws:s3:::redshift-downloads" ] } // Optional section needed if you use AWS KMS keys. ,{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:<your-region>
:<your-account-id>
:key/<your-kms-key>
" ] } ] }
-
-
Damit Amazon Redshift und SageMaker KI die Rolle für die Interaktion mit anderen Diensten übernehmen können, fügen Sie der IAM-Rolle die folgende Vertrauensrichtlinie hinzu.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com", "forecast.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
(Optional) Erstellen Sie einen Amazon S3 S3-Bucket und einen AWS KMS Schlüssel. Diese werden von Amazon Redshift verwendet, um die an Amazon SageMaker AI gesendeten Trainingsdaten zu speichern und das trainierte Modell von Amazon SageMaker AI zu empfangen.
-
(Optional) Erstellen Sie verschiedene Kombinationen von IAM-Rollen und Amazon-S3-Buckets, um den Zugriff auf verschiedene Benutzergruppen zu steuern.
-
(Optional) Wenn Sie VPC-Routing für Ihren Redshift-Cluster aktivieren, erstellen Sie einen Amazon S3 S3-Endpunkt und einen SageMaker KI-Endpunkt für die VPC, in der sich Ihr Redshift-Cluster befindet. Auf diese Weise kann der Datenverkehr zwischen Diensten während der Ausführung von CREATE MODEL durch Ihre VPC laufen. Weitere Informationen zum VPC-Routing finden Sie unter Enhanced VPC Routing in Amazon Redshift.
Weitere Informationen zu den erforderlichen Berechtigungen, um eine private VPC für Ihren Hyperparameter-Tuning-Job anzugeben, finden Sie unter Erforderliche Berechtigungen für die Verwendung von Amazon Redshift ML mit Amazon AI. SageMaker
Informationen zur Verwendung der CREATE-MODEL-Anweisung zum Erstellen von Modellen für verschiedene Anwendungsfälle finden Sie unter CREATE MODEL.
Verwalten von Berechtigungen und Eigentümerschaft
Wie bei anderen Datenbankobjekten wie z. B. Tabellen oder Funktionen bindet Amazon Redshift das Erstellen und Verwenden von ML-Modellen an Mechanismen für die Zugriffssteuerung. Für die Erstellung eines Modells, das Prognosefunktionen ausführt, sind separate Berechtigungen erforderlich.
In den folgenden Beispielen werden zwei Benutzergruppen verwendet: retention_analyst_grp
(Modellersteller) und marketing_analyst_grp
(Modellbenutzer), um zu veranschaulichen, wie Amazon Redshift die Zugriffskontrolle verwaltet. Der Retention Analyst erstellt Machine-Learning-Modelle, die andere Benutzer verwenden können, wenn sie über entsprechende Berechtigungen verfügen.
Ein Superuser kann GRANT USER- oder GROUP-Berechtigungen für die Erstellung von Machine-Learning-Anweisungen erteilen. Dafür wird die folgende Anweisung verwendet.
GRANT CREATE MODEL TO GROUP retention_analyst_grp;
Benutzer oder Gruppen mit dieser Berechtigung können ein Modell in einem beliebigen Schema im Cluster erstellen, wenn ein Benutzer über die übliche CREATE-Berechtigung für das SCHEMA verfügt. Das Machine-Learning-Modell ist Teil der Schemahierarchie, ähnlich wie bei Tabellen, Ansichten, Prozeduren und benutzerdefinierte Funktionen.
Wenn beispielsweise das Schema demo_ml
bereits vorhanden ist, können Sie zwei Benutzergruppen Berechtigungen für das Schema erteilten. Dies sieht so aus:
GRANT CREATE, USAGE ON SCHEMA demo_ml TO GROUP retention_analyst_grp;
GRANT USAGE ON SCHEMA demo_ml TO GROUP marketing_analyst_grp;
Um anderen Benutzern die Verwendung der Machine-Learning-Inferenzfunktion zu ermöglichen, erteilen Sie die EXECUTE-Berechtigung. Im folgenden Beispiel wird die EXECUTE-Berechtigung verwendet, um der marketing_analyst_grp GROUP die Berechtigung zur Verwendung des Modells zu erteilen.
GRANT EXECUTE ON MODEL demo_ml.customer_churn_auto_model TO GROUP marketing_analyst_grp;
Verwenden Sie die REVOKE-Anweisung mit CREATE MODEL und EXECUTE, um Benutzern oder Gruppen diese Berechtigungen wieder zu entziehen. Weitere Informationen zu Befehlen für die Berechtigung finden Sie unter GRANT und REVOKE.
Verwenden der Modellerklärbarkeit mit Amazon Redshift ML
Mit der Modellerklärbarkeit in Amazon Redshift ML verstehen Sie anhand von Werten für die Funktionsbedeutung, wie jedes Attribut in Ihren Trainingsdaten zum prognostizierten Ergebnis beiträgt.
Die Erklärbarkeit von Modellen hilft dabei, Ihre Machine-Learning-Modelle (ML) zu verbessern, indem die von den Modellen getätigten Prognosen näher erläutert werden. Die Erklärbarkeit des Modells hilft mit der Zuordnung von Funktionen zu erläutern, wie diese Modelle Prognosen erstellen.
Amazon Redshift ML nutzt die Erklärbarkeit von Modellen, um Amazon-Redshift-ML-Benutzern Funktionen zur Modellerklärung bereitzustellen. Weitere Informationen zur Erklärbarkeit von Modellen finden Sie unter Was ist Fairness und Modellerklärbarkeit von Vorhersagen für Machine Learning? im Amazon SageMaker AI Developer Guide.
Die Modellerklärbarkeit überwacht auch die Inferenzen, zu denen es bei in der Produktion eingesetzten Modellen kommt, auf eine Drift der Funktionszuordnung. Sie bietet auch Tools, mit denen Sie Modell-Governance-Berichte zur Information von Risiko- und Compliance-Teams sowie externer Aufsichtsbehörden erstellen können.
Wenn Sie bei der Verwendung der CREATE MODEL-Anweisung die Option AUTO ON oder AUTO OFF angeben, erstellt SageMaker AI nach Abschluss des Modelltrainingsjobs die Erklärungsausgabe. Sie können mithilfe der Funktion EXPLAIN_MODEL den Erklärbarkeitsbericht in einem JSON-Format abfragen. Weitere Informationen finden Sie unter Machine-Learning-Funktionen.
Wahrscheinlichkeitsmetriken von Amazon Redshift ML
Bei Supervised-Learning-Problemen sind Klassen-Labels die Ergebnisse von Vorhersagen, die Eingabedaten verwenden. Wenn Sie beispielsweise ein Modell verwenden, um vorherzusagen, ob ein Kunde einen Streaming-Dienst erneut abonnieren wird, sind mögliche Labels „likely“ (wahrscheinlich) und „unlikely“ (unwahrscheinlich). Redshift ML bietet die Möglichkeit zur Verwendung von Wahrscheinlichkeitsmetriken, die jedem Label eine Wahrscheinlichkeit zuweisen, um die Wahrscheinlichkeit seines Eintretens anzugeben. Dies hilft Ihnen, fundiertere Entscheidungen auf der Grundlage der prognostizierten Ergebnisse zu treffen. In Amazon Redshift ML sind Wahrscheinlichkeitsmetriken verfügbar, wenn AUTO-ON-Modelle mit dem Problemtyp binäre Klassifikation oder Mehrklassen-Klassifizierung erstellt werden. Wenn Sie den Parameter AUTO ON weglassen, geht Redshift ML davon aus, dass für das Modell AUTO ON gelten sollte.
Erstellen des Modells
Beim Erstellen eines Modells erkennt Amazon Redshift automatisch den Modelltyp und den Problemtyp. Wenn es sich um ein Klassifizierungsproblem handelt, erstellt Redshift automatisch eine zweite Inferenzfunktion, mit deren Hilfe Sie Wahrscheinlichkeiten in Relation zu den einzelnen Labels ausgeben können. Der Name dieser zweiten Inferenzfunktion ist der Name Ihrer angegebenen Inferenzfunktion, gefolgt von der Zeichenfolge _probabilities
. Wenn Sie beispielsweise Ihre Inferenzfunktion als customer_churn_predict
bezeichnen, lautet der Name der zweiten Inferenzfunktion customer_churn_predict_probabilities
. Sie können diese Funktion dann abfragen, um die Wahrscheinlichkeiten der einzelnen Labels zu erhalten.
CREATE MODEL customer_churn_model FROM customer_activity PROBLEM_TYPE BINARY_CLASSIFICATION TARGET churn FUNCTION customer_churn_predict IAM_ROLE {default} AUTO ON SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket'
Abrufen von Wahrscheinlichkeiten
Wenn die Wahrscheinlichkeitsfunktion einsatzbereit ist, wird bei Ausführung des Befehls ein SUPER-Typ zurückgegeben, der Arrays der zurückgegebenen Wahrscheinlichkeiten und der zugehörigen Labels enthält. Das Ergebnis "probabilities" : [0.7, 0.3], "labels" : ["False.", "True."]
bedeutet beispielsweise, dass das Label „False“ (Falsch) eine Wahrscheinlichkeit von 0,7 und das Label „True“ (Wahr) eine Wahrscheinlichkeit von 0,3 aufweist.
SELECT customer_churn_predict_probabilities(Account_length, Area_code, VMail_message, Day_mins, Day_calls, Day_charge,Eve_mins, Eve_calls, Eve_charge, Night_mins, Night_calls, Night_charge,Intl_mins, Intl_calls, Intl_charge, Cust_serv_calls) FROM customer_activity; customer_churn_predict_probabilities -------------------- {"probabilities" : [0.7, 0.3], "labels" : ["False.", "True."]} {"probabilities" : [0.8, 0.2], "labels" : ["False.", "True."]} {"probabilities" : [0.75, 0.25], "labels" : ["True.", "False"]}
Die Arrays der Wahrscheinlichkeiten und Labels sind immer in absteigender Reihenfolge nach ihren Wahrscheinlichkeiten sortiert. Sie können eine Abfrage schreiben, die nur das prognostizierte Label mit der höchsten Wahrscheinlichkeit zurückgibt, indem Sie die Verschachtelung der von SUPER zurückgegebenen Ergebnisse der Wahrscheinlichkeitsfunktion aufheben.
SELECT prediction.labels[0], prediction.probabilities[0] FROM (SELECT customer_churn_predict_probabilities(Account_length, Area_code, VMail_message, Day_mins, Day_calls, Day_charge,Eve_mins, Eve_calls, Eve_charge, Night_mins, Night_calls, Night_charge,Intl_mins, Intl_calls, Intl_charge, Cust_serv_calls) AS prediction FROM customer_activity); labels | probabilities -----------+-------------- "False." | 0.7 "False." | 0.8 "True." | 0.75
Um die Abfragen zu vereinfachen, können Sie die Ergebnisse der Vorhersagefunktion in einer Tabelle speichern.
CREATE TABLE churn_auto_predict_probabilities AS (SELECT customer_churn_predict_probabilities(Account_length, Area_code, VMail_message, Day_mins, Day_calls, Day_charge,Eve_mins, Eve_calls, Eve_charge, Night_mins, Night_calls, Night_charge,Intl_mins, Intl_calls, Intl_charge, Cust_serv_calls) AS prediction FROM customer_activity);
Sie können die Tabelle mit den Ergebnissen abfragen, um nur Vorhersagen mit einer Wahrscheinlichkeit von mehr als 0,7 zurückzugeben.
SELECT prediction.labels[0], prediction.probabilities[0] FROM churn_auto_predict_probabilities WHERE prediction.probabilities[0] > 0.7; labels | probabilities -----------+-------------- "False." | 0.8 "True." | 0.75
Mithilfe der Indexnotation können Sie die Wahrscheinlichkeit eines bestimmten Labels ermitteln. Im folgenden Beispiel werden die Wahrscheinlichkeiten aller True.
-Labels zurückgegeben.
SELECT label, index, p.prediction.probabilities[index] FROM churn_auto_predict_probabilities p, p.prediction.labels AS label AT index WHERE label='True.'; label | index | probabilities ---------+-------+--------------- "True." | 0 | 0.3 "True." | 0 | 0.2 "True." | 0 | 0.75
Im folgenden Beispiel werden alle Zeilen mit einem True
-Label mit einer Wahrscheinlichkeit von mehr als 0,7 zurückgegeben, einem Hinweis dafür, dass der Kunde wahrscheinlich abwandern wird.
SELECT prediction.labels[0], prediction.probabilities[0] FROM churn_auto_predict_probabilities WHERE prediction.probabilities[0] > 0.7 AND prediction.labels[0] = "True."; labels | probabilities -----------+-------------- "True." | 0.75