Como funciona a Azure Machine Learning: Arquitetura e conceitos

Conheça a arquitetura e os conceitos para Azure Machine Learning. Este artigo dá-lhe uma compreensão de alto nível dos componentes e como eles trabalham em conjunto para ajudar no processo de construção, implantação e manutenção de modelos de aprendizagem automática.

Espaço de trabalho

Um espaço de trabalho de aprendizagem automática é o recurso de alto nível para a Azure Machine Learning.

Diagrama: Azure Machine Learning arquitetura de um espaço de trabalho e seus componentes

O espaço de trabalho é o lugar centralizado para:

Um espaço de trabalho inclui outros recursos Azure que são usados pelo espaço de trabalho:

  • Registo do contentor Azure (ACR): Regista os recipientes de estivadores que utiliza durante o treino e quando implementa um modelo. Para minimizar os custos, o ACR só é criado quando as imagens de implantação são criadas.
  • Conta de Armazenamento Azure: É utilizada como a datastore predefinida para o espaço de trabalho. Os cadernos Jupyter que são usados com os seus casos de cálculo de Aprendizagem de Máquinas Azure também estão armazenados aqui.
  • Azure Application Insights: Armazena informações de monitorização sobre os seus modelos.
  • Azure Key Vault: Armazena segredos que são usados por alvos computacional e outras informações sensíveis que são necessárias pelo espaço de trabalho.

Podes partilhar um espaço de trabalho com os outros.

Cálculos

Um alvo de cálculo é qualquer máquina ou conjunto de máquinas que utilize para executar o seu script de treino ou hospedar a sua implementação de serviço. Pode utilizar a sua máquina local ou um recurso de computação remota como alvo de computação. Com alvos de cálculo, pode começar a treinar na sua máquina local e depois escalar para a nuvem sem alterar o seu script de treino.

A Azure Machine Learning introduz duas máquinas virtuais totalmente geridas (VM) totalmente geridas que estão configuradas para tarefas de aprendizagem automática:

  • Instância de cálculo: Uma instância computacional é um VM que inclui múltiplas ferramentas e ambientes instalados para machine learning. O uso primário de um exemplo de computação é para o seu posto de trabalho de desenvolvimento. Pode começar a executar cadernos de amostra sem necessidade de configuração. Uma instância computacional também pode ser usada como um alvo de computação para a formação e inferenção de empregos.

  • Clusters computativo: Os clusters computacional são um aglomerado de VMs com capacidades de escala de vários nós. Os clusters computacional são mais adequados para metas de computação para grandes empregos e produção. O cluster aumenta automaticamente quando um trabalho é submetido. Utilizar como alvo de computação de treino ou para implantação dev/teste.

Para obter mais informações sobre os alvos de computação de formação, consulte os alvos do computação de formação. Para obter mais informações sobre os alvos de computação de implantação, consulte os alvos de implementação.

Conjuntos de dados e datastores

Os conjuntos de dados de aprendizagem de máquinas Azure facilitam o acesso e o trabalho com os seus dados. Ao criar um conjunto de dados, cria uma referência à localização da fonte de dados juntamente com uma cópia dos seus metadados. Como os dados permanecem na sua localização existente, não incorre nenhum custo extra de armazenamento e não arrisca a integridade das suas fontes de dados.

Para obter mais informações, consulte Criar e registar conjuntos de dados de aprendizagem de máquinas Azure. Para obter mais exemplos utilizando conjuntos de dados, consulte os cadernos de amostras.

Os conjuntos de dados utilizam as datas-tores para se conectarem de forma segura aos seus serviços de armazenamento Azure. As lojas de dados armazenam informações de conexão sem colocar em risco as suas credenciais de autenticação e a integridade da sua fonte de dados original. Armazenam informações de ligação, como o ID de subscrição e a autorização simbólica no cofre-chave associado ao espaço de trabalho, para que possa aceder de forma segura ao seu armazenamento sem ter de os codificar no seu script.

Ambientes

Espaço de > trabalho Ambientes

Um ambiente é a encapsulação do ambiente onde o treino ou a pontuação do seu modelo de aprendizagem automática acontecem. O ambiente especifica os pacotes Python, variáveis ambientais e configurações de software em torno dos seus scripts de treino e pontuação.

Para obter amostras de código, consulte a secção "Gerir ambientes" de como utilizar ambientes.

Experimentações

Espaço de > trabalho Experiências

Uma experiência é um agrupamento de muitas corridas a partir de um script especificado. Pertence sempre a um espaço de trabalho. Quando submete uma corrida, fornece um nome de experiência. A informação para a execução é armazenada no âmbito dessa experiência. Se o nome não existir quando se submete uma experiência, uma nova experiência é criada automaticamente.

