Executar um trabalho de pipeline

Concluído

Quando tiver criado um pipeline baseado em componentes no Azure Machine Learning, pode executar o fluxo de trabalho como um trabalho de pipeline.

Configurar um trabalho de pipeline

Um pipeline é definido em um arquivo YAML, que você também pode criar usando a @pipeline() função. Depois de usar a função, você pode editar as configurações do pipeline especificando quais parâmetros deseja alterar e o novo valor.

Por exemplo, talvez você queira alterar o modo de saída para as saídas de trabalho de pipeline:

# change the output mode
pipeline_job.outputs.pipeline_job_transformed_data.mode = "upload"
pipeline_job.outputs.pipeline_job_trained_model.mode = "upload"

Ou, você pode querer definir a computação de pipeline padrão. Quando uma computação não é especificada para um componente, ela usará a computação padrão:

# set pipeline level compute
pipeline_job.settings.default_compute = "aml-cluster"

Você também pode querer alterar o armazenamento de dados padrão para onde todas as saídas serão armazenadas:

# set pipeline level datastore
pipeline_job.settings.default_datastore = "workspaceblobstore"

Para revisar a configuração do pipeline, você pode imprimir o objeto de trabalho do pipeline:

print(pipeline_job)

Executar um trabalho de pipeline

Depois de configurar o pipeline, você estará pronto para executar o fluxo de trabalho como um trabalho de pipeline.

Para enviar o trabalho de pipeline, execute o seguinte código:

# submit job to workspace
pipeline_job = ml_client.jobs.create_or_update(
    pipeline_job, experiment_name="pipeline_job"
)

Depois de enviar um trabalho de pipeline, um novo trabalho será criado no espaço de trabalho do Azure Machine Learning. Um trabalho de pipeline também contém trabalhos filho, que representam a execução dos componentes individuais. O estúdio do Azure Machine Learning cria uma representação gráfica do seu pipeline. Você pode expandir a visão geral do trabalho para explorar os parâmetros do pipeline, saídas e trabalhos filho:

Captura de ecrã da representação gráfica do seu pipeline no estúdio do Azure Machine Learning.

Para solucionar problemas de um pipeline com falha, você pode verificar as saídas e os logs do trabalho de pipeline e seus trabalhos filho.

  • Se houver um problema com a configuração do pipeline em si, você encontrará mais informações nas saídas e logs do trabalho de pipeline.
  • Se houver um problema com a configuração de um componente, você encontrará mais informações nas saídas e logs do trabalho filho do componente com falha.

Agendar um trabalho de pipeline

Um pipeline é ideal se você quiser preparar seu modelo para produção. Os pipelines são especialmente úteis para automatizar o retreinamento de um modelo de aprendizado de máquina. Para automatizar o retreinamento de um modelo, você pode agendar um pipeline.

Para agendar um trabalho de pipeline, você usará a JobSchedule classe para associar um agendamento a um trabalho de pipeline.

Há várias maneiras de criar uma agenda. Uma abordagem simples é criar um cronograma baseado em tempo usando a RecurrenceTrigger classe com os seguintes parâmetros:

  • frequency: Unidade de tempo para descrever a frequência com que o cronograma é acionado. O valor pode ser minute, hour, day, week, ou month.
  • interval: Número de unidades de frequência para descrever a frequência com que o programa é acionado. O valor precisa ser um inteiro.

Para criar uma agenda que é acionada a cada minuto, execute o seguinte código:

from azure.ai.ml.entities import RecurrenceTrigger

schedule_name = "run_every_minute"

recurrence_trigger = RecurrenceTrigger(
    frequency="minute",
    interval=1,
)

Para agendar um pipeline, você precisará pipeline_job representar o pipeline que você criou:

from azure.ai.ml.entities import JobSchedule

job_schedule = JobSchedule(
    name=schedule_name, trigger=recurrence_trigger, create_job=pipeline_job
)

job_schedule = ml_client.schedules.begin_create_or_update(
    schedule=job_schedule
).result()

Os nomes de exibição dos trabalhos acionados pela agenda serão prefixados com o nome da sua agenda. Você pode revisar os trabalhos no estúdio do Azure Machine Learning:

Captura de ecrã dos trabalhos concluídos agendados no estúdio do Azure Machine Learning.

Para excluir uma agenda, primeiro você precisa desativá-la:

ml_client.schedules.begin_disable(name=schedule_name).result()
ml_client.schedules.begin_delete(name=schedule_name).result()