Fügen Sie einen Schritt hinzu - Amazon SageMaker

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.

Fügen Sie einen Schritt hinzu

Im Folgenden werden die Anforderungen der einzelnen Schritttypen beschrieben und eine Beispielimplementierung des Schritts sowie das Hinzufügen des Schritts zu einer Pipelines bereitgestellt. Dies sind keine funktionierenden Implementierungen, da sie nicht die benötigten Ressourcen und Eingaben bereitstellen. Ein Tutorial, das diese Schritte implementiert, finden Sie unter Pipelines, Aktionen.

Anmerkung

Sie können auch einen Schritt aus Ihrem lokalen Machine-Learning-Code erstellen, indem Sie ihn mit dem Decorator in einen Pipelines-Schritt konvertieren. @step Weitere Informationen finden Sie unter @step Dekorateur.

Amazon SageMaker Pipelines unterstützt die folgenden Schritttypen:

@step Dekorateur

Wenn Sie einen benutzerdefinierten ML-Job orchestrieren möchten, der erweiterte SageMaker Funktionen oder andere AWS Dienste in der drag-and-drop Pipelines-Benutzeroberfläche nutzt, verwenden Sie den. Führen Sie den Codeschritt aus

Mit dem Decorator können Sie aus lokalem Machine-Learning-Code einen Schritt erstellen. @step Nachdem Sie Ihren Code getestet haben, können Sie die Funktion in einen SageMaker Pipeline-Schritt konvertieren, indem Sie sie mit dem @step Decorator kommentieren. Pipelines erstellt eine Pipeline und führt sie aus, wenn Sie die Ausgabe der @step mit -dekorierten Funktion als Schritt an Ihre Pipeline übergeben. Sie können auch eine mehrstufige DAG Pipeline erstellen, die neben herkömmlichen Pipeline-Schritten auch eine oder mehrere Funktionen @step mit dekorierten Funktionen enthält. SageMaker Weitere Informationen zum Erstellen eines Schritts mit @step Decorator finden Sie unter. Lift-and-shift Python-Code mit dem @step -Decorator

In der drag-and-drop Pipelines-Benutzeroberfläche können Sie einen Codeschritt ausführen verwenden, um Ihren eigenen Code als Pipeline-Schritt auszuführen. Sie können eine Python-Funktion, ein Skript oder ein Notizbuch hochladen, das als Teil Ihrer Pipeline ausgeführt werden soll. Sie sollten diesen Schritt verwenden, wenn Sie einen benutzerdefinierten ML-Job orchestrieren möchten, der erweiterte SageMaker Funktionen oder andere AWS Dienste nutzt.

Der Schritt Code ausführen lädt Dateien in Ihren standardmäßigen Amazon S3 S3-Bucket für Amazon SageMaker hoch. Für diesen Bucket sind möglicherweise nicht die erforderlichen Cross-Origin Resource Sharing (CORS) -Berechtigungen festgelegt. Weitere Informationen zur Konfiguration von CORS Berechtigungen finden Sie unterCORSAnforderung für Eingabe-Bilddaten.

Der Schritt „Code ausführen“ verwendet einen SageMaker Amazon-Schulungsjob, um Ihren Code auszuführen. Stellen Sie sicher, dass Ihre IAM Rolle über die sagemaker:CreateTrainingJob API Berechtigungen sagemaker:DescribeTrainingJob und verfügt. Weitere Informationen zu allen erforderlichen Berechtigungen für Amazon SageMaker und deren Einrichtung finden Sie unter SageMaker APIAmazon-Berechtigungen: Referenz zu Aktionen, Berechtigungen und Ressourcen.

Gehen Sie wie folgt vor, um einer Pipeline mithilfe des Pipeline Designers einen Schritt zum Ausführen von Code hinzuzufügen:

  1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgenStarten Sie Amazon SageMaker Studio.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie Leer aus.

  5. Wählen Sie in der linken Seitenleiste Code ausführen und ziehen Sie ihn auf die Arbeitsfläche.

  6. Wählen Sie auf der Arbeitsfläche den Schritt Code ausführen aus, den Sie hinzugefügt haben.

  7. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus.

  8. Sie können eine einzelne Datei hochladen, um sie auszuführen, oder einen komprimierten Ordner hochladen, der mehrere Artefakte enthält.

  9. Für das Hochladen einzelner Dateien können Sie optionale Parameter für Notebooks, Python-Funktionen oder Skripte angeben.

  10. Bei der Bereitstellung von Python-Funktionen muss ein Handler im Format bereitgestellt werden file.py:<function_name>

  11. Für komprimierte Ordner-Uploads müssen relative Pfade zu Ihrem Code angegeben werden, und Sie können optional Pfade zu einer requirements.txt Datei oder einem Initialisierungsskript innerhalb des komprimierten Ordners angeben.

  12. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem von Ihnen hinzugefügten Schritt „Code ausführen“ steht, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Schritt „Code ausführen“, um eine Kante zu erstellen.

  13. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar auf den Schritt „Code ausführen“ folgt, klicken Sie auf den Schritt „Code ausführen“ und ziehen Sie den Cursor vom Schritt „Code ausführen“ zu dem Schritt, um eine Kante zu erstellen. Ausgaben von Execute-Codeschritten können für Python-Funktionen referenziert werden.

Verwenden Sie einen Verarbeitungsschritt, um einen Verarbeitungsauftrag für die Datenverarbeitung zu erstellen. Weitere Informationen zur Verarbeitung von Auftrags finden Sie unter Daten verarbeiten und Modelle auswerten.

Pipeline Designer

Gehen Sie wie folgt vor, um einer Pipeline mithilfe des Pipeline Designers einen Verarbeitungsschritt hinzuzufügen:

  1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgenStarten Sie Amazon SageMaker Studio.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie in der linken Seitenleiste die Option Daten verarbeiten aus und ziehen Sie sie auf die Leinwand.

  5. Wählen Sie auf der Arbeitsfläche den Schritt „Daten verarbeiten“ aus, den Sie hinzugefügt haben.

  6. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus. Informationen zu den Feldern in diesen Tabs finden Sie unter sagemaker.workflow.steps. ProcessingStep.

  7. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem von Ihnen hinzugefügten Prozessdatenschritt liegt, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Prozessdatenschritt, um eine Kante zu erstellen.

  8. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den von Ihnen hinzugefügten Prozessdatenschritt folgt, klicken Sie und ziehen Sie den Cursor vom Prozessdatenschritt zu dem Schritt, um eine Kante zu erstellen.

SageMaker Python SDK

Ein Verarbeitungsschritt erfordert einen Prozessor, ein Python-Skript, das den Verarbeitungscode definiert, Ausgaben für die Verarbeitung und Auftrag-Argumente. Das folgende Beispiel zeigt, wie man eine ProcessingStep-Definition erstellt.

