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á.
Etapas de tubulações
Os dutos são compostos por etapas. Essas etapas definem as ações que o pipeline executa e as relações entre as etapas usando propriedades. A página a seguir descreve os tipos de etapas, suas propriedades e as relações entre elas.
Tópicos
Propriedades da etapa
Use o properties
atributo para adicionar dependências de dados entre as etapas do pipeline. Os pipelines usam essas dependências de dados para construí-las a DAG partir da definição do pipeline. Essas propriedades podem ser referenciadas como valores de espaço reservado e são resolvidas em tempo de execução.
O properties
atributo de uma etapa do Pipelines corresponde ao objeto retornado por uma Describe
chamada para o tipo de SageMaker tarefa correspondente. Para cada tipo de trabalho, a chamada Describe
retorna o seguinte objeto de resposta:
-
ProcessingStep
– DescribeProcessingJob -
TrainingStep
– DescribeTrainingJob -
TransformStep
– DescribeTransformJob
Para verificar quais propriedades são referenciáveis para cada tipo de etapa durante a criação da dependência de dados, consulte Dependência de dados - Referência de propriedades no
Paralelismo de etapas
Quando uma etapa não depende de nenhuma outra etapa, ela é executada imediatamente após a execução do pipeline. No entanto, executar muitas etapas do pipeline em paralelo pode esgotar rapidamente os recursos disponíveis. Controle o número de etapas simultâneas para a execução de um pipeline com ParallelismConfiguration
.
O exemplo a seguir é usado ParallelismConfiguration
para definir o limite de etapas simultâneas como cinco.
pipeline.create( parallelism_config=ParallelismConfiguration(5), )
Dependência de dados entre as etapas
Você define a estrutura do seu DAG especificando as relações de dados entre as etapas. Para criar dependências de dados entre as etapas, transmita as propriedades de uma etapa como entrada para outra etapa no pipeline. A etapa que recebe a entrada não é iniciada até que a etapa que fornece a entrada termine de ser executada.
Uma dependência de dados usa JsonPath notação no formato a seguir. Esse formato percorre o arquivo de JSON propriedades. Isso significa que você pode acrescentar o máximo de <property>
instâncias conforme necessário para alcançar a propriedade aninhada desejada no arquivo. Para obter mais informações sobre JsonPath notação, consulte o JsonPath repositório
<step_name>
.properties.<property>
.<property>
O exemplo a seguir mostra como especificar um bucket do Amazon S3 usando a propriedade ProcessingOutputConfig
de uma etapa de processamento.
step_process.properties.ProcessingOutputConfig.Outputs["train_data"].S3Output.S3Uri
Para criar a dependência de dados, passe o bucket para uma etapa de treinamento da seguinte forma.
from sagemaker.workflow.pipeline_context import PipelineSession sklearn_train = SKLearn(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="CensusTrain", step_args=sklearn_train.fit(inputs=TrainingInput( s3_data=step_process.properties.ProcessingOutputConfig.Outputs[ "train_data"].S3Output.S3Uri )) )
Para verificar quais propriedades são referenciáveis para cada tipo de etapa durante a criação da dependência de dados, consulte Dependência de dados - Referência de propriedades no
Dependência personalizada entre as etapas
Quando você especifica uma dependência de dados, o Pipelines fornece a conexão de dados entre as etapas. Como alternativa, uma etapa pode acessar os dados de uma etapa anterior sem usar diretamente os Pipelines. Nesse caso, você pode criar uma dependência personalizada que diga aos Pipelines que não iniciem uma etapa até que a execução de outra etapa seja concluída. Você cria uma dependência personalizada especificando o atributo de uma etapa DependsOn
.
Como exemplo, o exemplo a seguir define uma etapa C
que começa somente após a execução da etapa A
e B
da etapa.
{ 'Steps': [ {'Name':'A', ...}, {'Name':'B', ...}, {'Name':'C', 'DependsOn': ['A', 'B']} ] }
Os pipelines lançam uma exceção de validação se a dependência criar uma dependência cíclica.
O exemplo a seguir cria uma etapa de treinamento que começa após a conclusão da execução de uma etapa de processamento.
processing_step = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step])
O exemplo a seguir cria uma etapa de treinamento que não começa até que duas etapas de processamento diferentes terminem de ser executadas.
processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step_1, processing_step_2])
O seguinte fornece uma forma alternativa de criar a dependência personalizada.
training_step.add_depends_on([processing_step_1]) training_step.add_depends_on([processing_step_2])
O exemplo a seguir cria uma etapa de treinamento que recebe informações de uma etapa de processamento e aguarda a conclusão da execução de uma etapa de processamento diferente.
processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep( ..., inputs=TrainingInput( s3_data=processing_step_1.properties.ProcessingOutputConfig.Outputs[ "train_data" ].S3Output.S3Uri ) training_step.add_depends_on([processing_step_2])
O exemplo a seguir mostra como recuperar uma lista de strings das dependências personalizadas de uma etapa.
custom_dependencies = training_step.depends_on
Imagens personalizadas em uma etapa
Você pode usar qualquer uma das imagens disponíveis do SageMaker Deep Learning Container
Também é possível usar seu próprio contêiner com etapas do pipeline. Como você não pode criar uma imagem no Studio Classic, você deve criar sua imagem usando outro método antes de usá-la com o Pipelines.
Para usar seu próprio contêiner ao criar as etapas do seu pipeline, inclua a imagem URI na definição do estimador. Para obter mais informações sobre como usar seu próprio contêiner com SageMaker, consulte Usando contêineres do Docker com SageMaker.