Para um exemplo de utilização de uma experiência, consulte Tutorial: Treine o seu primeiro modelo.

Execuções

Espaço de > trabalho Experiências > Correr

Uma corrida é uma única execução de um roteiro de treino. Uma experiência normalmente conterá várias corridas.

A Azure Machine Learning regista todas as execuções e armazena as seguintes informações na experiência:

  • Metadados sobre a execução (timetamp, duração, e assim por diante)
  • Métricas que são registadas pelo seu script
  • Ficheiros de saída que são automaticamente recolhidos pela experiência ou enviados explicitamente por si
  • Uma imagem do diretório que contém os seus scripts, antes da execução

Produz-se uma corrida quando se envia um guião para treinar um modelo. Uma corrida pode ter zero ou mais corridas de crianças. Por exemplo, a corrida de alto nível pode ter duas corridas de crianças, cada uma das quais pode ter a sua própria criança gerida.

Executar configurações

Espaço de > trabalho Experiências > Correr > Configuração de execução

Uma configuração de execução define como um script deve ser executado em um alvo de computação especificado. Utiliza a configuração para especificar o script, o alvo do cálculo e o ambiente Azure ML para executar, quaisquer configurações específicas do trabalho distribuídas e algumas propriedades adicionais. Para obter mais informações sobre o conjunto completo de opções configuráveis para execuções, consulte ScriptRunConfig.

Uma configuração de execução pode ser persistido num ficheiro dentro do diretório que contém o seu script de treino. Ou pode ser construído como um objeto na memória e usado para submeter uma corrida.

Por exemplo, executar configurações, ver Configurar uma execução de treino.

Instantâneos

Espaço de > trabalho Experiências > Correr > Instantâneo

Quando submete uma execução, o Azure Machine Learning comprime o diretório que contém o script como ficheiro zip e envia-o para o alvo do cálculo. O ficheiro zip é então extraído, e o script é executado lá. A Azure Machine Learning também armazena o ficheiro zip como um instantâneo como parte do registo de execução. Qualquer pessoa com acesso ao espaço de trabalho pode navegar num registo de execução e descarregar o instantâneo.

Registo

A Azure Machine Learning regista automaticamente as métricas padrão de execução para si. No entanto, também pode utilizar o Python SDK para registar métricas arbitrárias.

Existem várias formas de visualizar os seus registos: monitorizar o estado da execução em tempo real ou visualizar resultados após a conclusão. Para obter mais informações, consulte Monitor e veja registos de execução ML.

Nota

Para evitar que ficheiros desnecessários sejam incluídos no instantâneo, faça um ficheiro de ignorar .gitignore .amlignore (ou) no diretório. Adicione os ficheiros e os diretórios a excluir neste ficheiro. Para obter mais informações sobre a sintaxe a utilizar dentro deste ficheiro, consulte sintaxe e padrões para .gitignore . O .amlignore ficheiro usa a mesma sintaxe. Se ambos os ficheiros existirem, o .amlignore ficheiro é utilizado e o ficheiro não é .gitignore utilizado.

Rastreio e integração de Git

Quando se inicia uma corrida de treinamento onde o diretório de origem é um repositório local de Git, a informação sobre o repositório é armazenada na história da execução. Isto funciona com runs submetidos usando uma configuração de execução de script ou pipeline ML. Também funciona para as execuções submetidas a partir do SDK ou machine learning CLI.

Para obter mais informações, consulte a integração do Git para a Azure Machine Learning.

Fluxo de trabalho de formação