from sagemaker.sklearn.processing import SKLearnProcessor sklearn_processor = SKLearnProcessor(framework_version='1.0-1', role=<role>, instance_type='ml.m5.xlarge', instance_count=1)
from sagemaker.processing import ProcessingInput, ProcessingOutput from sagemaker.workflow.steps import ProcessingStep inputs = [ ProcessingInput(source=<input_data>, destination="/opt/ml/processing/input"), ] outputs = [ ProcessingOutput(output_name="train", source="/opt/ml/processing/train"), ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"), ProcessingOutput(output_name="test", source="/opt/ml/processing/test") ] step_process = ProcessingStep( name="AbaloneProcess", step_args = sklearn_processor.run(inputs=inputs, outputs=outputs, code="abalone/preprocessing.py") )

Übergeben Sie Laufzeitparameter

Das folgende Beispiel zeigt, wie Laufzeitparameter von einem PySpark Prozessor an einen ProcessingStep übergeben werden.

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.spark.processing import PySparkProcessor from sagemaker.processing import ProcessingInput, ProcessingOutput from sagemaker.workflow.steps import ProcessingStep pipeline_session = PipelineSession() pyspark_processor = PySparkProcessor( framework_version='2.4', role=<role>, instance_type='ml.m5.xlarge', instance_count=1, sagemaker_session=pipeline_session, ) step_args = pyspark_processor.run( inputs=[ProcessingInput(source=<input_data>, destination="/opt/ml/processing/input"),], outputs=[ ProcessingOutput(output_name="train", source="/opt/ml/processing/train"), ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"), ProcessingOutput(output_name="test", source="/opt/ml/processing/test") ], code="preprocess.py", arguments=None, ) step_process = ProcessingStep( name="AbaloneProcess", step_args=step_args, )

Weitere Informationen zu den Anforderungen für Verarbeitungsschritte finden Sie unter sagemaker.workflow.steps. ProcessingStepDokumentation. Ein ausführliches Beispiel finden Sie im Beispielnotizbuch Orchestrate Jobs to Train and Evaluate Models with Amazon SageMaker Pipelines. Der Abschnitt „Definieren Sie einen Verarbeitungsschritt für Feature Engineering“ enthält weitere Informationen.

Sie verwenden einen Trainingsschritt, um einen Trainingsauftrag zum Trainieren eines Modells zu erstellen. Weitere Informationen zu Ausbildungsjobs finden Sie unter Train a Model with Amazon SageMaker.

Ein Trainingsschritt erfordert einen Schätzer sowie Eingaben von Trainings- und Validierungsdaten.

Pipeline Designer

Gehen Sie wie folgt vor, um einer Pipeline mithilfe des Pipeline Designers einen Trainingsschritt hinzuzufügen:

  1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgenStarten Sie Amazon SageMaker Studio.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie Leer aus.

  5. Wählen Sie in der linken Seitenleiste Train Model und ziehen Sie es auf die Leinwand.

  6. Wählen Sie auf der Leinwand den Schritt Train Model aus, den Sie hinzugefügt haben.

  7. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus. Informationen zu den Feldern in diesen Tabs finden Sie unter sagemaker.workflow.steps. TrainingStep.

  8. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem Schritt Modell trainieren, den Sie hinzugefügt haben, klicken und ziehen Sie den Cursor von diesem Schritt zum Schritt Modell trainieren, um eine Kante zu erstellen.

  9. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den Schritt Modell trainieren folgt, klicken Sie und ziehen Sie den Cursor vom Schritt Modell trainieren zu dem Schritt, um eine Kante zu erstellen.

SageMaker Python SDK

Das folgende Beispiel zeigt, wie Sie eine TrainingStep-Definition erstellen. Weitere Informationen zu den Anforderungen für Trainingsschritte finden Sie unter sagemaker.workflow.steps. TrainingStepDokumentation.

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.inputs import TrainingInput from sagemaker.workflow.steps import TrainingStep from sagemaker.xgboost.estimator import XGBoost pipeline_session = PipelineSession() xgb_estimator = XGBoost(..., sagemaker_session=pipeline_session) step_args = xgb_estimator.fit( inputs={ "train": TrainingInput( s3_data=step_process.properties.ProcessingOutputConfig.Outputs[ "train" ].S3Output.S3Uri, content_type="text/csv" ), "validation": TrainingInput( s3_data=step_process.properties.ProcessingOutputConfig.Outputs[ "validation" ].S3Output.S3Uri, content_type="text/csv" ) } ) step_train = TrainingStep( name="TrainAbaloneModel", step_args=step_args, )

Sie verwenden einen Optimierungsschritt, um einen Hyperparameter-Tuning-Job zu erstellen, der auch als Hyperparameter-Optimierung () HPO bezeichnet wird. Ein Hyperparameter-Optimierungsjob führt mehrere Trainingsjobs aus, wobei jeder Job eine Modellversion erzeugt. Weitere Informationen zur Abstimmung der Hyperparameter finden Sie unter Automatische Modelloptimierung mit SageMaker.

Der Optimierungsjob ist mit dem SageMaker Experiment für die Pipeline verknüpft, wobei die Trainingsjobs als Versuche erstellt werden. Weitere Informationen finden Sie unter Integration von Experimenten.

Für einen Optimierungsschritt sind Eingaben HyperparameterTunerund Trainingseingaben erforderlich. Sie können frühere Abstimmungsaufträge erneut trainieren, indem Sie den warm_start_config-Parameter des HyperparameterTuner angeben. Weitere Informationen zur Hyperparameteroptimierung und zum Warmstart finden Sie unter Durchführen eines Hyperparameter-Optimierungsauftrags mit Warmstart.

Sie verwenden die Methode get_top_model_s3_uri der Datei sagemaker.workflow.steps. TuningStepKlasse, um das Modellartefakt aus einer der leistungsstärksten Modellversionen abzurufen. Ein Notizbuch, das zeigt, wie ein Tuning-Schritt in einer SageMaker Pipeline verwendet wird, finden Sie unter sagemaker-pipelines-tuning-step .ipynb.

Wichtig

Optimierungsschritte wurden in Amazon SageMaker Python SDK v2.48.0 und Amazon SageMaker Studio Classic v3.8.0 eingeführt. Sie müssen Studio Classic aktualisieren, bevor Sie einen Optimierungsschritt verwenden, sonst wird die Pipeline DAG nicht angezeigt. Informationen zum Aktualisieren von Studio Classic finden Sie unterFahren Sie SageMaker Studio Classic herunter und aktualisieren Sie es.

Das folgende Beispiel zeigt, wie man eine TuningStep-Definition erstellt.

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.tuner import HyperparameterTuner from sagemaker.inputs import TrainingInput from sagemaker.workflow.steps import TuningStep tuner = HyperparameterTuner(..., sagemaker_session=PipelineSession()) step_tuning = TuningStep( name = "HPTuning", step_args = tuner.fit(inputs=TrainingInput(s3_data="s3://amzn-s3-demo-bucket/my-data")) )

Holen Sie sich die beste Modellversion

Das folgende Beispiel zeigt, wie Sie mit der get_top_model_s3_uri Methode die beste Modellversion aus dem Tuning-Auftrag abrufen können. Es sind höchstens die 50 leistungsstärksten Versionen verfügbar, geordnet nach HyperParameterTuningJobObjective. Das Argument top_k ist ein Index für die Versionen, wobei top_k=0 die leistungsstärkste und top_k=49 die leistungsschwächste Version ist.

best_model = Model( image_uri=image_uri, model_data=step_tuning.get_top_model_s3_uri( top_k=0, s3_bucket=sagemaker_session.default_bucket() ), ... )

Weitere Informationen zu den Anforderungen an die Optimierungsschritte finden Sie unter sagemaker.workflow.steps. TuningStepDokumentation.

Mit der Feinabstimmung wird ein vortrainiertes Fundamentmodell von Amazon SageMaker JumpStart anhand eines neuen Datensatzes trainiert. Dieser Prozess, der auch als Transferlernen bezeichnet wird, kann genaue Modelle mit kleineren Datensätzen und weniger Trainingszeit erzeugen. Bei der Feinabstimmung eines Modells können Sie den Standarddatensatz verwenden oder Ihre eigenen Daten auswählen. Weitere Informationen zur Feinabstimmung eines Basismodells finden Sie JumpStart unter. Feinabstimmung eines Modells

Bei der Feinabstimmung wird ein SageMaker Amazon-Schulungsjob verwendet, um Ihr Modell anzupassen. Stellen Sie sicher, dass Ihre IAM Rolle über die sagemaker:DescribeTrainingJob sagemaker:CreateTrainingJob API erforderlichen Berechtigungen verfügt, um die Feinabstimmungsaufgabe in Ihrer Pipeline auszuführen. Weitere Informationen zu den erforderlichen Berechtigungen für Amazon SageMaker und deren Einrichtung finden Sie unter SageMaker APIAmazon-Berechtigungen: Referenz zu Aktionen, Berechtigungen und Ressourcen.

Gehen Sie wie folgt vor, um Ihrer Pipeline mithilfe des drag-and-drop Editors einen Schritt zur Feinabstimmung des Modells hinzuzufügen:

  1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter folgen. Starten Sie Amazon SageMaker Studio

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie Leer aus.

  5. Wählen Sie in der linken Seitenleiste die Option Modell feinabstimmen und ziehen Sie es auf die Leinwand.

  6. Wählen Sie auf der Arbeitsfläche den hinzugefügten Schritt zur Feinabstimmung des Modells aus.

  7. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus.

  8. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar vor dem Schritt „Modell feinabstimmen“ liegt, klicken Sie auf den Schritt „Modell feinabstimmen“ und ziehen Sie den Cursor von diesem Schritt zum Schritt „Modell feinabstimmen“, um eine Kante zu erstellen.

  9. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar auf den Schritt „Modell feinabstimmen“ folgt, klicken Sie auf den Schritt „Modell feinabstimmen“ und ziehen Sie den Cursor vom Schritt „Modell feinabstimmen“ zu dem Schritt, um eine Kante zu erstellen.

Verwenden Sie AutoMLAPI, um einen AutoML-Job zum automatischen Trainieren eines Modells zu erstellen. Weitere Informationen zu AutoML-Jobs finden Sie unter Automatisieren der Modellentwicklung mit Amazon SageMaker Autopilot.

Anmerkung

Derzeit unterstützt der AutoML-Schritt nur den Ensembling-Trainingsmodus.

Das folgende Beispiel zeigt, wie eine Definition mit AutoMLStep erstellt werden kann.

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.workflow.automl_step import AutoMLStep pipeline_session = PipelineSession() auto_ml = AutoML(..., role="<role>", target_attribute_name="my_target_attribute_name", mode="ENSEMBLING", sagemaker_session=pipeline_session) input_training = AutoMLInput( inputs="s3://amzn-s3-demo-bucket/my-training-data", target_attribute_name="my_target_attribute_name", channel_type="training", ) input_validation = AutoMLInput( inputs="s3://amzn-s3-demo-bucket/my-validation-data", target_attribute_name="my_target_attribute_name", channel_type="validation", ) step_args = auto_ml.fit( inputs=[input_training, input_validation] ) step_automl = AutoMLStep( name="AutoMLStep", step_args=step_args, )

Holen Sie sich die beste Modellversion

Der AutoML-Schritt trainiert automatisch mehrere Modellkandidaten. Rufen Sie das Modell mit der besten Zielmetrik aus dem AutoML-Job ab, indem Sie die folgende get_best_auto_ml_model Methode verwenden. Sie müssen auch an verwenden, IAM role um auf Modellartefakte zuzugreifen.

best_model = step_automl.get_best_auto_ml_model(role=<role>)

Weitere Informationen finden Sie im AutoML-Schritt in SageMaker PythonSDK.

Verwenden Sie aModelStep, um ein SageMaker Modell zu erstellen oder zu registrieren. Weitere Informationen zu den ModelStep Anforderungen finden Sie im sagemaker.workflow.model_step. ModelStepDokumentation.

Erstellen eines Modells

Sie können a verwendenModelStep, um ein SageMaker Modell zu erstellen. A ModelStep benötigt Modellartefakte und Informationen über den SageMaker Instanztyp, den Sie zur Erstellung des Modells verwenden müssen. Weitere Informationen zu SageMaker Modellen finden Sie unter Train a Model with Amazon SageMaker.

Das folgende Beispiel zeigt, wie man eine ModelStep-Definition erstellt.

from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.model import Model from sagemaker.workflow.model_step import ModelStep step_train = TrainingStep(...) model = Model( image_uri=pytorch_estimator.training_image_uri(), model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts, sagemaker_session=PipelineSession(), role=role, ) step_model_create = ModelStep( name="MyModelCreationStep", step_args=model.create(instance_type="ml.m5.xlarge"), )

Registrieren eines Modells

Sie können a verwendenModelStep, um ein sagemaker.model.Model oder a sagemaker.pipeline.PipelineModel bei der SageMaker Amazon-Modellregistrierung zu registrieren. Ein PipelineModel stellt eine Inferenzpipeline dar, ein Modell, das aus einer linearen Abfolge von Containern besteht, die Inferenzanforderungen verarbeiten. Weitere Informationen über die Registrierung eines Modells finden Sie unter Modellregistrierung und Bereitstellung mit Model Registry.

Das folgende Beispiel zeigt, wie Sie eine ModelStep erstellen, die eine PipelineModel registriert.

import time from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.sklearn import SKLearnModel from sagemaker.xgboost import XGBoostModel pipeline_session = PipelineSession() code_location = 's3://{0}/{1}/code'.format(bucket_name, prefix) sklearn_model = SKLearnModel( model_data=processing_step.properties.ProcessingOutputConfig.Outputs['model'].S3Output.S3Uri, entry_point='inference.py', source_dir='sklearn_source_dir/', code_location=code_location, framework_version='1.0-1', role=role, sagemaker_session=pipeline_session, py_version='py3' ) xgboost_model = XGBoostModel( model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts, entry_point='inference.py', source_dir='xgboost_source_dir/', code_location=code_location, framework_version='0.90-2', py_version='py3', sagemaker_session=pipeline_session, role=role ) from sagemaker.workflow.model_step import ModelStep from sagemaker import PipelineModel pipeline_model = PipelineModel( models=[sklearn_model, xgboost_model], role=role,sagemaker_session=pipeline_session, ) register_model_step_args = pipeline_model.register( content_types=["application/json"], response_types=["application/json"], inference_instances=["ml.t2.medium", "ml.m5.xlarge"], transform_instances=["ml.m5.xlarge"], model_package_group_name='sipgroup', ) step_model_registration = ModelStep( name="AbaloneRegisterModel", step_args=register_model_step_args, )

Sie verwenden den Schritt Modell erstellen, um ein SageMaker Modell zu erstellen. Weitere Informationen zu SageMaker Modellen finden Sie unterTrainiere ein Modell mit Amazon SageMaker.

Ein Schritt zum Erstellen eines Modells erfordert Modellartefakte und Informationen über den SageMaker Instanztyp, den Sie zum Erstellen des Modells verwenden müssen. Die folgenden Beispiele zeigen, wie Sie eine Schrittdefinition „Modell erstellen“ erstellen. Weitere Informationen zu den Anforderungen für den Schritt Modell erstellen finden Sie unter sagemaker.workflow.steps. CreateModelStepDokumentation.

Pipeline Designer

Gehen Sie wie folgt vor, um Ihrer Pipeline einen Schritt zum Erstellen eines Modells hinzuzufügen:

  1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter folgenStarten Sie Amazon SageMaker Studio.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie Leer aus.

  5. Wählen Sie in der linken Seitenleiste Modell erstellen und ziehen Sie es auf die Leinwand.

  6. Wählen Sie auf der Leinwand den Schritt Modell erstellen aus, den Sie hinzugefügt haben.

  7. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus. Informationen zu den Feldern in diesen Tabs finden Sie unter sagemaker.workflow.steps. CreateModelStep.

  8. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem Schritt Modell erstellen liegt, den Sie hinzugefügt haben, klicken Sie auf den Schritt Modell erstellen und ziehen Sie den Cursor von diesem Schritt zum Schritt Modell erstellen, um eine Kante zu erstellen.

  9. Wenn die Leinwand einen Schritt enthält, der unmittelbar auf den Schritt Modell erstellen folgt, klicken Sie auf den Schritt Modell erstellen und ziehen Sie den Cursor vom Schritt Modell erstellen zu dem Schritt, um eine Kante zu erstellen.

SageMaker Python SDK
Wichtig

Wir empfehlen Schritt „Modell“ die Verwendung zur Erstellung von Modellen ab Version 2.90.0 von Python. SageMaker SDK CreateModelStepfunktioniert weiterhin in früheren Versionen von SageMaker PythonSDK, wird aber nicht mehr aktiv unterstützt.

from sagemaker.workflow.steps import CreateModelStep step_create_model = CreateModelStep( name="AbaloneCreateModel", model=best_model, inputs=inputs )

Mit dem Schritt Modell registrieren wird ein Modell in der SageMaker Modellregistrierung registriert.

Pipeline Designer

Gehen Sie wie folgt vor, um ein Modell aus einer Pipeline mit dem Pipeline Designer zu registrieren:

  1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgenStarten Sie Amazon SageMaker Studio.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie Leer aus.

  5. Wählen Sie in der linken Seitenleiste Modell registrieren und ziehen Sie es auf die Arbeitsfläche.

  6. Wählen Sie auf der Arbeitsfläche den Schritt Modell registrieren aus, den Sie hinzugefügt haben.

  7. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus. Informationen zu den Feldern in diesen Tabs finden Sie unter sagemaker.workflow.step_collections. RegisterModel.

  8. Wenn die Zeichenfläche einen Schritt enthält, der dem Schritt Modell registrieren, den Sie hinzugefügt haben, unmittelbar vorausgeht, klicken Sie auf den Schritt Modell registrieren und ziehen Sie den Cursor von diesem Schritt zum Schritt Modell registrieren, um eine Kante zu erstellen.

  9. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar auf den Schritt Modell registrieren folgt, klicken Sie auf den Schritt Modell registrieren und ziehen Sie den Cursor vom Schritt Modell registrieren zu dem Schritt, um eine Kante zu erstellen.

SageMaker Python SDK
Wichtig

Wir empfehlen Schritt „Modell“ die Verwendung zur Registrierung von Modellen ab Version 2.90.0 von Python. SageMaker SDK RegisterModelfunktioniert weiterhin in früheren Versionen von SageMaker PythonSDK, wird aber nicht mehr aktiv unterstützt.

Sie verwenden einen RegisterModel Schritt, um ein SageMaker.Model.Model oder eine Sagemaker.Pipeline zu registrieren. PipelineModelmit der SageMaker Amazon-Modellregistrierung. Ein PipelineModel stellt eine Inferenzpipeline dar, ein Modell, das aus einer linearen Abfolge von Containern besteht, die Inferenzanforderungen verarbeiten.

Weitere Informationen über die Registrierung eines Modells finden Sie unter Modellregistrierung und Bereitstellung mit Model Registry. Weitere Informationen zu den RegisterModel Schrittanforderungen finden Sie unter sagemaker.workflow.step_collections. RegisterModelDokumentation.

Das folgende Beispiel zeigt, wie Sie einen Schritt RegisterModel erstellen, der eine PipelineModel registriert.

import time from sagemaker.sklearn import SKLearnModel from sagemaker.xgboost import XGBoostModel code_location = 's3://{0}/{1}/code'.format(bucket_name, prefix) sklearn_model = SKLearnModel(model_data=processing_step.properties.ProcessingOutputConfig.Outputs['model'].S3Output.S3Uri, entry_point='inference.py', source_dir='sklearn_source_dir/', code_location=code_location, framework_version='1.0-1', role=role, sagemaker_session=sagemaker_session, py_version='py3') xgboost_model = XGBoostModel(model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts, entry_point='inference.py', source_dir='xgboost_source_dir/', code_location=code_location, framework_version='0.90-2', py_version='py3', sagemaker_session=sagemaker_session, role=role) from sagemaker.workflow.step_collections import RegisterModel from sagemaker import PipelineModel pipeline_model = PipelineModel(models=[sklearn_model,xgboost_model],role=role,sagemaker_session=sagemaker_session) step_register = RegisterModel( name="AbaloneRegisterModel", model=pipeline_model, content_types=["application/json"], response_types=["application/json"], inference_instances=["ml.t2.medium", "ml.m5.xlarge"], transform_instances=["ml.m5.xlarge"], model_package_group_name='sipgroup', )

Wenn model nicht angegeben, benötigt der Registermodellschritt einen Schätzer, wie im folgenden Beispiel gezeigt.

from sagemaker.workflow.step_collections import RegisterModel step_register = RegisterModel( name="AbaloneRegisterModel", estimator=xgb_train, model_data=step_train.properties.ModelArtifacts.S3ModelArtifacts, content_types=["text/csv"], response_types=["text/csv"], inference_instances=["ml.t2.medium", "ml.m5.xlarge"], transform_instances=["ml.m5.xlarge"], model_package_group_name=model_package_group_name, approval_status=model_approval_status, model_metrics=model_metrics )

Verwenden Sie im Pipeline Designer den Schritt Modell bereitstellen (Endpunkt), um Ihr Modell auf einem Endpunkt bereitzustellen. Sie können einen neuen Endpunkt erstellen oder einen vorhandenen Endpunkt verwenden. Inferenz in Echtzeit ist ideal für Inferenz-Workloads, bei denen interaktive Echtzeitanforderungen mit geringer Latenz erfüllt werden müssen. Sie können Ihr Modell für SageMaker Hosting-Dienste bereitstellen und erhalten einen Echtzeit-Endpunkt, der für Inferenzen verwendet werden kann. Diese Endpunkte werden vollständig verwaltet und unterstützen die auto-scaling. Weitere Informationen über Inferenz in SageMaker Echtzeit finden Sie unter. Echtzeit-Inferenz

Bevor Sie Ihrer Pipeline einen Schritt für das Bereitstellungsmodell hinzufügen, stellen Sie sicher, dass Ihre IAM Rolle über die folgenden Berechtigungen verfügt:

  • sagemaker:CreateModel

  • sagemaker:CreateEndpointConfig

  • sagemaker:CreateEndpoint

  • sagemaker:UpdateEndpoint

  • sagemaker:DescribeModel

  • sagemaker:DescribeEndpointConfig

  • sagemaker:DescribeEndpoint

Weitere Informationen zu allen erforderlichen Berechtigungen für SageMaker und deren Einrichtung finden Sie unter SageMaker APIAmazon-Berechtigungen: Referenz zu Aktionen, Berechtigungen und Ressourcen.

Gehen Sie wie folgt vor, um Ihrer Pipeline im drag-and-drop Editor einen Schritt zur Modellbereitstellung hinzuzufügen:

  1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter folgenStarten Sie Amazon SageMaker Studio.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie Leer aus.

  5. Wählen Sie in der linken Seitenleiste Modell bereitstellen (Endpunkt) und ziehen Sie es auf die Leinwand.

  6. Wählen Sie auf der Arbeitsfläche den Schritt Modell bereitstellen (Endpunkt) aus, den Sie hinzugefügt haben.

  7. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus.

  8. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem von Ihnen hinzugefügten Schritt Modell bereitstellen (Endpunkt) liegt, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Schritt Modell bereitstellen (Endpunkt), um eine Kante zu erstellen.

  9. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den Schritt Modell bereitstellen (Endpunkt) folgt, klicken Sie auf den Schritt Modell bereitstellen (Endpunkt) und ziehen Sie den Cursor vom Schritt Modell bereitstellen (Endpunkt) auf den Schritt zum Erstellen einer Kante.

Sie verwenden einen Transformationsschritt für die Batch-Transformation, um die Inferenz für einen gesamten Datensatz durchzuführen. Weitere Informationen zur Batch-Transformation finden Sie unter Batch-Transformationen mit Inferenz-Pipelines.

Ein Transformationsschritt erfordert einen Transformator und die Daten, für die die Batch-Transformation ausgeführt werden soll. Das folgende Beispiel zeigt, wie eine Transform-Schrittdefinition erstellt wird. Weitere Informationen zu den Anforderungen für Transform-Schritte finden Sie unter sagemaker.workflow.steps. TransformStepDokumentation.

Pipeline Designer

Gehen Sie wie folgt vor, um Ihrer Pipeline mithilfe des drag-and-drop visuellen Editors einen Batch-Transformationsschritt hinzuzufügen:

  1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter folgenStarten Sie Amazon SageMaker Studio.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie Leer aus.

  5. Wählen Sie in der linken Seitenleiste Modell bereitstellen (Batch-Transformation) und ziehen Sie es auf die Leinwand.

  6. Wählen Sie auf der Arbeitsfläche den Schritt Modell bereitstellen (Batch-Transformation) aus, den Sie hinzugefügt haben.

  7. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus. Informationen zu den Feldern in diesen Tabs finden Sie unter sagemaker.workflow.steps. TransformStep.

  8. Wenn die Arbeitsfläche einen Schritt enthält, der dem Schritt Modell bereitstellen (Batch-Transformation) unmittelbar vorausgeht, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Schritt Modell bereitstellen (Batch-Transformation), um eine Kante zu erstellen.

  9. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den Schritt Modell bereitstellen (Batch-Transformation) folgt, klicken Sie auf den Schritt Modell bereitstellen (Batch-Transformation) und ziehen Sie den Cursor vom Schritt Modell bereitstellen (Batch-Transformation) zu dem Schritt, um eine Kante zu erstellen.

SageMaker Python SDK
from sagemaker.workflow.pipeline_context import PipelineSession from sagemaker.transformer import Transformer from sagemaker.inputs import TransformInput from sagemaker.workflow.steps import TransformStep transformer = Transformer(..., sagemaker_session=PipelineSession()) step_transform = TransformStep( name="AbaloneTransform", step_args=transformer.transform(data="s3://amzn-s3-demo-bucket/my-data"), )

Sie verwenden einen Bedingungsschritt, um den Zustand der Schritteigenschaften zu bewerten, um zu beurteilen, welche Maßnahme als Nächstes in der Pipeline ergriffen werden sollte.

Ein Konditionsschritt erfordert:

  • Eine Liste von Bedingungen.

  • Eine Liste von Schritten, die ausgeführt werden müssen, wenn die Bedingung erfüllt ist. true

  • Eine Liste von Schritten, die ausgeführt werden müssen, wenn die Bedingung erfüllt ist. false

Pipeline Designer

Gehen Sie wie folgt vor, um einer Pipeline mithilfe des Pipeline-Designers einen Bedingungsschritt hinzuzufügen:

  1. Öffnen Sie die Amazon SageMaker Studio-Konsole, indem Sie den Anweisungen unter folgenStarten Sie Amazon SageMaker Studio.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie Leer aus.

  5. Wähle in der linken Seitenleiste „Bedingung“ und ziehe sie auf die Leinwand.

  6. Wählen Sie auf der Leinwand den Schritt „Bedingung“ aus, den Sie hinzugefügt haben.

  7. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus. Informationen zu den Feldern in diesen Tabs finden Sie unter sagemaker.workflow.condition_step. ConditionStep.

  8. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar vor dem Schritt „Bedingung“ liegt, den Sie hinzugefügt haben, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Schritt „Bedingung“, um eine Kante zu erstellen.

  9. Wenn die Zeichenfläche einen Schritt enthält, der unmittelbar auf den Schritt „Bedingung“ folgt, klicken Sie auf den Schritt „Bedingung“ und ziehen Sie den Cursor vom Schritt „Bedingung“ zu dem Schritt, um eine Kante zu erstellen.

SageMaker Python SDK

Das folgende Beispiel zeigt, wie Sie eine ConditionStep-Definition erstellen.

Einschränkungen

  • Pipelines unterstützt die Verwendung von verschachtelten Bedingungsschritten nicht. Sie können einen Bedingungsschritt nicht als Eingabe für einen anderen Bedingungsschritt übergeben.

  • Ein Bedingungsschritt kann nicht identische Schritte in beiden Zweigen verwenden. Wenn Sie in beiden Zweigen dieselbe Schrittfunktionalität benötigen, duplizieren Sie den Schritt und geben Sie ihm einen anderen Namen.

from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo from sagemaker.workflow.condition_step import ConditionStep from sagemaker.workflow.functions import JsonGet cond_lte = ConditionLessThanOrEqualTo( left=JsonGet( step_name=step_eval.name, property_file=evaluation_report, json_path="regression_metrics.mse.value" ), right=6.0 ) step_cond = ConditionStep( name="AbaloneMSECond", conditions=[cond_lte], if_steps=[step_register, step_create_model, step_transform], else_steps=[] )

Weitere Informationen zu den ConditionStep Anforderungen finden Sie unter sagemaker.workflow.condition_step. ConditionStepAPIReferenz. Weitere Informationen zu unterstützten Bedingungen finden Sie unter Amazon SageMaker Pipelines — Conditions in der SageMaker SDK Python-Dokumentation.

Verwenden Sie einen Callback Schritt, um Ihrem Workflow zusätzliche Prozesse und AWS Services hinzuzufügen, die nicht direkt von Amazon SageMaker Pipelines bereitgestellt werden. Wenn ein Callback Schritt ausgeführt wird, erfolgt das folgende Verfahren:

  • Pipelines sendet eine Nachricht an eine vom Kunden angegebene Amazon Simple Queue Service (AmazonSQS) -Warteschlange. Die Nachricht enthält ein von Pipelines generiertes Token und eine vom Kunden bereitgestellte Liste von Eingabeparametern. Nach dem Senden der Nachricht wartet Pipelines auf eine Antwort des Kunden.

  • Der Kunde ruft die Nachricht aus der SQS Amazon-Warteschlange ab und startet seinen benutzerdefinierten Prozess.

  • Wenn der Vorgang abgeschlossen ist, ruft der Kunde eine der folgenden Optionen an APIs und übermittelt das von Pipelines generierte Token:

  • Der API Aufruf veranlasst Pipelines, entweder den Pipeline-Prozess fortzusetzen oder den Prozess fehlschlagen zu lassen.

Weitere Informationen zu den Callback Schrittanforderungen finden Sie unter sagemaker.workflow.callback_step. CallbackStepDokumentation. Eine vollständige Lösung finden Sie unter Erweitern von SageMaker Pipelines um benutzerdefinierte Schritte mithilfe von Callback-Schritten.

Wichtig

CallbackSchritte wurden in Amazon SageMaker Python SDK v2.45.0 und Amazon SageMaker Studio Classic v3.6.2 eingeführt. Sie müssen Studio Classic aktualisieren, bevor Sie einen Callback Schritt verwenden können. Andernfalls wird die Pipeline DAG nicht angezeigt. Informationen zum Aktualisieren von Studio Classic finden Sie unterFahren Sie SageMaker Studio Classic herunter und aktualisieren Sie es.

Das folgende Beispiel zeigt eine Implementierung des vorherigen Verfahrens.

from sagemaker.workflow.callback_step import CallbackStep step_callback = CallbackStep( name="MyCallbackStep", sqs_queue_url="https://sqs.us-east-2.amazonaws.com/012345678901/MyCallbackQueue", inputs={...}, outputs=[...] ) callback_handler_code = ' import boto3 import json def handler(event, context): sagemaker_client=boto3.client("sagemaker") for record in event["Records"]: payload=json.loads(record["body"]) token=payload["token"] # Custom processing # Call SageMaker to complete the step sagemaker_client.send_pipeline_execution_step_success( CallbackToken=token, OutputParameters={...} ) '
Anmerkung

Die Ausgabeparameter für CallbackStep sollten nicht verschachtelt sein. Wenn Sie beispielsweise ein verschachteltes Wörterbuch als Ausgabeparameter verwenden, wird das Wörterbuch als eine einzelne Zeichenfolge behandelt (z. B. {"output1": "{\"nested_output1\":\"my-output\"}"}). Wenn Sie einen verschachtelten Wert angeben und versuchen, auf einen bestimmten Ausgabeparameter zu verweisen, wird ein Client-Fehler ausgegeben, SageMaker der nicht erneut versucht werden kann.

Verhalten wird gestoppt

Ein Pipelineprozess wird nicht gestoppt, während ein Callback Schritt ausgeführt wird.

Wenn Sie einen Pipeline-Prozess mit einem laufenden Callback Schritt aufrufen StopPipelineExecution, sendet Pipelines eine SQS Amazon-Nachricht an die SQS Warteschlange. Der SQS Nachrichtentext enthält ein Statusfeld, das auf Stopping gesetzt ist. Im Folgenden wird ein Beispiel für den SQS Nachrichtentext gezeigt.

{ "token": "26vcYbeWsZ", "pipelineExecutionArn": "arn:aws:sagemaker:us-east-2:012345678901:pipeline/callback-pipeline/execution/7pinimwddh3a", "arguments": { "number": 5, "stringArg": "some-arg", "inputData": "s3://sagemaker-us-west-2-012345678901/abalone/abalone-dataset.csv" }, "status": "Stopping" }

Sie sollten Ihrem SQS Amazon-Nachrichtenverbraucher Logik hinzufügen, um nach Erhalt der Nachricht alle erforderlichen Maßnahmen zu ergreifen (z. B. die Ressourcenbereinigung). Fügen Sie dann einen Anruf zu SendPipelineExecutionStepSuccess oder SendPipelineExecutionStepFailure hinzu.

Erst wenn Pipelines einen dieser Aufrufe erhält, wird der Pipeline-Prozess gestoppt.

Sie verwenden einen Lambda-Schritt, um eine AWS Lambda Funktion auszuführen. Sie können eine bestehende Lambda-Funktion ausführen oder SageMaker eine neue Lambda-Funktion erstellen und ausführen. Ein Notizbuch, das zeigt, wie ein Lambda-Schritt in einer SageMaker Pipeline verwendet wird, finden Sie unter sagemaker-pipelines-lambda-step.ipynb.

Wichtig

Lambda-Schritte wurden in Amazon SageMaker Python SDK v2.51.0 und Amazon SageMaker Studio Classic v3.9.1 eingeführt. Sie müssen Studio Classic aktualisieren, bevor Sie einen Lambda-Schritt verwenden, sonst wird die Pipeline DAG nicht angezeigt. Informationen zum Aktualisieren von Studio Classic finden Sie unterFahren Sie SageMaker Studio Classic herunter und aktualisieren Sie es.

SageMaker stellt die Klasse SageMaker.Lambda_Helper.Lambda bereit, um Lambda-Funktionen zu erstellen, zu aktualisieren, aufzurufen und zu löschen. Lambdahat die folgende Signatur.

Lambda( function_arn, # Only required argument to invoke an existing Lambda function # The following arguments are required to create a Lambda function: function_name, execution_role_arn, zipped_code_dir, # Specify either zipped_code_dir and s3_bucket, OR script s3_bucket, # S3 bucket where zipped_code_dir is uploaded script, # Path of Lambda function script handler, # Lambda handler specified as "lambda_script.lambda_handler" timeout, # Maximum time the Lambda function can run before the lambda step fails ... )

Der sagemaker.workflow.lambda_step. LambdaStepDie Klasse hat ein Argument vom Typ. lambda_func Lambda Um eine bestehende Lambda-Funktion aufzurufen, müssen Sie lediglich den Amazon-Ressourcennamen (ARN) der Funktion angeben. function_arn Wenn Sie keinen Wert für function_arn angeben, müssen Sie handler und eine der folgenden Angaben machen:

  • zipped_code_dir– Der Pfad der komprimierten Lambda-Funktion

    s3_bucket– Amazon-S3-Bucket, wo zipped_code_dir hochgeladen werden soll

  • script– Der Pfad der Lambda-Funktionsskriptdatei

Das folgende Beispiel zeigt, wie eine Lambda Schrittdefinition erstellt wird, die eine vorhandene Lambda-Funktion aufruft.

from sagemaker.workflow.lambda_step import LambdaStep from sagemaker.lambda_helper import Lambda step_lambda = LambdaStep( name="ProcessingLambda", lambda_func=Lambda( function_arn="arn:aws:lambda:us-west-2:012345678910:function:split-dataset-lambda" ), inputs={ s3_bucket = s3_bucket, data_file = data_file }, outputs=[ "train_file", "test_file" ] )

Das folgende Beispiel zeigt, wie Sie eine Lambda Schrittdefinition erstellen, die mithilfe eines Lambda-Funktionsskripts eine Lambda-Funktion erstellt und aufruft.

from sagemaker.workflow.lambda_step import LambdaStep from sagemaker.lambda_helper import Lambda step_lambda = LambdaStep( name="ProcessingLambda", lambda_func=Lambda( function_name="split-dataset-lambda", execution_role_arn=execution_role_arn, script="lambda_script.py", handler="lambda_script.lambda_handler", ... ), inputs={ s3_bucket = s3_bucket, data_file = data_file }, outputs=[ "train_file", "test_file" ] )

Eingaben und Ausgaben

Wenn Ihre Lambda Funktion Eingaben oder Ausgaben hat, müssen diese ebenfalls in Ihrem Schritt definiert werden. Lambda

Anmerkung

Eingabe- und Ausgabeparameter sollten nicht verschachtelt sein. Wenn Sie beispielsweise ein verschachteltes Wörterbuch als Ausgabeparameter verwenden, wird das Wörterbuch als eine einzelne Zeichenfolge behandelt (z. B. {"output1": "{\"nested_output1\":\"my-output\"}"}). Wenn Sie einen verschachtelten Wert angeben und später versuchen, darauf zu verweisen, wird ein Client-Fehler ausgegeben, der nicht erneut versucht werden kann.

Bei der Definition des Lambda Schritts inputs muss es sich um ein Wörterbuch mit Schlüssel-Wert-Paaren handeln. Jeder Wert des inputs Wörterbuchs muss ein primitiver Typ sein (Zeichenfolge, Ganzzahl oder Gleitkommazahl). Verschachtelte Objekte werden nicht unterstützt. Bleibt der Wert für inputs undefiniert, wird der Wert für None verwendet.

Der outputs Wert muss eine Liste von Schlüsseln sein. Diese Schlüssel beziehen sich auf ein Wörterbuch, das in der Ausgabe der Lambda Funktion definiert ist. Wie bei inputs müssen diese Schlüssel primitive Typen sein, und verschachtelte Objekte werden nicht unterstützt.

Timeout und Verhalten beim Stoppen

Die Lambda Klasse hat ein timeout Argument, das die maximale Zeit angibt, während der die Lambda-Funktion ausgeführt werden kann. Der Standardwert ist 120 Sekunden und der Höchstwert 10 Minuten. Wenn die Lambda-Funktion ausgeführt wird, wenn das Timeout erreicht ist, schlägt der Lambda-Schritt fehl. Die Lambda-Funktion wird jedoch weiterhin ausgeführt.

Ein Pipelineprozess kann nicht gestoppt werden, während ein Lambda-Schritt ausgeführt wird, da die durch den Lambda-Schritt aufgerufene Lambda-Funktion nicht gestoppt werden kann. Wenn Sie den Prozess beenden, während die Lambda-Funktion ausgeführt wird, wartet die Pipeline, bis die Funktion beendet ist oder bis das Timeout erreicht ist. Das hängt davon ab, was zuerst eintritt. Der Vorgang wird dann gestoppt. Wenn die Lambda-Funktion beendet wird, lautet der Status des Pipeline-Prozesses Stopped. Wenn die Zeitüberschreitung erreicht ist, lautet der Status des Pipeline-Prozesses Failed.

Sie können diesen ClarifyCheck Schritt verwenden, um die Ausgangsabweichung anhand früherer Basislinien zu überprüfen, um die Verzerrungsanalyse und die Erklärbarkeit des Modells zu verbessern. Mit der model.register() Methode können Sie dann Ihre Baselines erstellen und registrieren und die Ausgabe dieser Methode mit Schritt „Modell“ an step_args übergeben. Diese Basislinien für die Driftprüfung können von Amazon SageMaker Model Monitor für Ihre Modellendpunkte verwendet werden. Daher müssen Sie einen Basisvorschlag nicht separat erstellen.

Bei diesem ClarifyCheck Schritt können auch Basiswerte für die Driftprüfung aus der Modellregistrierung abgerufen werden. In diesem ClarifyCheck Schritt wird der vorgefertigte SageMaker Clarify-Container verwendet. Dieser Container bietet eine Reihe von Funktionen zur Modellüberwachung, darunter Vorschläge für Einschränkungen und die Validierung von Beschränkungen anhand einer bestimmten Basislinie. Weitere Informationen finden Sie unter Vorgefertigte SageMaker Clarify-Container.

Konfiguration des ClarifyCheck Schritts

Sie können den ClarifyCheck Schritt so konfigurieren, dass bei jeder Verwendung in einer Pipeline nur einer der folgenden Prüftypen durchgeführt wird.

  • Prüfung auf Datenverzerrung

  • Überprüfung der Modellverzerrung

  • Überprüfung der Erklärbarkeit des Modells

Stellen Sie dazu den clarify_check_config Parameter auf einen der folgenden Werte für den Prüftyp ein:

  • DataBiasCheckConfig

  • ModelBiasCheckConfig

  • ModelExplainabilityCheckConfig

In diesem ClarifyCheck Schritt wird ein Verarbeitungsauftrag gestartet, der den SageMaker vorgefertigten Clarify-Container ausführt und spezielle Konfigurationen für die Prüfung und den Verarbeitungsjob erfordert. ClarifyCheckConfigund CheckJobConfig sind Hilfsfunktionen für diese Konfigurationen. Diese Hilfsfunktionen sind darauf abgestimmt, wie der Verarbeitungsjob SageMaker Clarify Berechnungen durchführt, um Modellverzerrungen, Datenverzerrungen oder Modellerklärbarkeit zu überprüfen. Weitere Informationen finden Sie unter Führen Sie SageMaker Clarify Processing Jobs für Verzerrungsanalyse und Erklärbarkeit aus.

Steuerung des Schrittverhaltens bei der Drift-Prüfung

Für diesen ClarifyCheck Schritt sind die folgenden zwei booleschen Flags erforderlich, um sein Verhalten zu steuern:

  • skip_check: Dieser Parameter gibt an, ob die Driftprüfung gegenüber der vorherigen Basislinie übersprungen wurde oder nicht. Wenn False auf gesetzt ist, muss die vorherige Basislinie des konfigurierten Prüftyps verfügbar sein.

  • register_new_baseline: Dieser Parameter gibt an, ob über die Schritteigenschaft BaselineUsedForDriftCheckConstraints auf eine neu berechnete Basislinie zugegriffen werden kann. Wenn False auf gesetzt ist, muss auch die vorherige Basislinie des konfigurierten Prüftyps verfügbar sein. Darauf kann über die BaselineUsedForDriftCheckConstraints Eigenschaft zugegriffen werden.

Weitere Informationen finden Sie unter Basisberechnung, Drifterkennung und Lebenszyklus mit ClarifyCheck und QualityCheck Schritte in Amazon SageMaker Pipelines.

Arbeiten mit Baselines

Sie können optional die angeben, model_package_group_name um die vorhandene Basislinie zu finden. Anschließend wird das ClarifyCheck letzte genehmigte Modellpaket in der Modellpaketgruppe abgerufen. DriftCheckBaselines

Oder Sie können über den supplied_baseline_constraints Parameter eine vorherige Basislinie angeben. Wenn Sie sowohl model_package_group_name als auch supplied_baseline_constraints angeben, verwendet der Schritt ClarifyCheck die durch den supplied_baseline_constraints Parameter angegebene Basislinie.

Weitere Informationen zur Verwendung der ClarifyCheck Step-Anforderungen finden Sie unter sagemaker.workflow.steps. ClarifyCheckStepim Amazon SageMaker SageMaker SDK für Python. Ein Amazon SageMaker Studio Classic-Notizbuch, das zeigt, wie ClarifyCheck Step in Pipelines verwendet wird, finden Sie unter sagemaker-pipeline-model-monitor-clarify-steps.ipynb.

Beispiel Erstellen eines ClarifyCheck-Schrittes zur Prüfung der Datenverzerrung
from sagemaker.workflow.check_job_config import CheckJobConfig from sagemaker.workflow.clarify_check_step import DataBiasCheckConfig, ClarifyCheckStep from sagemaker.workflow.execution_variables import ExecutionVariables check_job_config = CheckJobConfig( role=role, instance_count=1, instance_type="ml.c5.xlarge", volume_size_in_gb=120, sagemaker_session=sagemaker_session, ) data_bias_data_config = DataConfig( s3_data_input_path=step_process.properties.ProcessingOutputConfig.Outputs["train"].S3Output.S3Uri, s3_output_path=Join(on='/', values=['s3:/', your_bucket, base_job_prefix, ExecutionVariables.PIPELINE_EXECUTION_ID, 'databiascheckstep']), label=0, dataset_type="text/csv", s3_analysis_config_output_path=data_bias_analysis_cfg_output_path, ) data_bias_config = BiasConfig( label_values_or_threshold=[15.0], facet_name=[8], facet_values_or_threshold=[[0.5]] ) data_bias_check_config = DataBiasCheckConfig( data_config=data_bias_data_config, data_bias_config=data_bias_config, )h data_bias_check_step = ClarifyCheckStep( name="DataBiasCheckStep", clarify_check_config=data_bias_check_config, check_job_config=check_job_config, skip_check=False, register_new_baseline=False supplied_baseline_constraints="s3://sagemaker-us-west-2-111122223333/baseline/analysis.json", model_package_group_name="MyModelPackageGroup" )

Verwenden Sie diesen QualityCheck Schritt, um Vorschläge für Basiswerte zu erstellen und Abweichungen anhand einer früheren Basislinie für die Datenqualität oder Modellqualität in einer Pipeline durchzuführen. Anschließend können Sie Ihre Baselines für die Methode generieren und registrieren und die Ergebnisse dieser model.register() Methode an die Schritt „Modell“ Verwendung step_args übergeben.]

Model Monitor kann diese Basislinien für die Drift-Prüfung Ihrer Modellendpunkte verwenden, sodass Sie einen Basisvorschlag nicht separat erstellen müssen. Bei diesem QualityCheck Schritt können auch Basiswerte für die Driftprüfung aus der Modellregistrierung abgerufen werden. Dieser QualityCheck Schritt nutzt den vorgefertigten Container von Amazon SageMaker Model Monitor. Dieser Container bietet eine Reihe von Funktionen zur Modellüberwachung, darunter Vorschläge für Einschränkungen, Generierung von Statistiken und Validierung von Einschränkungen anhand einer Baseline. Weitere Informationen finden Sie unter Vorgefertigter Amazon SageMaker Model Monitor-Container.

Konfiguration des QualityCheck Schritts

Sie können den QualityCheck Schritt so konfigurieren, dass bei jeder Verwendung in einer Pipeline nur einer der folgenden Prüftypen ausgeführt wird.

  • Überprüfung der Datenqualität

  • Modellqualitätsprüfung

Dazu setzen Sie den quality_check_config Parameter mit einem der folgenden Prüftypwerte:

  • DataQualityCheckConfig

  • ModelQualityCheckConfig

In diesem QualityCheck Schritt wird ein Verarbeitungsauftrag gestartet, der den vorgefertigten Container von Model Monitor ausführt und spezielle Konfigurationen für die Prüfung und den Verarbeitungsauftrag erfordert. Die QualityCheckConfig und CheckJobConfig sind Hilfsfunktionen für diese Konfigurationen. Diese Hilfsfunktionen sind darauf abgestimmt, wie Model Monitor eine Grundlage für die Überwachung der Modell- oder Datenqualität erstellt. Weitere Informationen zu den Basisvorschlägen von Model Monitor finden Sie unter Erstellen einer Baseline undErstellen Sie eine Basislinie für die Modellqualität.

Steuern des Schrittverhaltens bei der Drift-Prüfung

Für diesen QualityCheck Schritt sind die folgenden zwei booleschen Flags erforderlich, um sein Verhalten zu steuern:

  • skip_check: Dieser Parameter gibt an, ob die Driftprüfung gegenüber der vorherigen Basislinie übersprungen wurde oder nicht. Wenn False auf gesetzt ist, muss die vorherige Basislinie des konfigurierten Prüftyps verfügbar sein.

  • register_new_baseline: Dieser Parameter gibt an, ob auf eine neu berechnete Basislinie über die Schritteigenschaften BaselineUsedForDriftCheckConstraints und BaselineUsedForDriftCheckStatistics. Ist sie auf False eingestellt, muss auch die vorherige Baseline der konfigurierten Prüfart verfügbar sein. Auf diese kann über die Eigenschaften BaselineUsedForDriftCheckConstraints und BaselineUsedForDriftCheckStatistics zugegriffen werden.

Weitere Informationen finden Sie unter Basisberechnung, Drifterkennung und Lebenszyklus mit ClarifyCheck und QualityCheck Schritte in Amazon SageMaker Pipelines.

Arbeiten mit Baselines

Sie können eine vorherige Basislinie direkt über die supplied_baseline_constraints Parameter supplied_baseline_statistics und angeben. Sie können auch angeben, model_package_group_name und der QualityCheck Schritt ruft das DriftCheckBaselines auf dem letzten genehmigten Modellpaket in der Modellpaketgruppe ab.

Wenn Sie Folgendes angeben, verwendet der QualityCheck Schritt die durch supplied_baseline_constraints und supplied_baseline_statistics für den Prüftyp des QualityCheck Schritts angegebene Basislinie.

  • model_package_group_name

  • supplied_baseline_constraints

  • supplied_baseline_statistics

Weitere Informationen zur Verwendung der QualityCheck Schrittanforderungen finden Sie unter sagemaker.workflow.steps. QualityCheckStepim Amazon SageMaker SageMaker SDK für Python. Ein Amazon SageMaker Studio Classic-Notizbuch, das zeigt, wie QualityCheck Step in Pipelines verwendet wird, finden Sie unter sagemaker-pipeline-model-monitor-clarify-steps.ipynb.

Beispiel Erstellen eines QualityCheck-Schrittes zur Prüfung der Datenqualität
from sagemaker.workflow.check_job_config import CheckJobConfig from sagemaker.workflow.quality_check_step import DataQualityCheckConfig, QualityCheckStep from sagemaker.workflow.execution_variables import ExecutionVariables check_job_config = CheckJobConfig( role=role, instance_count=1, instance_type="ml.c5.xlarge", volume_size_in_gb=120, sagemaker_session=sagemaker_session, ) data_quality_check_config = DataQualityCheckConfig( baseline_dataset=step_process.properties.ProcessingOutputConfig.Outputs["train"].S3Output.S3Uri, dataset_format=DatasetFormat.csv(header=False, output_columns_position="START"), output_s3_uri=Join(on='/', values=['s3:/', your_bucket, base_job_prefix, ExecutionVariables.PIPELINE_EXECUTION_ID, 'dataqualitycheckstep']) ) data_quality_check_step = QualityCheckStep( name="DataQualityCheckStep", skip_check=False, register_new_baseline=False, quality_check_config=data_quality_check_config, check_job_config=check_job_config, supplied_baseline_statistics="s3://sagemaker-us-west-2-555555555555/baseline/statistics.json", supplied_baseline_constraints="s3://sagemaker-us-west-2-555555555555/baseline/constraints.json", model_package_group_name="MyModelPackageGroup" )

Verwenden Sie den EMRSchritt Amazon SageMaker Pipelines, um:

  • Verarbeiten EMRSie Amazon-Schritte auf einem laufenden EMR Amazon-Cluster.

  • Lassen Sie die Pipeline einen EMR Amazon-Cluster für Sie erstellen und verwalten.

Weitere Informationen zu Amazon EMR finden Sie unter Erste Schritte mit Amazon EMR.

Dieser EMR Schritt erfordert, EMRStepConfig dass der Speicherort der vom EMR Amazon-Cluster verwendeten JAR Datei und alle zu übergebenden Argumente angegeben werden. Sie geben auch die EMR Amazon-Cluster-ID an, wenn Sie den Schritt auf einem laufenden EMR Cluster ausführen möchten. Sie können auch die Cluster-Konfiguration übergeben, um den EMR Schritt auf einem Cluster auszuführen, den er für Sie erstellt, verwaltet und beendet. Die folgenden Abschnitte enthalten Beispiele und Links zu Beispiel-Notebooks, die beide Methoden demonstrieren.

Anmerkung
  • EMRFür diese Schritte muss die an Ihre Pipeline übergebene Rolle über zusätzliche Berechtigungen verfügen. Hängen Sie die AWS verwaltete Richtlinie AmazonSageMakerPipelinesIntegrations an Ihre Pipeline-Rolle an, oder stellen Sie sicher, dass die Rolle die in dieser Richtlinie enthaltenen Berechtigungen enthält.

  • EMRStep wird auf EMR Serverless nicht unterstützt. Es wird auch bei EMR Amazon nicht unterstütztEKS.

  • Wenn Sie einen EMR Schritt in einem laufenden Cluster verarbeiten, können Sie nur einen Cluster verwenden, der sich in einem der folgenden Zustände befindet:

    • STARTING

    • BOOTSTRAPPING

    • RUNNING

    • WAITING

  • Wenn Sie EMR Schritte in einem laufenden Cluster verarbeiten, können Sie in einem PENDING Status auf einem EMR Cluster höchstens 256 EMR Schritte ausführen. EMRSchritte, die über diesen Grenzwert hinausgehen, führen zu einem Fehler bei der Pipeline-Ausführung. Sie können auch Richtlinie für Pipeline-Schritte erneut versuchen verwenden.

  • Sie können entweder Cluster-ID oder Cluster-Konfiguration angeben, aber nicht beides.

  • Dieser EMR Schritt basiert darauf EventBridge , dass Amazon Änderungen im EMR Schritt- oder Clusterstatus überwacht. Wenn Sie Ihren EMR Amazon-Job in einem laufenden Cluster verarbeiten, verwendet der EMR Schritt die SageMakerPipelineExecutionEMRStepStatusUpdateRule Regel, um den EMR Schrittstatus zu überwachen. Wenn Sie Ihren Job in einem Cluster verarbeiten, den der EMR Schritt erstellt, verwendet der Schritt die SageMakerPipelineExecutionEMRClusterStatusRule Regel, um Änderungen im Clusterstatus zu überwachen. Wenn Sie eine dieser EventBridge Regeln in Ihrem AWS Konto sehen, löschen Sie sie nicht, da Ihr EMR Schritt sonst möglicherweise nicht abgeschlossen werden kann.

Starten Sie einen neuen Job auf einem laufenden EMR Amazon-Cluster

Um einen neuen Job auf einem laufenden EMR Amazon-Cluster zu starten, übergeben Sie die Cluster-ID als Zeichenfolge an das cluster_id Argument vonEMRStep. Das folgende Beispiel veranschaulicht diese Vorgehensweise.

from sagemaker.workflow.emr_step import EMRStep, EMRStepConfig emr_config = EMRStepConfig( jar="jar-location", # required, path to jar file used args=["--verbose", "--force"], # optional list of arguments to pass to the jar main_class="com.my.Main1", # optional main class, this can be omitted if jar above has a manifest properties=[ # optional list of Java properties that are set when the step runs { "key": "mapred.tasktracker.map.tasks.maximum", "value": "2" }, { "key": "mapreduce.map.sort.spill.percent", "value": "0.90" }, { "key": "mapreduce.tasktracker.reduce.tasks.maximum", "value": "5" } ] ) step_emr = EMRStep ( name="EMRSampleStep", # required cluster_id="j-1ABCDEFG2HIJK", # include cluster_id to use a running cluster step_config=emr_config, # required display_name="My EMR Step", description="Pipeline step to execute EMR job" )

Ein Beispiel-Notizbuch, das Sie durch ein vollständiges Beispiel führt, finden Sie unter Pipelines EMR Step With Running EMR Cluster.

Starten Sie einen neuen Job in einem neuen EMR Amazon-Cluster

Um einen neuen Job in einem neuen Cluster zu starten, der für Sie EMRStep erstellt wird, geben Sie Ihre Cluster-Konfiguration als Wörterbuch an. Das Wörterbuch muss dieselbe Struktur wie eine RunJobFlowAnfrage haben. Nehmen Sie jedoch nicht die folgenden Felder in Ihre Clusterkonfiguration auf:

  • [Name]

  • [Steps]

  • [AutoTerminationPolicy]

  • [Instances][KeepJobFlowAliveWhenNoSteps]

  • [Instances][TerminationProtected]

Alle anderen RunJobFlow Argumente können in Ihrer Clusterkonfiguration verwendet werden. Einzelheiten zur Anforderungssyntax finden Sie unter RunJobFlow.

Im folgenden Beispiel wird eine Clusterkonfiguration an eine EMR Schrittdefinition übergeben. Dadurch wird der Schritt aufgefordert, einen neuen Job auf einem neuen EMR Cluster zu starten. Die EMR Clusterkonfiguration in diesem Beispiel umfasst Spezifikationen für primäre und zentrale EMR Clusterknoten. Weitere Informationen zu EMR Amazon-Knotentypen finden Sie unter Grundlegendes zu Knotentypen: Primär-, Kern- und Aufgabenknoten.

from sagemaker.workflow.emr_step import EMRStep, EMRStepConfig emr_step_config = EMRStepConfig( jar="jar-location", # required, path to jar file used args=["--verbose", "--force"], # optional list of arguments to pass to the jar main_class="com.my.Main1", # optional main class, this can be omitted if jar above has a manifest properties=[ # optional list of Java properties that are set when the step runs { "key": "mapred.tasktracker.map.tasks.maximum", "value": "2" }, { "key": "mapreduce.map.sort.spill.percent", "value": "0.90" }, { "key": "mapreduce.tasktracker.reduce.tasks.maximum", "value": "5" } ] ) # include your cluster configuration as a dictionary emr_cluster_config = { "Applications": [ { "Name": "Spark", } ], "Instances":{ "InstanceGroups":[ { "InstanceRole": "MASTER", "InstanceCount": 1, "InstanceType": "m5.2xlarge" }, { "InstanceRole": "CORE", "InstanceCount": 2, "InstanceType": "m5.2xlarge" } ] }, "BootstrapActions":[], "ReleaseLabel": "emr-6.6.0", "JobFlowRole": "job-flow-role", "ServiceRole": "service-role" } emr_step = EMRStep( name="emr-step", cluster_id=None, display_name="emr_step", description="MyEMRStepDescription", step_config=emr_step_config, cluster_config=emr_cluster_config )

Ein Beispielnotizbuch, das Sie durch ein vollständiges Beispiel führt, finden Sie unter Pipelines EMR Step With Cluster Lifecycle Management.

Verwenden Sie aNotebookJobStep, um Ihren SageMaker Notebook-Job nicht interaktiv als Pipeline-Schritt auszuführen. Wenn Sie Ihre Pipeline in der drag-and-drop Pipelines-Benutzeroberfläche erstellen, verwenden Sie die, Führen Sie den Codeschritt aus um Ihr Notizbuch auszuführen. Weitere Informationen zu SageMaker Notebook-Jobs finden Sie unterSageMaker Notizbuch-Jobs.

A NotebookJobStep erfordert mindestens ein Eingabe-Notizbuch, ein Image URI und einen Kernelnamen. Weitere Informationen zu den Anforderungen an die Notebook-Job-Schritte und anderen Parametern, die Sie zur Anpassung Ihres Schritts festlegen können, finden Sie unter sagemaker.workflow.steps. NotebookJobStep.

Im folgenden Beispiel werden minimale Argumente verwendet, um a zu definierenNotebookJobStep.

from sagemaker.workflow.notebook_job_step import NotebookJobStep notebook_job_step = NotebookJobStep( input_notebook=input_notebook, image_uri=image_uri, kernel_name=kernel_name )

Ihr NotebookJobStep Pipeline-Schritt wird wie ein SageMaker Notizbuchjob behandelt. Verfolgen Sie daher den Ausführungsstatus im Notizbuch-Dashboard der Benutzeroberfläche von Studio Classic, indem Sie dem tags Argument bestimmte Tags hinzufügen. Weitere Informationen zu den hinzuzufügenden Tags finden Sie unterSehen Sie sich Ihre Notebook-Jobs im Studio-UI-Dashboard an.

Wenn Sie Ihren Notebook-Job mit SageMaker Python planenSDK, können Sie außerdem nur bestimmte Images angeben, um Ihren Notebook-Job auszuführen. Weitere Informationen finden Sie unter Bildeinschränkungen für SageMaker SDK Python-Notebook-Jobs.

Verwenden Sie einen Fail-Schritt, um die Ausführung von Amazon SageMaker Pipelines zu beenden, wenn eine gewünschte Bedingung oder ein gewünschter Status nicht erreicht wird. Mit dem Schritt Fail können Sie auch eine benutzerdefinierte Fehlermeldung eingeben, die die Ursache für den Ausführungsfehler der Pipeline angibt.

Anmerkung

Wenn ein Fail-Schritt und andere Pipeline-Schritte gleichzeitig ausgeführt werden, wird die Pipeline erst beendet, wenn alle gleichzeitigen Schritte abgeschlossen sind.

Einschränkungen bei der Verwendung des Schritts „Fehler“

  • Sie können einen Fail-Schritt nicht zur DependsOn Liste der anderen Schritte hinzufügen. Weitere Informationen finden Sie unter Benutzerdefinierte Abhängigkeit zwischen den Schritten.

  • Andere Schritte können nicht auf den Fehlschlag-Schritt verweisen. Dies ist immer der letzte Schritt bei der Ausführung einer Pipeline.

  • Sie können eine Pipelineausführung, die mit einem Fail-Schritt endet, nicht wiederholen.

Sie können die Fehlermeldung Fail Step in Form einer statischen Textzeichenfolge erstellen. Alternativ können Sie auch Pipeline-Parameter, eine Join-Operation oder andere Schritteigenschaften verwenden, um eine aussagekräftigere Fehlermeldung zu erstellen, wenn Sie die verwendenSDK.

Pipeline Designer

Gehen Sie wie folgt vor, um Ihrer Pipeline einen Fail-Schritt hinzuzufügen:

  1. Öffnen Sie die Studio-Konsole, indem Sie den Anweisungen unter folgenStarten Sie Amazon SageMaker Studio.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. Wählen Sie Create (Erstellen) aus.

  4. Wählen Sie Leer aus.

  5. Wählen Sie in der linken Seitenleiste „Fehlgeschlagen“ und ziehen Sie es auf die Leinwand.

  6. Wählen Sie auf der Leinwand den hinzugefügten Schritt „Fehlgeschlagen“ aus.

  7. Füllen Sie in der rechten Seitenleiste die Formulare auf den Tabs Einstellungen und Details aus. Informationen zu den Feldern in diesen Tabs finden Sie unter sagemaker.workflow.fail_step. FailStep.

  8. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar vor dem hinzugefügten Schritt „Fehler“ liegt, klicken Sie auf den Schritt und ziehen Sie den Cursor von diesem Schritt zum Schritt „Fehlschlagen“, um eine Kante zu erstellen.

  9. Wenn die Arbeitsfläche einen Schritt enthält, der unmittelbar auf den von Ihnen hinzugefügten Schritt „Fehler“ folgt, klicken Sie auf den Schritt und ziehen Sie den Cursor vom Schritt „Fehler“ zu dem Schritt, um eine Kante zu erstellen.

SageMaker Python SDK

Der folgende Beispielcodeausschnitt verwendet eine FailStep mit Pipelineparametern ErrorMessage konfigurierte Option und eine Join Operation.

from sagemaker.workflow.fail_step import FailStep from sagemaker.workflow.functions import Join from sagemaker.workflow.parameters import ParameterInteger mse_threshold_param = ParameterInteger(name="MseThreshold", default_value=5) step_fail = FailStep( name="AbaloneMSEFail", error_message=Join( on=" ", values=["Execution failed due to MSE >", mse_threshold_param] ), )