Crie e execute pipelines de machine learning usando componentes com o estúdio do Azure Machine Learning
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
Neste artigo, você aprenderá a criar e executar pipelines de machine learning usando os componentes e o Estúdio do Azure Machine Learning. Você pode criar pipelines sem usar componentes, mas eles oferecem maior flexibilidade e capacidade de reutilização. Os Pipelines do Azure Machine Learning podem ser definidos no YAML e executados na CLI, criados no Python ou compostos no Designer do Estúdio do Azure Machine Learning com uma interface do usuário do tipo “arrastar e soltar”. Este documento tem como foco a interface do usuário do designer do Estúdio do Azure Machine Learning.
Pré-requisitos
Caso não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar. Experimente a versão gratuita ou paga do Azure Machine Learning.
Um workspace do Azure Machine Learning Criar recursos de workspace.
Instalar e configurar a extensão da CLI do Azure para o Machine Learning.
Clone o repositório de exemplos:
git clone https://github.com/Azure/azureml-examples --depth 1 cd azureml-examples/cli/jobs/pipelines-with-components/
Observação
O Designer tem suporte para dois tipos de componentes, componentes predefinidos clássicos(v1) e componentes personalizados(v2). Esses dois tipos de componentes NÃO são compatíveis.
Os componentes predefinidos clássicos fornecem componentes predefinidos principalmente para processamento de dados e tarefas tradicionais de aprendizado de máquina, como regressão e classificação. Componentes predefinidos clássicos continuam com suporte, mas não terão nenhum componente novo adicionado. Além disso, a implantação de componentes predefinidos clássicos (v1) não dá suporte a pontos de extremidade online gerenciados (v2).
Componentes personalizados permitem que você envolva seu próprio código como um componente. Ele dá suporte ao compartilhamento de componentes entre workspaces e à criação contínua nas interfaces do Studio, da CLI v2 e do SDK v2.
Para novos projetos, sugerimos que você use o componente personalizado, que é compatível com o AzureML V2 e continuará recebendo novas atualizações.
Este artigo se aplica a componentes personalizado.
Registrar o componente no seu workspace
Para compilar um pipeline usando componentes na interface do usuário, você precisa primeiro registrar componentes no seu workspace. Você pode usar a interface do usuário, a CLI ou o SDK para registrar componentes no seu espaço de trabalho, para que você possa compartilhar e reutilizar o componente dentro do espaço de trabalho. Os componentes registrados são compatíveis com controle de versão automático para que você possa atualizar o componente, mas garantir que os pipelines que exigem uma versão mais recente continuem funcionando.
O exemplo a seguir usa a interface do usuário para registrar os componentes e os arquivos de origem do componente que estão no diretório cli/jobs/pipelines-with-components/basics/1b_e2e_registered_components
do repositório azureml-examples
. Você precisa clonar o repositório para o local primeiro.
- No seu workspace do Azure Machine Learning, navegue até a página Componentes e selecione Novo Componente (uma das duas páginas de estilo será exibida).
Esse exemplo usa train.yml
no diretório. O arquivo YAML define o nome, o tipo, a interface, incluindo entradas e saídas, o código, o ambiente e o comando desse componente. O código desse componente train.py
está na pasta ./train_src
, que descreve a lógica de execução desse componente. Para saber mais sobre o esquema de componentes, confira a referência do esquema YAML do componente de comando.
Observação
Ao registrar componentes na interface do usuário, code
definido no arquivo YAML do componente só pode apontar para a pasta atual em que o arquivo YAML está localizado ou para as subpastas, o que significa que você não pode especificar ../
para code
, pois a interface do usuário não pode reconhecer o diretório pai.
additional_includes
só pode apontar para a pasta atual ou subpasta.
Atualmente, a interface do usuário só dá suporte ao registro de componentes com o tipo command
.
- Selecione Carregar na Pasta e selecione a pasta
1b_e2e_registered_components
para carregar. Selecionetrain.yml
na lista suspensa.
Selecione Avançar na parte inferior e você poderá confirmar os detalhes desse componente. Após a confirmação, selecione Criar para concluir o processo de registro.
Repita as etapas anteriores para registrar o componente Pontuar e Avaliar usando
score.yml
eeval.yml
também.Após o registro dos três componentes com êxito, você pode ver seus componentes na interface do usuário do estúdio.
Criar pipeline usando o componente registrado
Crie um pipeline no designer. Lembre-se de selecionar a opção Personalizado.
Dê um nome significativo ao pipeline selecionando o ícone de lápis ao lado do nome gerado automaticamente.
Na biblioteca de ativos do designer, você pode ver as guias Dados, Modelo e Componentes. Alterne para a guia Componentes, na qual você pode ver os componentes registrados na seção anterior. Se houver muitos componentes, você poderá pesquisar com o nome do componente.
Localize os componentes de treinamento, pontuação e avaliação registrados na seção anterior e arreste-os e solte-os na tela. Por padrão, ele usa a versão padrão do componente e você pode alterar para uma versão específica no painel direito do componente. O painel direito do componente é invocado clicando duas vezes no componente.
Neste exemplo, usaremos os dados de exemplo nesse caminho. Registre os dados em seu workspace selecionando o ícone Adicionar na biblioteca de ativos do designer -> guia Dados, defina Tipo = Pasta(uri_folder) e siga o assistente para registrar os dados. O tipo de dados precisa ser uri_folder para se alinhar com a definição do componente de treinamento.
Em seguida, arraste e solte os dados na tela. Agora, a aparência do pipeline deve ser semelhante à captura de tela a seguir.
Conecte os dados e os componentes arrastando conexões na tela.
Clique duas vezes em um componente e você verá um painel direito no qual poderá configurar o componente.
Em componentes com entradas de tipo simples, como número, inteiro, cadeia de caracteres e booliano, você pode alterar os valores dessas entradas no painel detalhado do componente, na seção Entradas.
Você também pode alterar as configurações de saída (onde armazenar a saída do componente) e as configurações de execução (destino de computação para executar esse componente) no painel direito.
Agora vamos promover a entrada max_epocs do componente de treinamento para a entrada de nível do pipeline. Fazendo isso, você pode atribuir um valor diferente a essa entrada toda vez antes de enviar o pipeline.
Observação
Os componentes personalizados e os componentes predefinidos clássicos do designer não podem ser usados juntos.
Enviar pipeline
Selecione Configurar e Enviar no canto superior direito para enviar o pipeline.
Em seguida, você verá um assistente passo a passo. Siga o assistente para enviar o trabalho de pipeline.
Na etapa Noções Básicas, você pode configurar o experimento, o nome de exibição do trabalho, a descrição do trabalho etc.
Na etapa Entradas e Saídas, você pode configurar as Entradas/Saídas promovidas no nível do pipeline. Na etapa anterior, promovemos o max_epocs do componente de treinamentopara a entrada do pipeline, portanto, você deve conseguir ver e atribuir valor a max_epocs aqui.
Em Configurações de runtime, você pode definir o armazenamento de dados padrão e a computação padrão do pipeline. É o armazenamento de dados/computação padrão para todos os componentes no pipeline. Observe que, se você definir uma computação ou armazenamento de dados diferente para um componente de forma explícita, o sistema respeitará a configuração de nível do componente. Caso contrário, ele usará o valor padrão do pipeline.
A etapa Examinar + Enviar é a última etapa para examinar todas as configurações antes do envio. O assistente se lembrará de sua última configuração se você enviar o pipeline.
Depois de enviar o trabalho de pipeline, haverá uma mensagem na parte superior com um link para os detalhes do trabalho. Você pode selecionar este link para examinar os detalhes do trabalho.
Especificar identidade no trabalho de pipeline
Ao enviar o trabalho de pipeline, você pode especificar a identidade para acessar os dados em Run settings
. A identidade padrão é AMLToken
que não usou nenhuma identidade por enquanto, damos suporte a UserIdentity
e Managed
. Para UserIdentity
, a identidade do remetente de trabalho é usada para acessar dados de entrada e gravar o resultado na pasta de saída. Se você especificar Managed
, o sistema usará a identidade gerenciada para acessar os dados de entrada e gravar o resultado na pasta de saída.
Próximas etapas
- Use esses Jupyter Notebooks no GitHub para explorar ainda mais os pipelines de machine learning
- Saiba como usar a CLI v2 para criar pipelines usando componentes.
- Saiba como usar o SDK v2 para criar pipelines usando componentes