Utilize nós do PAI DLC no DataWorks para carregar tarefas de treinamento distribuído do DLC, configurar dependências de agendamento e executá-las periodicamente.
Pré-requisitos
-
Conceda acesso do DataWorks ao PAI.
Acesse a Página de Autorização para conceder as permissões com um único clique. Para obter mais informações sobre a política de permissões, consulte AliyunServiceRoleForDataWorksEngine. Apenas uma conta Alibaba Cloud ou um usuário RAM com a política AliyunDataWorksFullAccess pode realizar essa autorização com um clique.
-
Crie um workflow.
É necessário criar um workflow antes de criar um nó. Para mais detalhes, consulte Criar um workflow.
Considerações
Cada execução concluída de um nó do PAI DLC gera uma nova tarefa DLC na plataforma de Treinamento Distribuído (DLC) do PAI. Para evitar o acúmulo de muitas tarefas com nomes idênticos, defina uma frequência de agendamento adequada e adicione variáveis de data e hora ao nome da tarefa. Atribua parâmetros de agendamento baseados em tempo a essas variáveis para que cada nome de tarefa inclua um carimbo de data/hora exclusivo. Para mais informações, consulte Etapa 2: Desenvolver uma tarefa do PAI DLC.
O DataWorks não oferece suporte à execução de tarefas do PAI DLC no grupo de recursos de agendamento público.
Os exemplos neste tópico utilizam a região China (Shanghai). A interface do usuário pode variar em outras regiões.
Etapa 1: Criar um nó do PAI DLC
-
Faça login no console do DataWorks. Na região de destino, clique em no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.
Clique com o botão direito no workflow desejado e escolha .
Na caixa de diálogo Create Node, insira um Name para o nó e clique em OK. Em seguida, desenvolva e configure a tarefa dentro do nó.
Etapa 2: Desenvolver uma tarefa do PAI DLC
Exemplo de código da tarefa
No editor de nós do PAI DLC, é possível escrever uma tarefa DLC das seguintes formas:
-
Gerar código a partir de uma tarefa DLC existente.
Pesquise uma tarefa DLC existente pelo nome e carregue-a. O editor do nó gera o código correspondente com base na configuração do PAI da tarefa. Depois, edite esse código conforme necessário.
NotaCaso não tenha permissão para carregar ou criar uma tarefa, siga as instruções na tela para conceder a autorização.
Se não houver tarefas disponíveis, crie uma no PAI console. Existem várias maneiras de criar tarefas do PAI DLC, dependendo das suas necessidades. Para detalhes, consulte Criar uma tarefa de treinamento, Criar uma tarefa de treinamento: Python SDK e Criar uma tarefa de treinamento: Linha de comando.
-
Escrever o código da tarefa DLC diretamente.
Escreva o código da tarefa diretamente no editor de nós do PAI DLC.
Após executar o nó do PAI DLC, uma nova tarefa DLC é gerada no PAI com base na configuração. O código abaixo fornece um exemplo:
dlc submit xgboostjob \ #Submits the DLC task.
--name=wsytest_pai04_XGBoost \ #The name of the DLC task. We recommend using a variable name or the DataWorks node name.
--command='echo '\''${variable_name}'\'';' \ #The command to be executed by the DLC task.
--workspace_id=80593 \ #The ID of the workspace where the DLC task runs.
--priority=1 \ #The task priority. Valid values: 1 to 9. 1 is the lowest priority and 9 is the highest.
--workers=1 \ #The number of workers. If the value is greater than 1, the task is distributed and can run in parallel on multiple workers.
--worker_image=registry.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:2.3-cpu-py36-ubuntu18.04 \ #The worker image that provides the runtime environment for the DLC task.
--worker_spec=ecs.g6.xlarge #The worker specification, which is the compute instance type used by the workers.
Usar parâmetros de agendamento no código
O DataWorks fornece o recurso Scheduling Parameter para passar variáveis dinamicamente ao seu código. Defina variáveis no código da tarefa usando o formato ${variable_name} e atribua valores na seção Scheduling > Parameter. Para mais informações sobre os formatos suportados, consulte Formatos suportados para parâmetros de agendamento.
O código a seguir mostra um exemplo de uso de um parâmetro de agendamento:
--command='echo '\''${variable_name}'\'';' \ -- Can be used with scheduling parameters.
Etapa 3: Configurar o agendamento da tarefa
Para executar a tarefa do nó periodicamente, clique em Scheduling no painel à direita e configure as propriedades de agendamento. Para mais informações, consulte Visão geral das propriedades de agendamento de tarefas.
É obrigatório definir o Rerun attribute e os Parent Nodes do nó antes de enviá-lo.
Etapa 4: Depurar a tarefa
Realize as operações de depuração a seguir para verificar se a tarefa executa conforme o esperado.
-
(Opcional) Selecione um grupo de recursos e atribua valores aos parâmetros personalizados.
Clique no ícone
na barra de ferramentas. Na caixa de diálogo Parameter, selecione o grupo de recursos de agendamento para depuração.Se o código da tarefa utilizar parâmetros de agendamento, atribua valores a eles aqui para depuração. Para mais detalhes sobre a lógica de atribuição de parâmetros, consulte Qual é a diferença na lógica de atribuição entre Run, Advanced Run e teste de fumaça no ambiente de desenvolvimento?.
-
Salve e execute o código.
Clique no ícone
na barra de ferramentas para salvar o código e, em seguida, clique no ícone
para executar a tarefa. -
(Opcional) Realize um teste de fumaça.
Para verificar se a tarefa do nó agendada executa conforme o esperado no ambiente de desenvolvimento, realize um teste de fumaça ao enviar o nó ou após o envio. Para mais informações, consulte Realizar um teste de fumaça.
Etapa 5: Enviar e implantar a tarefa
Após configurar a tarefa do nó, envie-a e implante-a. Depois da implantação, o nó executa periodicamente com base em sua configuração de agendamento.
Clique no ícone
na barra de ferramentas para salvar o nó.-
Clique no ícone
na barra de ferramentas para enviar a tarefa do nó.Na caixa de diálogo Commit Node, insira uma Change Description. Também é possível escolher se deseja realizar uma revisão de código após o envio.
NotaÉ obrigatório definir o Rerun attribute e os Parent Nodes do nó antes de enviá-lo.
A revisão de código ajuda a garantir a qualidade do código e evita que tarefas com erros sejam implantadas em produção. Se você ativar a revisão de código, o código enviado deverá ser aprovado antes da implantação. Para mais informações, consulte Revisão de código.
Se você utilizar um workspace no modo padrão, clique em Deploy no canto superior direito da página de edição do nó após o envio para implantar a tarefa em produção. Para mais informações, consulte Implantar uma tarefa.
Próximas etapas
Depois que a tarefa for enviada e implantada, ela executará periodicamente com base na configuração do nó. Clique em O&M Personnel no canto superior direito da página do editor para visualizar o status de agendamento e execução. Para mais informações, consulte Gerenciar tarefas agendadas.