

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Executar pipelines usando o modo local
<a name="pipelines-local-mode"></a>

SageMaker O modo local dos pipelines é uma maneira fácil de testar seus scripts de treinamento, processamento e inferência, bem como a compatibilidade de tempo de execução dos [parâmetros do pipeline](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#pipeline-parameters) antes de executá-lo no serviço gerenciado de SageMaker IA. Ao usar o modo local, você pode testar seu pipeline de SageMaker IA localmente usando um conjunto de dados menor. Isso permite a depuração rápida e fácil de erros nos scripts do usuário e na própria definição do pipeline, sem incorrer nos custos de uso do serviço gerenciado. O tópico a seguir mostra como definir e executar pipelines localmente.

O modo local do Pipelines aproveita o [modo local de trabalhos de SageMaker IA](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode) nos bastidores. Esse é um recurso do SDK do SageMaker Python que permite executar imagens personalizadas ou incorporadas de SageMaker IA localmente usando contêineres do Docker. O modo local do Pipelines é construído sobre o modo local de trabalhos de SageMaker IA. Portanto, você pode esperar ver os mesmos resultados como se estivesse executando esses trabalhos separadamente. Por exemplo, o modo local ainda usa o Amazon S3 para carregar artefatos do modelo e saídas de processamento. Se quiser que os dados gerados pelos trabalhos locais residam no disco local, você pode usar a configuração mencionada no [Modo Local](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode).

Atualmente, o modo local do pipeline é compatível com os seguintes tipos de etapas:
+ [Etapa de treinamento](build-and-manage-steps-types.md#step-type-training)
+ [Processamento de etapas](build-and-manage-steps-types.md#step-type-processing)
+ [Etapa de transformação](build-and-manage-steps-types.md#step-type-transform)
+ [Etapa do modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-model-create) (somente com argumentos de criação de modelo)
+ [Etapa de condição](build-and-manage-steps-types.md#step-type-condition)
+ [Etapa de falha](build-and-manage-steps-types.md#step-type-fail)

Ao contrário do serviço gerenciado do Pipelines, que permite que várias etapas sejam executadas em paralelo usando a [Configuração de Paralelismo](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#parallelism-configuration), o executor local do pipeline executa as etapas sequencialmente. Portanto, o desempenho geral da execução de um pipeline local pode ser inferior à de um executada na nuvem. Isso depende principalmente do tamanho do conjunto de dados, do algoritmo e da potência do computador local. Observe também que os Pipelines executados no modo local não são registrados nos [SageMaker Experimentos](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-experiments.html).

**nota**  
O modo local dos pipelines não é compatível com algoritmos de SageMaker IA, como XGBoost. Caso queira usar esses algoritmos, você deve usá-los no [modo script](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-script-mode/sagemaker-script-mode.html).

Para executar um pipeline localmente, os campos `sagemaker_session` associados às etapas do pipeline e ao próprio pipeline precisam ser do tipo `LocalPipelineSession`. O exemplo a seguir mostra como você pode definir um pipeline de SageMaker IA para ser executado 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)
```

Quando estiver pronto para executar o pipeline no serviço gerenciado de SageMaker Pipelines, você pode fazer isso `LocalPipelineSession` substituindo o trecho de código anterior por `PipelineSession` (conforme mostrado no exemplo de código a seguir) e executando novamente o código.

```
from sagemaker.workflow.pipeline_context import PipelineSession

pipeline_session = PipelineSession()
```