Quando se faz uma experiência para treinar um modelo, os seguintes passos acontecem. Estes são ilustrados no diagrama de trabalho de formação abaixo:

  • A Azure Machine Learning é chamada com o ID instantâneo para a imagem de código guardada na secção anterior.

  • O Azure Machine Learning cria um ID de execução (opcional) e um token de serviço de machine learning, que é mais tarde utilizado por alvos computacionais como Machine Learning Compute/VMs para comunicar com o serviço de Machine Learning.

  • Você pode escolher um alvo de computação gerido (como Machine Learning Compute) ou um alvo de computação não gerido (como VMs) para executar trabalhos de formação. Aqui estão os fluxos de dados para ambos os cenários:

    • VMs/HDInsight, acedido por credenciais SSH num cofre chave na subscrição da Microsoft. A Azure Machine Learning executa o código de gestão no alvo do cálculo que:
    1. Prepara o ambiente. (Docker é uma opção para VMs e computadores locais. Consulte os seguintes passos para machine learning compute para entender como funciona as experiências em contentores Docker.)
    2. Descarrega o código.
    3. Configura variáveis e configurações ambientais.
    4. Executa scripts de utilizador (a imagem de código mencionada na secção anterior).
    • Machine Learning Compute, acedido através de uma identidade gerida pelo espaço de trabalho. Como o Machine Learning Compute é um alvo de computação gerido (isto é, é gerido pela Microsoft) funciona sob a subscrição da Microsoft.
    1. A construção remota do Docker é iniciada, se necessário.
    2. O código de gestão é escrito para a partilha de Ficheiros Azure do utilizador.
    3. O recipiente é iniciado com um comando inicial. Ou seja, código de gestão, tal como descrito no passo anterior.
  • Depois de terminar a execução, pode consultar corridas e métricas. No diagrama de fluxo abaixo, este passo ocorre quando o alvo do computação de treino escreve as métricas de corrida de volta para Azure Machine Learning a partir do armazenamento na base de dados do Cosmos DB. Os clientes podem ligar para a Azure Machine Learning. A Machine Learning, por sua vez, irá retirar métricas da base de dados da Cosmos DB e devolvê-las ao cliente.

Fluxo de trabalho de formação

Modelos

No seu mais simples, um modelo é um pedaço de código que pega numa entrada e produz a saída. A criação de um modelo de aprendizagem automática envolve selecionar um algoritmo, fornecer-lhe dados e sintonizar hiperparímetros. A formação é um processo iterativo que produz um modelo treinado, que encapsula o que o modelo aprendeu durante o processo de treino.

Pode trazer um modelo treinado fora do Azure Machine Learning. Ou pode treinar um modelo submetendo uma série de experiências a um alvo de computação em Azure Machine Learning. Uma vez que tenha um modelo, registe o modelo no espaço de trabalho.

Azure Machine Learning é agnóstico enquadrante. Quando cria um modelo, pode utilizar qualquer estrutura popular de aprendizagem automática, como Scikit-learn, XGBoost, PyTorch, TensorFlow e Chainer.

Para um exemplo de formação de um modelo que usa Scikit-learn, consulte Tutorial: Treine um modelo de classificação de imagem com Azure Machine Learning.

Registo de modelos

Espaço de > trabalho Modelos

O registo de modelos permite-lhe acompanhar todos os modelos do seu espaço de trabalho Azure Machine Learning.

Os modelos são identificados pelo nome e pela versão. Cada vez que regista um modelo com o mesmo nome que um existente, o registo assume que é uma nova versão. A versão é incrementada e o novo modelo está registado com o mesmo nome.

Quando regista o modelo, pode fornecer etiquetas de metadados adicionais e, em seguida, utilizar as etiquetas quando procura por modelos.

Dica

Um modelo registado é um recipiente lógico para um ou mais ficheiros que compõem o seu modelo. Por exemplo, se tiver um modelo que esteja armazenado em vários ficheiros, pode registá-los como um único modelo no seu espaço de trabalho Azure Machine Learning. Após o registo, pode então descarregar ou implementar o modelo registado e receber todos os ficheiros que foram registados.

Não é possível eliminar um modelo registado que esteja a ser utilizado por uma implementação ativa.

Para um exemplo de registo de um modelo, consulte Train um modelo de classificação de imagem com Azure Machine Learning.

Implementação

Implementa um modelo registado como ponto final de serviço. Precisa dos seguintes componentes:

  • Ambiente. Este ambiente engloba as dependências necessárias para executar o seu modelo para inferência.
  • Código de pontuação. Este script aceita pedidos, pontua os pedidos utilizando o modelo e devolve os resultados.
  • Configuração de inferência. A configuração da inferência especifica o ambiente, o script de entrada e outros componentes necessários para executar o modelo como um serviço.

Para obter mais informações sobre estes componentes, consulte implementar modelos com Azure Machine Learning.

Pontos Finais

Espaço de > trabalho Pontos finais

Um ponto final é uma instantânea do seu modelo num serviço web que pode ser hospedado na nuvem ou num módulo IoT para implementações integradas de dispositivos.

Ponto final do serviço web

Ao implementar um modelo como serviço web, o ponto final pode ser implantado em Instâncias de Contentores Azure, Serviço Azure Kubernetes ou FPGAs. Cria o serviço a partir do seu modelo, script e ficheiros associados. Estes são colocados numa imagem de recipiente base, que contém o ambiente de execução do modelo. A imagem tem um ponto final HTTP equilibrado em carga que recebe pedidos de pontuação que são enviados para o serviço web.

