

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejecución de canalizaciones en modo local
<a name="pipelines-local-mode"></a>

SageMaker El modo local de Pipelines es una forma sencilla de probar tus scripts de entrenamiento, procesamiento e inferencia, así como la compatibilidad de los [parámetros de la canalización](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#pipeline-parameters) en tiempo de ejecución antes de ejecutar la canalización en el servicio de SageMaker IA gestionado. Al utilizar el modo local, puedes probar tu canalización de SageMaker IA de forma local con un conjunto de datos más pequeño. Esto permite depurar de forma rápida y sencilla los errores en los scripts del usuario y en la propia definición de la canalización sin incurrir en los costos que conlleva el uso del servicio administrado. En el siguiente tema, se muestra cómo definir y ejecutar canalizaciones de forma local.

El modo local de Pipelines aprovecha el [modo local de los trabajos de SageMaker IA de](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode) forma interna. Se trata de una función del SDK de SageMaker Python que permite ejecutar imágenes personalizadas o integradas de SageMaker IA de forma local mediante contenedores de Docker. El modo local de Pipelines se basa en el modo local de trabajos de SageMaker IA. Por lo tanto, puede esperar ver los mismos resultados que si ejecutara esos trabajos por separado. Por ejemplo, el modo local utiliza Amazon S3 para cargar artefactos del modelo y procesar las salidas. Si desea que los datos generados por los trabajos locales residan en el disco local, puede utilizar la configuración mencionada en [Modo local](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode).

El modo local de la canalización admite actualmente los siguientes tipos de pasos:
+ [Paso de entrenamiento](build-and-manage-steps-types.md#step-type-training)
+ [Paso de procesamiento](build-and-manage-steps-types.md#step-type-processing)
+ [Paso de transformación](build-and-manage-steps-types.md#step-type-transform)
+ [Paso de modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-model-create) (solo con los argumentos de creación de modelo)
+ [Paso de condición](build-and-manage-steps-types.md#step-type-condition)
+ [Paso Error](build-and-manage-steps-types.md#step-type-fail)

A diferencia del servicio administrado de las canalizaciones, que permite ejecutar varios pasos en paralelo mediante la [configuración del paralelismo](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#parallelism-configuration), el ejecutor de canalización local ejecuta los pasos en orden secuencial. Por lo tanto, el rendimiento general de ejecución de una canalización local puede ser inferior al de una canalización que se ejecuta en la nube; depende principalmente del tamaño del conjunto de datos, del algoritmo y de la potencia del equipo local. [Ten en cuenta también que los Pipelines que se ejecutan en modo local no se registran en SageMaker los experimentos.](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-experiments.html)

**nota**  
El modo local de Pipelines no es compatible con algoritmos de SageMaker IA como. XGBoost Si quiere utilizar estos algoritmos, debe utilizarlos en [modo script](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-script-mode/sagemaker-script-mode.html).

Para ejecutar una canalización de forma local, los campos de `sagemaker_session` asociados a los pasos de la canalización y a la propia canalización deben ser del tipo `LocalPipelineSession`. En el siguiente ejemplo, se muestra cómo se puede definir una canalización de SageMaker IA para que se ejecute localmente.

```
from sagemaker.workflow.pipeline_context import LocalPipelineSession
from sagemaker.pytorch import PyTorch
from sagemaker.workflow.steps import TrainingStep
from sagemaker.workflow.pipeline import Pipeline

local_pipeline_session = LocalPipelineSession()

pytorch_estimator = PyTorch(
    sagemaker_session=local_pipeline_session,
    role=sagemaker.get_execution_role(),
    instance_type="ml.c5.xlarge",
    instance_count=1,
    framework_version="1.8.0",
    py_version="py36",
    entry_point="./entry_point.py",
)

step = TrainingStep(
    name="MyTrainingStep",
    step_args=pytorch_estimator.fit(
        inputs=TrainingInput(s3_data="s3://amzn-s3-demo-bucket/my-data/train"),
    )
)

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

pipeline.create(
    role_arn=sagemaker.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 = pipeline_session.sagemaker_client.describe_training_job(TrainingJobName = training_job_name)
```

Cuando estés preparado para ejecutar la canalización en el servicio de SageMaker Pipelines gestionado, puedes hacerlo sustituyendo `LocalPipelineSession` el fragmento de código anterior por `PipelineSession` (como se muestra en el siguiente ejemplo de código) y volviendo a ejecutar el código.

```
from sagemaker.workflow.pipeline_context import PipelineSession

pipeline_session = PipelineSession()
```