Compartilhar via


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 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 com 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. Instale 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
    from azure.ai.ml.entities import AmlCompute
    
    # 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 that the connection include a workspace name.
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

Espaço de trabalho

Um workspace é o recurso de nível superior do Azure Machine Learning, fornecendo um local centralizado para trabalhar com todos os artefatos criados 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, você pode usar o seguinte código:

APLICA-SE A: SDK 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"),
)
# Use MLClient to connect to the subscription and resource group and create the workspace.
ml_client.workspaces.begin_create(ws) 

Para obter mais maneiras de criar um workspace do Azure Machine Learning usando o SDK v2, consulte este jupyter notebook.

Para obter informações mais detalhadas sobre como criar um workspace, confira Gerenciar workspaces do Azure Machine Learning no portal ou com o SDK do Python (v2).

Computação

Um recurso de computação é um recurso de computação designado em que você executa seu trabalho ou hospeda seu endpoint. 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 computação 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.
  • Cluster de inferência. Usado para implantar modelos de machine learning treinados no AKS (Serviço de Kubernetes do Azure). Você pode criar um cluster do Serviço de Kubernetes do Azure a partir do workspace do Azure Machine Learning ou anexar um cluster do AKS existente.
  • Computação anexada. Você pode anexar seus próprios recursos de computação ao seu workspace e usá-los para treinamento e inferência.

Criar um recurso de computação

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

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

from azure.ai.ml.entities import AmlCompute
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)

Para obter mais maneiras de criar computação usando o SDK v2, consulte este jupyter notebook.

Para obter informações mais detalhadas sobre como criar computação, confira:

Repositório de dados

Os armazenamentos de dados do Azure Machine Learning mantêm com segurança as informações de conexão do armazenamento de dados no Azure, para que você não precise 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 blobs do Azure
  • Compartilhamento de arquivo do Azure
  • Azure Data Lake Storage
  • Azure Data Lake Storage Gen2

Criar um repositório de dados

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

APLICA-SE A: SDK 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)

Para obter mais maneiras de criar armazenamentos de dados usando o SDK v2, consulte este jupyter notebook.

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 em um ou mais 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 é acompanhado 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

Um ambiente do Azure Machine Learning é um encapsulamento do ambiente em que sua tarefa de machine learning acontece. Ele especifica os pacotes de software, variáveis de ambiente e configurações de software para seus scripts de treinamento e pontuação. Os ambientes são entidades gerenciadas e com controle de versão em seu workspace do Machine Learning. Os ambientes permitem fluxos de trabalho de aprendizado de máquina reproduzíveis, auditáveis e portáteis em várias computações.

Tipos de ambiente

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

Os ambientes coletados 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 próprio ambiente usando:

  • Uma imagem do Docker.
  • Uma imagem Docker base com um arquivo YAML do Conda para outras personalizações.
  • Um contexto de construção do Docker.

Criar um ambiente personalizado do Azure Machine Learning

Para obter informações sobre como criar um ambiente usando o SDK do Python v2, consulte Criar um ambiente.

Para obter mais maneiras de criar ambientes personalizados usando o SDK v2, consulte este jupyter notebook.

Para obter mais informações sobre ambientes, consulte Criar e gerenciar ambientes no Azure Machine Learning.

Dados

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

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

Para a maioria dos cenários, use URIs (uri_folder e uri_file) para 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 usados para trabalhos AutoML, trabalhos paralelos e alguns cenários avançados. Se você estiver apenas começando a usar o Azure Machine Learning e não estiver usando o AutoML, recomendamos que você comece com URIs.

Componente

Um componente do Azure Machine Learning é um código independente que conclui 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 realizar tarefas como processamento de dados, treinamento de modelo e pontuação de modelo. Um componente é análogo a uma função: ele tem um nome e parâmetros, espera entrada e retorna a saída.