

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ühren Sie Pipelines im lokalen Modus aus
<a name="pipelines-local-mode"></a>

SageMaker Der lokale Modus von Pipelines ist eine einfache Möglichkeit, Ihre Trainings-, Verarbeitungs- und Inferenzskripts sowie die Laufzeitkompatibilität der [ Pipeline-Parameter zu testen, ](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#pipeline-parameters) bevor Sie Ihre Pipeline auf dem verwalteten SageMaker AI-Service ausführen. Wenn Sie den lokalen Modus verwenden, können Sie Ihre SageMaker AI-Pipeline lokal mit einem kleineren Datensatz testen. Dies ermöglicht ein schnelles und einfaches Debuggen von Fehlern in Benutzerskripten und der Pipeline-Definition selbst, ohne dass die Kosten für die Nutzung des verwalteten Services anfallen. Das folgende Thema zeigt Ihnen, wie Sie Pipelines lokal definieren und ausführen.

Der lokale Modus von Pipelines nutzt den lokalen Modus für [ SageMaker KI-Jobs ](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode) unter der Haube. Dies ist eine Funktion im SageMaker Python-SDK, mit der Sie integrierte oder benutzerdefinierte SageMaker KI-Images lokal mithilfe von Docker-Containern ausführen können. Der lokale Modus von Pipelines basiert auf dem lokalen Modus für SageMaker KI-Jobs. Daher können Sie erwarten, dieselben Ergebnisse zu sehen, als ob Sie diese Jobs separat ausführen würden. Beispielsweise verwendet der lokale Modus immer noch Amazon S3, um Modellartefakte hochzuladen und Ausgaben zu verarbeiten. Wenn Sie möchten, dass durch lokale Jobs generierte Daten auf einer lokalen Festplatte gespeichert werden, können Sie das unter [Lokaler Modus](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode) beschriebene Setup verwenden.

Der lokale Pipeline-Modus unterstützt derzeit die folgenden Schritttypen:
+ [Schritt des Trainings](build-and-manage-steps-types.md#step-type-training)
+ [Verarbeitungsschritt](build-and-manage-steps-types.md#step-type-processing)
+ [Schritt Transformieren](build-and-manage-steps-types.md#step-type-transform)
+ [Model-Schritt](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-model-create) (nur mit Argumenten vom Typ „Modell erstellen“)
+ [Bedingungsschritt](build-and-manage-steps-types.md#step-type-condition)
+ [Schritt „Fehlschlagen“](build-and-manage-steps-types.md#step-type-fail)

Im Gegensatz zum Managed Pipelines Service, der die parallele Ausführung mehrerer Schritte mithilfe der [Parallelism Configuration ermöglicht, führt der lokale Pipeline-Executor](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#parallelism-configuration) die Schritte sequentiell aus. Daher kann die allgemeine Ausführungsleistung einer lokalen Pipeline schlechter sein als die einer Pipeline, die in der Cloud läuft. Dies hängt hauptsächlich von der Größe des Datensatzes, dem Algorithmus sowie der Leistung Ihres lokalen Computers ab. Beachten Sie auch, dass Pipelines, die im lokalen Modus ausgeführt werden, nicht in [ SageMaker Experimenten aufgezeichnet werden. ](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-experiments.html)

**Anmerkung**  
Der lokale Modus von Pipelines ist nicht mit SageMaker KI-Algorithmen wie XGBoost kompatibel. Wenn Sie diese Algorithmen verwenden möchten, müssen Sie diese im [Skriptmodus](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-script-mode/sagemaker-script-mode.html) verwenden.

Um eine Pipeline lokal ausführen zu können, müssen die `sagemaker_session` Felder, die den Pipeline-Schritten und der Pipeline selbst zugeordnet sind, vom Typ `LocalPipelineSession` sein. Das folgende Beispiel zeigt, wie Sie eine SageMaker AI-Pipeline für die lokale Ausführung definieren können.

```
from sagemaker.core.workflow.pipeline_context import LocalPipelineSession
from sagemaker.train import ModelTrainer
from sagemaker.train.configs import InputData, SourceCode
from sagemaker.train.configs import Compute
from sagemaker.mlops.workflow.steps import TrainingStep
from sagemaker.mlops.workflow.pipeline import Pipeline
from sagemaker.core.helper.session_helper import get_execution_role
from sagemaker.core import image_uris

local_pipeline_session = LocalPipelineSession()

training_image = image_uris.retrieve(
    framework="pytorch", region=region, version="1.8.0",
    py_version="py36", instance_type="ml.c5.xlarge",
    image_scope="training"
)

pytorch_model_trainer = ModelTrainer(
    role=get_execution_role(),
    compute=Compute(
        instance_type="ml.c5.xlarge",
        instance_count=1,
    ),
    training_image=training_image,
    source_code=SourceCode(entry_script="./entry_point.py"),
)

step = TrainingStep(
    name="MyTrainingStep",
    step_args=pytorch_model_trainer.train(
        input_data_config=[InputData(channel_name="training", data_source="s3://{{amzn-s3-demo-bucket/my-data/train}}")],
    )
)

pipeline = Pipeline(
    name="MyPipeline",
    steps=[step],
    sagemaker_session=local_pipeline_session
)

pipeline.create(
    role_arn=get_execution_role(), 
    description="local pipeline example"
)

# pipeline will execute locally
execution = pipeline.start()

steps = execution.list_steps()

training_job_name = steps['PipelineExecutionSteps'][0]['Metadata']['TrainingJob']['Arn']

step_outputs = local_pipeline_session.sagemaker_client.describe_training_job(TrainingJobName = training_job_name)
```

Sobald Sie bereit sind, die Pipeline im verwalteten SageMaker Pipelines-Dienst auszuführen, können Sie dies tun, indem Sie den vorherigen Codeausschnitt durch `PipelineSession` (wie im folgenden Codebeispiel gezeigt) ersetzen `LocalPipelineSession` und den Code erneut ausführen.

```
from sagemaker.workflow.pipeline_context import PipelineSession

pipeline_session = PipelineSession()
```