Como o Azure Machine Learning funciona: recursos e ativos

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Este artigo se aplica à segunda versão da CLI do Azure Machine Learning e do SDK do Python (v2). Para ver a versão um (v1), consulte Como o Azure Machine Learning funciona: arquitetura e conceitos (v1)

O Azure Machine Learning inclui vários recursos e ativos para permitir que você realize suas tarefas de aprendizado de máquina. Esses recursos e ativos são necessários para executar qualquer trabalho.

  • Recursos: configuração ou recursos infraestruturais necessários para executar um fluxo de trabalho de aprendizado de máquina. Os recursos incluem:
  • Ativos: criados por meio de comandos do Azure Machine Learning ou como parte de uma execução de treinamento/pontuação. Os ativos têm um controle de versão e podem ser registrados no workspace do Azure Machine Learning. Elas incluem:

Este documento fornece uma visão geral rápida desses recursos e ativos.

Pré-requisitos

Para usar os exemplos de código do SDK do Python neste artigo:

  1. Instalar o SDK do Python v2

  2. Crie uma conexão com sua assinatura do Azure Machine Learning. Todos os exemplos dependem de ml_client. Para criar um workspace, a conexão não precisa de um nome de workspace, pois talvez você ainda não tenha um. Todos os outros exemplos neste artigo exigem que o nome do workspace seja incluído na conexão.

    # import required libraries
    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    
    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    
    # get a handle to the subscription (use this if you haven't created a workspace yet)
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
    
    # all other examples in this article require the connection to include workspace name
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

Workspace

O workspace é o recurso de nível superior para o Azure Machine Learning. Ele fornece um local centralizado para trabalhar com todos os artefatos que você cria ao usar o Azure Machine Learning. O workspace mantém um histórico de todas os trabalhos, incluindo logs, métricas, saída e um instantâneo de seus scripts. O workspace armazena referências a recursos como armazenamentos de dados e computação. Ele também contém todos os ativos, como modelos, ambientes, componentes e ativos de dados.

Criar um workspace

Para criar um workspace usando o SDK do Python v2, é possível usar o seguinte código:

APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)

# specify the workspace details
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    tags=dict(purpose="demo"),
)

ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace

Este notebook do Jupyter mostra outras maneiras de criar um workspace do Azure Machine Learning usando o SDK v2.

Computação

Uma computação é um recurso de computação designado em que você executa seu trabalho ou hospeda seu ponto de extremidade. O Azure Machine Learning oferece suporte aos seguintes tipos de computação:

  • Instância de computação – um ambiente de desenvolvimento totalmente configurado e gerenciado na nuvem. É possível usar a instância como uma computação de treinamento ou inferência para desenvolvimento e teste. É semelhante a uma máquina virtual na nuvem.
  • Cluster de computação – uma infraestrutura de computação gerenciada que permite criar facilmente um cluster de nós de computação de CPU ou GPU na nuvem.
  • Computação sem servidor – um cluster de cálculo que você acessa em tempo real. Ao usar a computação sem servidor, você não precisa criar seu próprio cluster. Todo o gerenciamento do ciclo de vida de computação é descarregado no Azure Machine Learning.
  • Inference cluster – usado para implementar modelos de machine learning treinados para o Serviço de Kubernetes do Azure. Você pode criar um cluster do AKS (Serviço de Kubernetes do Azure) no seu workspace do Azure Machine Learning ou anexar um cluster do AKS existente.
  • Computação anexada – possibilita anexar seus próprios recursos de computação ao seu workspace e usá-los para treinamento e inferência.

Criar um perfil

Para criar um cluster de cálculo usando o SDK do Python v2, é possível usar o seguinte código:

APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)

cluster_basic = AmlCompute(
    name="basic-example",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)

Este Jupyter notebook mostra mais maneiras de criar uma computação usando o SDK v2.

Repositório de dados

Azure Machine Learning armazenamentos de dados mantêm com segurança as informações de conexão para o armazenamento de seu dado no Azure, de modo que você não precisará codificar em seus scripts. É possível registrar e criar um armazenamento de dados para se conectar facilmente à sua conta de armazenamento e acessar os dados em seu serviço de armazenamento subjacente. A CLI v2 e o SDK v2 dão suporte aos seguintes tipos de serviços de armazenamento baseados em nuvem:

  • Contêiner de Blob do Azure
  • Compartilhamento de arquivos do Azure
  • Azure Data Lake
  • Azure Data Lake Gen2

Criar um repositório de dados

