O que é um componente do Azure Machine Learning?

APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

Um componente do Azure Machine Learning é uma parte de código independente que executa uma etapa em um pipeline de aprendizado de máquina. Um componente é análogo a uma função - tem um nome, entradas, saídas e um corpo. Os componentes são os blocos de construção dos pipelines do Azure Machine Learning.

Um componente consiste em três partes:

  • Metadados: nome, display_name, versão, tipo, etc.
  • Interface: especificações de entrada/saída (nome, tipo, descrição, valor padrão, etc.).
  • Command, Code & Environment: comando, código e ambiente necessários para executar o componente.

Diagram of what a component looks like and how it looks in a pipeline. In addition to screenshots of a component in the CLI, SDK, and portal UI.

Por que devo usar um componente?

É uma boa prática de engenharia criar um pipeline de aprendizado de máquina para dividir uma tarefa completa de aprendizado de máquina em um fluxo de trabalho de várias etapas. De modo que, todos possam trabalhar na etapa específica de forma independente. No Aprendizado de Máquina do Azure, um componente representa uma etapa reutilizável em um pipeline. Os componentes são projetados para ajudar a melhorar a produtividade da construção de tubulações. Especificamente, os componentes oferecem:

  • Interface bem definida: Os componentes requerem uma interface bem definida (entrada e saída). A interface permite ao usuário construir etapas e conectar etapas facilmente. A interface também oculta a lógica complexa de uma etapa e remove o fardo de entender como a etapa é implementada.

  • Compartilhar e reutilizar: como os blocos de construção de um pipeline, os componentes podem ser facilmente compartilhados e reutilizados entre pipelines, espaços de trabalho e assinaturas. Os componentes construídos por uma equipe podem ser descobertos e usados por outra equipe.

  • Controle de versão: Os componentes são versionados. Os produtores de componentes podem continuar a melhorar os componentes e publicar novas versões. Os consumidores podem usar versões de componentes específicos em seus pipelines. Isto confere-lhes compatibilidade e reprodutibilidade.

Unidade testável: um componente é um pedaço de código independente. É fácil escrever teste de unidade para um componente.

Componente e Pipeline

Um pipeline de aprendizado de máquina é o fluxo de trabalho para uma tarefa completa de aprendizado de máquina. Os componentes são os blocos de construção de um pipeline de aprendizado de máquina. Quando você está pensando em um componente, ele deve estar sob o contexto de pipeline.

Para criar componentes, a primeira coisa é definir o pipeline de aprendizado de máquina. Isso requer a divisão da tarefa completa de aprendizado de máquina em um fluxo de trabalho de várias etapas. Cada passo é um componente. Por exemplo, considerando uma tarefa simples de aprendizado de máquina de usar dados históricos para treinar um modelo de previsão de vendas, convém criar um fluxo de trabalho sequencial com processamento de dados, treinamento de modelo e etapas de avaliação de modelo. Para tarefas complexas, você pode querer detalhar ainda mais. Por exemplo, divida uma única etapa de processamento de dados em etapas de ingestão de dados, limpeza de dados, pré-processamento de dados e engenharia de recursos.

Depois que as etapas no fluxo de trabalho forem definidas, a próxima coisa é especificar como cada etapa é conectada no pipeline. Por exemplo, para conectar a etapa de processamento de dados e a etapa de treinamento do modelo, convém definir um componente de processamento de dados para gerar uma pasta que contenha os dados processados. Um componente de treinamento usa uma pasta como entrada e produz uma pasta que contém o modelo treinado. Essas definições de entradas e saídas se tornarão parte da definição da interface do componente.

Agora, é hora de desenvolver o código de execução de uma etapa. Você pode usar suas linguagens preferidas (python, R, etc.). O código deve ser capaz de ser executado por um comando shell. Durante o desenvolvimento, você pode querer adicionar algumas entradas para controlar como essa etapa será executada. Por exemplo, para uma etapa de treinamento, você pode querer adicionar taxa de aprendizagem, número de épocas como as entradas para controlar o treinamento. Essas entradas adicionais mais as entradas e saídas necessárias para se conectar com outras etapas são a interface do componente. O argumento de um comando shell é usado para passar entradas e saídas para o código. O ambiente para executar o comando e o código precisam ser especificados. O ambiente pode ser um ambiente de Aprendizado de Máquina do Azure com curadoria, uma imagem do docker ou um ambiente de conda.

Finalmente, você pode empacotar tudo, incluindo código, cmd, ambiente, entrada, saídas, metadados juntos em um componente. Em seguida, conecta esses componentes para criar pipelines para seu fluxo de trabalho de aprendizado de máquina. Um componente pode ser usado em vários pipelines.

Para saber mais sobre como criar um componente, consulte:

Próximos passos