Partilhar via


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 e do 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 com 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, porque 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
    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)
    

Área de trabalho

Um espaço de trabalho é o recurso de nível superior para o Azure Machine Learning, fornecendo um local centralizado para trabalhar com todos os artefatos que você cria quando usa 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 conté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"),
)
# 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 espaço de trabalho do Azure Machine Learning usando o SDK v2, consulte este bloco de anotações Jupyter.

Para obter informações mais detalhadas sobre como criar um espaço de trabalho, consulte Gerenciar espaços de trabalho 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 onde se executa o seu trabalho ou hospeda o seu endpoint. 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 (AKS). Você pode criar um cluster do Serviço Kubernetes do Azure 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 um recurso de 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)

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 bloco de anotações Jupyter.

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

Arquivo de dados

Os armazenamentos de dados do Azure Machine Learning mantêm com segurança as informações de conexão para 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:

  • Contêiner de Blob do Azure
  • Partilha de ficheiros do Azure
  • Azure Data Lake Storage
  • Azure Data Lake Storage 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)

Para obter mais maneiras de criar armazenamentos de dados usando o SDK v2, consulte este bloco de anotações Jupyter.

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 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 wasbsazureml locais são suportados. O modelo criado é rastreado no espaço de trabalho sob o nome e a versão especificados. O Azure Machine Learning suporta três tipos de formatos 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.

Meio Ambiente

Um ambiente do Azure Machine Learning é um encapsulamento do ambiente onde sua tarefa de aprendizado de máquina 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 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 vários computadores.

Tipos de ambientes

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 do Docker.
  • Uma imagem base do Docker com um arquivo Conda YAML para personalizações adicionais.
  • 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 Python SDK v2, consulte Criar um ambiente.

Para obter mais maneiras de criar ambientes personalizados usando o SDK v2, consulte este bloco de anotações Jupyter.

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

Dados

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

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

Para a maioria dos cenários, utiliza-se URIs (uri_folder e uri_file) para um local no armazenamento que pode ser facilmente mapeado para o sistema de ficheiros de um nó de cálculo num trabalho, seja por montar ou baixar o armazenamento para o nó.

mltable é uma abstração para dados tabulares que é 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 você comece com URIs.

Componente

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