Para criar um armazenamento de dados usando o SDK do Python v2, é possível usar o seguinte código:

APLICA-SE A: SDK do Python azure-ai-ml v2 (atual)

import AzureBlobDatastore

blob_datastore1 = AzureBlobDatastore(
    name="blob_example",
    description="Datastore pointing to a blob container.",
    account_name="mytestblobstore",
    container_name="data-container",
    credentials={
        "account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
    },
)
ml_client.create_or_update(blob_datastore1)

Este Jupyter notebook mostra mais maneiras de criar armazenamentos de dados usando o SDK v2.

Para saber mais sobre como usar um armazenamento de dados, consulte Criar e gerenciar ativos de dados.

Modelar

Os modelos do Azure Machine Learning consistem nos arquivos binários que representam um modelo de machine learning e quaisquer metadados correspondentes. Os modelos podem ser criados a partir de um arquivo ou diretório local ou remoto. Para locais remotos https, há suporte para as localizações wasbs e azureml. O modelo criado será rastreado no workspace sob o nome e a versão especificados. O Azure Machine Learning dá suporte a três tipos de formatos de armazenamento para modelos:

  • custom_model
  • mlflow_model
  • triton_model

Criar modelo no registro de modelos

O registro de modelo permite que você armazene e controle a versão de seus modelos na nuvem do Azure em seu workspace. O registro de modelos ajuda você a organizar e manter o controle sobre seus modelos treinados.

Para obter mais informações sobre como criar modelos no registro, consulte Trabalhar com modelos no Azure Machine Learning.

Ambiente

Os ambientes do Azure Machine Learning são um encapsulamento do ambiente no qual acontece a tarefa de aprendizado de máquina. Eles especificam os pacotes de software, as variáveis de ambiente e as configurações de software em relação aos scripts de treinamento e pontuação. Os ambientes são entidades gerenciadas e versionadas dentro do workspace do Machine Learning. Os ambientes permitem fluxos de trabalho de aprendizado de máquina reproduzíveis, auditáveis e portáteis em uma variedade de computações.

Tipos de ambiente

O Azure Machine Learning dá suporte a dois tipos de ambientes: coletado e personalizado.

Os ambientes organizados são fornecidos por Azure Machine Learning e estão disponíveis em seu espaço de trabalho por padrão. Destinados a serem usados como estão, eles contêm coleções de pacotes e configurações do Python para ajudá-lo a começar com várias estruturas do Machine Learning. Esses ambientes pré-criados também permitem um tempo de implantação mais rápido. Para obter uma lista completa, consulte o artigo sobre ambientes organizados.

Em ambientes personalizados, você é responsável por configurar seu ambiente e instalar pacotes ou quaisquer outras dependências necessárias para seu script de treinamento ou pontuação na computação. O Azure Machine Learning permite que você crie seu ambiente usando

  • Uma imagem do docker
  • Uma imagem base do docker com um YAML conda para personalizar ainda mais
  • Um contexto de compilação do docker

Criar um ambiente personalizado do Azure Machine Learning

Para criar um ambiente usando o SDK do Python v2, consulte Criar um ambiente.

Este Jupyter notebook mostra mais maneiras de criar ambientes personalizados usando o SDK v2.

Dados

O Azure Machine Learning permite que você trabalhe com diferentes tipos de dados:

  • URIs (uma localização no armazenamento local/na nuvem)
    • uri_folder
    • uri_file
  • Tabelas (uma abstração de dados tabulares)
    • mltable
  • Primitives
    • string
    • boolean
    • number

Para a maioria dos cenários, você usará URIs (uri_folder e uri_file): um local no armazenamento que pode ser facilmente mapeado para o sistema de arquivos de um nó de computação em um trabalho, montando ou baixando o armazenamento no nó.

mltable é uma abstração para dados tabulares que devem ser usados para Trabalhos AutoML, Trabalhos Paralelos e alguns cenários avançados. Se você estiver apenas começando a usar Azure Machine Learning e não estiver usando o AutoML, recomendamos a você a começar com URIs.

Componente

Um componente do Azure Machine Learning é uma peça independente do código que realiza uma etapa em um pipeline de machine learning. Os componentes são os blocos de construção dos pipelines de machine learning avançados. Os componentes podem executar tarefas como processamento de dados, treinamento de modelo, pontuação de modelo e assim por diante. Um componente é semelhante a uma função: ele tem nome e parâmetros, espera entrada e retorna uma saída.

Próximas etapas