Pode ativar a telemetria do Application Insights ou a telemetria do modelo para monitorizar o seu serviço web. Os dados de telemetria são acessíveis apenas a si. Está armazenado nas suas informações de aplicação e casos de conta de armazenamento. Se tiver ativado o dimensionamento automático, o Azure escala automaticamente a sua implantação.

O diagrama a seguir mostra o fluxo de trabalho de inferência para um modelo implantado como ponto final de serviço web:

Aqui estão os detalhes:

  • O utilizador regista um modelo utilizando um cliente como o Azure Machine Learning SDK.
  • O utilizador cria uma imagem utilizando um modelo, um ficheiro de pontuação e outras dependências de modelos.
  • A imagem docker é criada e armazenada no Registo do Contentor Azure.
  • O serviço web é implantado para o alvo de computação (Instâncias de Contentores/AKS) utilizando a imagem criada no passo anterior.
  • Os detalhes do pedido de pontuação são armazenados no Application Insights, que está na subscrição do utilizador.
  • A telemetria também é empurrada para a subscrição Microsoft/Azure.

Fluxo de trabalho de inferência

Para um exemplo de implantação de um modelo como serviço web, consulte implementar um modelo de classificação de imagem em Instâncias de Contentores Azure.

Pontos finais em tempo real

Quando se implanta um modelo treinado no designer, pode-se implementar o modelo como um ponto final em tempo real. Um ponto final em tempo real geralmente recebe um único pedido através do ponto final REST e devolve uma previsão em tempo real. Isto contrasta com o processamento de lotes, que processa vários valores ao mesmo tempo e guarda os resultados após a conclusão de uma datastore.

Pontos finais do gasoduto

Os pontos finais do pipeline permitem-lhe ligar para os seus Gasodutos ML programaticamente através de um ponto final REST. Os pontos finais do gasoduto permitem automatizar os fluxos de trabalho do gasoduto.

Um ponto final de gasoduto é uma coleção de oleodutos publicados. Esta organização lógica permite-lhe gerir e chamar vários oleodutos usando o mesmo ponto final. Cada gasoduto publicado num ponto final de gasoduto é vertado. Pode selecionar um pipeline predefinido para o ponto final ou especificar uma versão na chamada REST.

Pontos finais do módulo IoT

Um ponto final de módulo IoT implantado é um recipiente Docker que inclui o seu modelo e script ou aplicação associados e quaisquer dependências adicionais. Você implementa estes módulos utilizando Azure IoT Edge em dispositivos de borda.

Se tiver ativado a monitorização, o Azure recolhe dados de telemetria do modelo dentro do módulo Azure IoT Edge. Os dados de telemetria são acessíveis apenas a si, e são armazenados na sua conta de armazenamento.

O Azure IoT Edge garante que o seu módulo está em funcionamento e monitoriza o dispositivo que o acolhe.

Automatização

CLI do Azure Machine Learning

O Azure Machine Learning CLI é uma extensão do Azure CLI, uma interface de linha de comando transversal para a plataforma Azure. Esta extensão fornece comandos para automatizar as suas atividades de aprendizagem automática.

Gasodutos ML

Você usa oleodutos de aprendizagem automática para criar e gerir fluxos de trabalho que cosem fases de aprendizagem automática. Por exemplo, um gasoduto pode incluir preparação de dados, formação de modelos, implantação de modelos e fases de inferência/pontuação. Cada fase pode abranger vários passos, cada um dos quais pode correr sem vigilância em vários alvos de computação.

Os passos do gasoduto são reutilizáveis e podem ser executados sem repetir os passos anteriores se a saída desses passos não tiver mudado. Por exemplo, pode reforçá-lo um modelo sem repetir passos de preparação de dados dispendiosos se os dados não mudarem. Os oleodutos também permitem que os cientistas de dados colaborem enquanto trabalham em áreas separadas de um fluxo de trabalho de aprendizagem automática.

Monitorização e registos

A Azure Machine Learning fornece as seguintes capacidades de monitorização e registo:

Interagindo com o seu espaço de trabalho

Studio

O estúdio Azure Machine Learning oferece uma visão web de todos os artefactos do seu espaço de trabalho. Pode ver resultados e detalhes dos seus conjuntos de dados, experiências, oleodutos, modelos e pontos finais. Também pode gerir recursos de computação e datastores no estúdio.

O estúdio é também onde você acede às ferramentas interativas que fazem parte do Azure Machine Learning:

Ferramentas de programação

Importante

As ferramentas marcadas (pré-visualização) abaixo estão atualmente em visualização pública. A versão de pré-visualização é fornecida sem um acordo de nível de serviço, e não é recomendado para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Passos seguintes

Para começar com a Azure Machine Learning, consulte: