Como funciona o Azure Machine Learning: recursos e ativos

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

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

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

  • Recursos: configuração ou recursos de infraestrutura necessários para executar um fluxo de trabalho de aprendizado de máquina. Os recursos incluem:
  • Ativos: criados usando comandos do Azure Machine Learning ou como parte de uma execução de treinamento/pontuação. Os ativos são versionados e podem ser registrados no espaço de trabalho do Azure Machine Learning. Entre eles contam-se:

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

Pré-requisitos

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

  1. Instale o Python SDK v2

  2. Crie uma conexão com sua assinatura do Azure Machine Learning. Todos os exemplos se baseiam no ml_client. Para criar um espaço de trabalho, a conexão não precisa de um nome de espaço de trabalho, pois talvez você ainda não tenha um. Todos os outros exemplos neste artigo exigem que o nome do espaço de trabalho 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)
    

Área de trabalho

A área de trabalho é o recurso de nível superior do Azure Machine Learning que proporciona um local centralizado para trabalhar com todos os artefactos que cria quando utiliza o Azure Machine Learning. O espaço de trabalho mantém um histórico de todos os trabalhos, incluindo logs, métricas, saída e um instantâneo de seus scripts. O espaço de trabalho armazena referências a recursos como armazenamentos de dados e computação. Ele também detém todos os ativos, como modelos, ambientes, componentes e ativos de dados.

Criar uma área de trabalho

Para criar um espaço de trabalho usando o Python SDK v2, você pode usar o seguinte código:

APLICA-SE A: Python SDK 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 bloco de anotações Jupyter mostra mais maneiras de criar um espaço de trabalho do Azure Machine Learning usando o SDK v2.

Computação

Uma computação é um recurso de computação designado onde você executa seu trabalho ou hospeda seu ponto de extremidade. O Azure Machine Learning suporta os seguintes tipos de computação:

  • Instância de computação - um ambiente de desenvolvimento totalmente configurado e gerenciado na nuvem. Você pode usar a instância como um treinamento ou computação de 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 computação que você acessa instantaneamente. Quando você usa computação sem servidor, não precisa criar seu próprio cluster. Todo o gerenciamento do ciclo de vida da computação é descarregado para o Azure Machine Learning.
  • Cluster de inferência - usado para implantar modelos de aprendizado de máquina treinados no Serviço Kubernetes do Azure. Você pode criar um cluster do Serviço Kubernetes do Azure (AKS) a partir do seu espaço de trabalho do Azure Machine Learning ou anexar um cluster AKS existente.
  • Computação anexada - Você pode anexar seus próprios recursos de computação ao seu espaço de trabalho e usá-los para treinamento e inferência.

Criar uma computação

Para criar um cluster de computação usando o Python SDK v2, você pode usar o seguinte código:

APLICA-SE A: Python SDK 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 bloco de anotações Jupyter mostra mais maneiras de criar computação usando o SDK v2.

Arquivo de dados

Os armazenamentos de dados do Aprendizado de Máquina do Azure mantêm com segurança as informações de conexão com seu armazenamento de dados no Azure, para que você não precise codificá-las em seus scripts. Você pode 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 suportam os seguintes tipos de serviços de armazenamento baseados em nuvem:

  • Contentor de Blobs do Azure
  • Partilha de Ficheiros do Azure
  • Azure Data Lake
  • Azure Data Lake Gen2

Criar um armazenamento de dados

Para criar um armazenamento de dados usando o Python SDK v2, você pode usar o seguinte código:

APLICA-SE A: Python SDK 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 bloco de anotações Jupyter 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.

Modelo

Os modelos do Azure Machine Learning consistem no(s) arquivo(s) binário(s) que representam, um modelo de aprendizado de máquina e quaisquer metadados correspondentes. Os modelos podem ser criados a partir de um arquivo ou diretório local ou remoto. Para locais remotos httpse azuremlwasbs locais são suportados. O modelo criado será rastreado no espaço de trabalho sob o nome e a versão especificados. O Azure Machine Learning suporta três tipos de formato de armazenamento para modelos:

  • custom_model
  • mlflow_model
  • triton_model

Criar um modelo no registro do modelo

O registro de modelo permite que você armazene e faça a versão de seus modelos na nuvem do Azure, em seu espaço de trabalho. O registro de modelos ajuda você a organizar e acompanhar seus modelos treinados.

Para obter mais informações sobre como criar modelos no Registro, consulte Trabalhar com modelos no Aprendizado de Máquina do Azure.

Environment

Os ambientes do Azure Machine Learning são um encapsulamento do ambiente onde sua tarefa de aprendizado de máquina acontece. Eles especificam os pacotes de software, as variáveis de ambiente e as configurações de software em torno de seus scripts de treinamento e pontuação. Os ambientes são entidades gerenciadas e versionadas em seu espaço de trabalho 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 computadores.

Tipos de ambiente

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

Os ambientes selecionados são fornecidos pelo 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 Python e configurações para ajudá-lo a começar com várias estruturas de aprendizado de máquina. 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 com curadoria.

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

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

Criar um ambiente personalizado do Azure Machine Learning

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

Este bloco de anotações Jupyter mostra mais maneiras de criar ambientes personalizados usando o SDK v2.

Dados

O Azure Machine Learning permite-lhe trabalhar com diferentes tipos de dados:

  • URIs (um local no armazenamento local/em nuvem)
    • uri_folder
    • uri_file
  • Tabelas (uma abstração de dados tabulares)
    • mltable
  • Primitivos
    • 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 para o nó.

mltable é uma abstração para dados tabulares que deve ser usada para trabalhos AutoML, trabalhos paralelos e alguns cenários avançados. Se você está apenas começando a usar o Aprendizado de Máquina do Azure e não está usando o AutoML, recomendamos que comece com URIs.

Componente

Um componente do Azure Machine Learning é uma parte de código independente que executa uma etapa em um pipeline de aprendizado de máquina. Os componentes são os blocos de construção de pipelines avançados de aprendizado de máquina. Os componentes podem executar tarefas como processamento de dados, treinamento de modelos, pontuação de modelos e assim por diante. Um componente é análogo a uma função - tem um nome, parâmetros, espera entrada e retorna saída.

Próximos passos