Modo local - Amazon SageMaker

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á.

Modo local

SageMaker O modo local do pipeline é 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 antes de executá-lo no serviço gerenciado SageMaker . Ao usar o modo local, você pode testar seu SageMaker pipeline 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 modo local de tubulações aproveita o modo local de SageMaker trabalhos sob o capô. Esse é um recurso do SDK do SageMaker Python que permite executar imagens SageMaker incorporadas ou personalizadas localmente usando contêineres do Docker. O modo local de pipelines é construído sobre o modo local de SageMaker trabalhos. 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.

Atualmente, o modo local do pipeline é compatível com os seguintes tipos de etapas:

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, o executor local do pipeline executa as etapas sequencialmente. Portanto, a performance 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.

nota

O modo local dos pipelines não é compatível com SageMaker algoritmos como o XGBoost. Caso queira usar esses algoritmos, você deve usá-los no modo script.

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 SageMaker pipeline 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://my-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()