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 do Pipelines
Os pipelines 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 atributo properties
para adicionar dependências de dados entre as etapas do pipeline. Essas dependências de dados são então usadas pelo Pipelines para criar o DAG a partir da definição de pipeline. Essas propriedades podem ser referenciadas como valores de espaço reservado e são resolvidas em runtime.
O properties
atributo de uma etapa do Pipelines corresponde ao objeto retornado por uma Describe
chamada para o tipo de trabalho de SageMaker IA 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 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 propriedades JSON. Isso significa que você pode acrescentar quantas <property>
instâncias forem necessárias 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 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 o Pipelines diretamente. Nesse caso, você pode criar uma dependência personalizada que diga ao Pipelines que não inicie 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']} ] }
O Pipelines fará 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 do SageMaker AI 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 o URI da imagem na definição do estimador. Para obter mais informações sobre como usar seu próprio contêiner com SageMaker IA, consulte Como usar contêineres do Docker com SageMaker IA.