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.
Trainieren Sie ein Modell für maschinelles Lernen mit Amazon SageMaker
Dieses Beispielprojekt zeigt, wie ein Modell für maschinelles Lernen verwendet SageMaker und AWS Step Functions trainiert wird und wie ein Testdatensatz stapelweise transformiert wird.
In diesem Projekt verwendet Step Functions eine Lambda-Funktion, um einen Amazon S3 S3-Bucket mit einem Testdatensatz zu versorgen. Anschließend trainiert es ein Modell für maschinelles Lernen und führt mithilfe der SageMaker Serviceintegration eine Batch-Transformation durch.
Weitere Informationen zu SageMaker Step Functions Functions-Dienstintegrationen finden Sie im Folgenden:
Anmerkung
Für dieses Beispielprojekt können Gebühren anfallen.
Für neue AWS Benutzer ist ein kostenloses Nutzungskontingent verfügbar. Im Rahmen dieses Kontingents sind die Services bis zu einem bestimmten Nutzungsumfang kostenlos. Weitere Informationen zu den AWS Kosten und dem kostenlosen Kontingent finden Sie unter SageMaker Preise
Schritt 1: Erstellen Sie den Zustandsmaschine und stellen Sie Ressourcen bereit
-
Öffnen Sie die Step Functions Functions-Konsole
und wählen Sie Create State Machine. -
Geben Sie
Train a machine learning model
etwas in das Suchfeld ein und wählen Sie dann aus den zurückgegebenen Suchergebnissen die Option Modell für maschinelles Lernen trainieren aus. -
Wählen Sie Next (Weiter), um fortzufahren.
-
Step Functions listet die Funktionen auf, die in dem von Ihnen ausgewählten Beispielprojekt AWS -Services verwendet wurden. Außerdem wird ein Workflow-Diagramm für das Beispielprojekt angezeigt. Stellen Sie dieses Projekt für Sie bereit AWS-Konto oder verwenden Sie es als Ausgangspunkt für die Erstellung Ihrer eigenen Projekte. Je nachdem, wie Sie vorgehen möchten, wählen Sie „Demo ausführen“ oder „Darauf aufbauen“.
Dieses Beispielprojekt stellt die folgenden Ressourcen bereit:
-
Eine Funktion AWS Lambda
-
Ein Amazon Simple Storage Service (Amazon S3)-Bucket
-
Eine AWS Step Functions Staatsmaschine
-
Verwandte AWS Identity and Access Management (IAM) Rollen
Die folgende Abbildung zeigt das Workflow-Diagramm für das Beispielprojekt Train a machine learning model:
-
-
Wählen Sie Vorlage verwenden, um mit Ihrer Auswahl fortzufahren.
-
Führen Sie eine der folgenden Aktionen aus:
-
Wenn Sie Darauf aufbauen ausgewählt haben, erstellt Step Functions den Workflow-Prototyp, stellt jedoch nicht die Ressourcen in der Workflow-Definition bereit, sodass Sie Ihren Workflow-Prototyp weiterentwickeln können.
In Workflow Studio können Sie Ihrem Workflow-Prototyp zusätzliche Status hinzufügen. Entwurfsmodus Oder Sie können zu der wechseln, um den integrierten Code-Editor Codemodus zu verwenden, um die Amazon States Language (ASL) -Definition Ihrer Zustandsmaschine von der Step Functions Functions-Konsole aus zu bearbeiten.
Wichtig
Möglicherweise müssen Sie den Platzhalter Amazon Resource Name (ARN) für die im Beispielprojekt verwendeten Ressourcen aktualisieren, bevor Sie Ihren Workflow ausführen können.
-
Wenn Sie Eine Demo ausführen ausgewählt haben, erstellt Step Functions ein schreibgeschütztes Projekt, das eine AWS CloudFormation Vorlage verwendet, um die AWS Ressourcen in dieser Vorlage für Ihr Projekt bereitzustellen. AWS-Konto Sie können die State-Machine-Definition anzeigen, indem Sie den Codemodus wählen.
Wählen Sie Bereitstellen und ausführen, um das Projekt bereitzustellen und die Ressourcen zu erstellen.
Beachten Sie, dass die Bereitstellung bis zu 10 Minuten dauern kann, bis Ressourcen und IAM Berechtigungen erstellt sind. Während der Bereitstellung Ihrer Ressourcen können Sie den AWS CloudFormation Stack-ID-Link öffnen, um zu sehen, welche Ressourcen bereitgestellt werden.
Nachdem alle Ressourcen erstellt wurden, sollte das Projekt auf der Seite State Machines in der Konsole angezeigt werden.
Wichtig
Für jeden in der CloudFormation Vorlage verwendeten Dienst können Standardgebühren anfallen.
-
Schritt 2: Führen Sie die Zustandsmaschine aus
-
Wählen Sie auf der Seite State Machines Ihr Beispielprojekt aus.
-
Wählen Sie auf der Seite mit dem Beispielprojekt die Option Ausführung starten aus.
-
Gehen Sie im Dialogfeld Ausführung starten wie folgt vor:
-
(Optional) Um Ihre Ausführung zu identifizieren, können Sie einen Namen angeben oder den generierten Standardnamen für die Ausführung verwenden.
Anmerkung
Step Functions akzeptiert Namen für Zustandsmaschinen, Ausführungen, Aktivitäten und Bezeichnungen, die ASCII Nichtzeichen enthalten. Da Namen, die keine ASCII Zeichen enthalten, bei Amazon nicht funktionieren CloudWatch, empfehlen wir, nur ASCII Zeichen zu verwenden, damit Sie Kennzahlen verfolgen können. CloudWatch
-
(Optional) Geben Sie im Eingabefeld Eingabewerte im JSON Format ein, um Ihren Workflow auszuführen.
Wenn Sie sich dafür entschieden haben, eine Demo auszuführen, müssen Sie keine Ausführungseingaben angeben.
Anmerkung
Wenn das von Ihnen bereitgestellte Demo-Projekt vorab aufgefüllte Eingabedaten für die Ausführung enthält, verwenden Sie diese Eingabe, um die Zustandsmaschine auszuführen.
-
Wählen Sie Start execution (Ausführung starten) aus.
-
Die Step Functions Functions-Konsole leitet Sie zu einer Seite weiter, die mit Ihrer Ausführungs-ID betitelt ist. Diese Seite wird als Seite mit den Ausführungsdetails bezeichnet. Auf dieser Seite können Sie die Ausführungsergebnisse im Verlauf oder nach Abschluss der Ausführung überprüfen.
Um die Ausführungsergebnisse zu überprüfen, wählen Sie in der Diagrammansicht einzelne Status aus und wählen Sie dann die einzelnen Registerkarten im Einzelheiten zu den Schritten Bereich, um die Details der einzelnen Status, einschließlich Eingabe, Ausgabe und Definition, anzuzeigen. Einzelheiten zu den Ausführungsinformationen, die Sie auf der Seite mit den Ausführungsdetails einsehen können, finden Sie unterSeite mit den Ausführungsdetails — Übersicht über die Benutzeroberfläche.
-
Code des Zustandsautomaten aus diesem Beispiel
Die Zustandsmaschine in diesem Beispielprojekt integriert sich mit SageMaker und AWS Lambda durch direkte Übergabe von Parametern an diese Ressourcen und verwendet einen Amazon S3 S3-Bucket für die Trainingsdatenquelle und -ausgabe.
Sehen Sie sich diese Beispiel-Zustandsmaschine an, um zu sehen, wie Step Functions Lambda und SageMaker steuert.
Weitere Informationen darüber, wie AWS Step Functions Sie andere AWS Dienste steuern können, finden Sie unterIntegration anderer Dienste mit Step Functions.
{
"StartAt": "Generate dataset",
"States": {
"Generate dataset": {
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:TrainAndBatchTransform-SeedingFunction-17RNSOTG97HPV",
"Type": "Task",
"Next": "Train model (XGBoost)"
},
"Train model (XGBoost)": {
"Resource": "arn:aws:states:::sagemaker:createTrainingJob.sync",
"Parameters": {
"AlgorithmSpecification": {
"TrainingImage": "433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest",
"TrainingInputMode": "File"
},
"OutputDataConfig": {
"S3OutputPath": "s3://trainandbatchtransform-s3bucket-1jn1le6gadwfz/models"
},
"StoppingCondition": {
"MaxRuntimeInSeconds": 86400
},
"ResourceConfig": {
"InstanceCount": 1,
"InstanceType": "ml.m4.xlarge",
"VolumeSizeInGB": 30
},
"RoleArn": "arn:aws:iam::123456789012:role/TrainAndBatchTransform-SageMakerAPIExecutionRole-Y9IX3DLF6EUO",
"InputDataConfig": [
{
"DataSource": {
"S3DataSource": {
"S3DataDistributionType": "ShardedByS3Key",
"S3DataType": "S3Prefix",
"S3Uri": "s3://trainandbatchtransform-s3bucket-1jn1le6gadwfz/csv/train.csv"
}
},
"ChannelName": "train",
"ContentType": "text/csv"
}
],
"HyperParameters": {
"objective": "reg:logistic",
"eval_metric": "rmse",
"num_round": "5"
},
"TrainingJobName.$": "$$.Execution.Name"
},
"Type": "Task",
"Next": "Save Model"
},
"Save Model": {
"Parameters": {
"PrimaryContainer": {
"Image": "433757028032.dkr.ecr.us-west-2.amazonaws.com/xgboost:latest",
"Environment": {},
"ModelDataUrl.$": "$.ModelArtifacts.S3ModelArtifacts"
},
"ExecutionRoleArn": "arn:aws:iam::123456789012:role/TrainAndBatchTransform-SageMakerAPIExecutionRole-Y9IX3DLF6EUO",
"ModelName.$": "$.TrainingJobName"
},
"Resource": "arn:aws:states:::sagemaker:createModel",
"Type": "Task",
"Next": "Batch transform"
},
"Batch transform": {
"Type": "Task",
"Resource": "arn:aws:states:::sagemaker:createTransformJob.sync",
"Parameters": {
"ModelName.$": "$$.Execution.Name",
"TransformInput": {
"CompressionType": "None",
"ContentType": "text/csv",
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": "s3://trainandbatchtransform-s3bucket-1jn1le6gadwfz/csv/test.csv"
}
}
},
"TransformOutput": {
"S3OutputPath": "s3://trainandbatchtransform-s3bucket-1jn1le6gadwfz/output"
},
"TransformResources": {
"InstanceCount": 1,
"InstanceType": "ml.m4.xlarge"
},
"TransformJobName.$": "$$.Execution.Name"
},
"End": true
}
}
}
Informationen zur Konfiguration IAM bei der Verwendung von Step Functions mit anderen AWS Diensten finden Sie unterSo generiert Step Functions IAM Richtlinien für integrierte Dienste.
IAMBeispiel
Diese durch das Beispielprojekt generierten Richtlinien AWS Identity and Access Management (IAM) beinhalten die geringsten Rechte, die für die Ausführung der Zustandsmaschine und der zugehörigen Ressourcen erforderlich sind. Wir empfehlen, dass Sie nur die Berechtigungen in Ihre IAM Richtlinien aufnehmen, die erforderlich sind.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudwatch:PutMetricData",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:CreateLogGroup",
"logs:DescribeLogStreams",
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket",
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Die folgende Richtlinie ermöglicht es der Lambda-Funktion, den Amazon S3 S3-Bucket mit Beispieldaten zu versorgen.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::trainandbatchtransform-s3bucket-1jn1le6gadwfz/*",
"Effect": "Allow"
}
]
}
Informationen zur Konfiguration IAM bei der Verwendung von Step Functions mit anderen AWS Diensten finden Sie unterSo generiert Step Functions IAM Richtlinien für integrierte Dienste.