Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
APLICA-SE A:
Azure CLI ml extension v2 (current)
Python SDK azure-ai-ml v2 (current)
Os ambientes do Azure Machine Learning definem os ambientes de execução para os seus trabalhos ou implementações e encapsulam as dependências do seu código. O Azure Machine Learning usa a especificação de ambiente para criar o contêiner do Docker no qual seu código de treinamento ou pontuação é executado no destino de computação especificado. Pode definir um ambiente a partir de uma especificação conda, imagem do Docker ou contexto de compilação do Docker.
Neste artigo, saiba como criar e gerenciar ambientes do Azure Machine Learning usando o SDK & CLI (v2).
Pré-requisitos
Uma área de trabalho do Azure Machine Learning. Para obter instruções sobre como criar um espaço de trabalho, consulte Criar o espaço de trabalho.
A CLI do Azure e a extensão
mlou o SDK do Python do Azure Machine Learning v2:Para instalar a CLI do Azure e a
mlextensão, consulte Instalar e configurar a CLI (v2).Os exemplos neste artigo pressupõem que você use um shell Bash ou um shell compatível. Por exemplo, você pode usar um shell em um sistema Linux ou Subsistema Windows para Linux.
Gorjeta
Para um ambiente de desenvolvimento completo, use o Visual Studio Code e a extensão do Azure Machine Learning para gerenciar recursos do Azure Machine Learning e treinar modelos de aprendizado de máquina.
Repositório de exemplos de clonagem
Para executar os exemplos de treinamento, primeiro clone o repositório de exemplos. Para os exemplos de CLI, altere para o cli diretório. Para os exemplos do SDK, altere para o sdk/python/assets/environment diretório:
git clone --depth 1 https://github.com/Azure/azureml-examples
O --depth 1 parâmetro clona apenas a confirmação mais recente no repositório, o que reduz o tempo para concluir a operação.
Conectar-se ao espaço de trabalho
Gorjeta
Use as guias a seguir para selecionar o método que você deseja usar para trabalhar com ambientes. A seleção de uma guia alterna automaticamente todas as guias deste artigo para a mesma guia. Você pode selecionar outra guia a qualquer momento.
Ao usar a CLI do Azure, você precisa de parâmetros de identificador - uma assinatura, um grupo de recursos e um nome de espaço de trabalho. Embora você possa especificar esses parâmetros para cada comando, você também pode definir padrões que são usados para todos os comandos. Use os comandos a seguir para definir valores padrão. Substitua <subscription ID>, <Azure Machine Learning workspace name>e <resource group> pelos valores para sua configuração:
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Ambientes organizados
Há dois tipos de ambientes no Azure Machine Learning: ambientes com curadoria e personalizados. Os ambientes selecionados são ambientes predefinidos que contêm estruturas e ferramentas de ML populares. Os ambientes personalizados são definidos pelo usuário e podem ser criados via az ml environment create.
Os ambientes com curadoria são fornecidos pelo Azure Machine Learning e estão disponíveis por padrão. O Azure Machine Learning atualiza rotineiramente esses ambientes com as versões mais recentes da estrutura e os mantém para correções de bugs e patches de segurança. Eles são apoiados por imagens do Docker armazenadas em cache, que reduzem o custo de preparação do trabalho e o tempo de implantação do modelo.
Você pode usar esses ambientes com curadoria prontos para treinamento ou implantação, fazendo referência a uma versão específica ou à versão mais recente do ambiente. Use a seguinte sintaxe: azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> ou azureml://registries/azureml/environment/<curated-environment-name>/labels/latest. Você também pode usá-los como uma referência para seus próprios ambientes personalizados, modificando os Dockerfiles que apoiam esses ambientes selecionados.
Você pode ver o conjunto de ambientes selecionados disponíveis na interface do usuário do estúdio do Azure Machine Learning ou usando a CLI (v2) via az ml environment list.
Gorjeta
Quando você trabalha com ambientes selecionados na CLI ou SDK, o nome do ambiente começa com AzureML- seguido pelo nome do ambiente curado. Quando você usa o estúdio de Aprendizado de Máquina do Azure, eles não têm esse prefixo. A razão para essa diferença é que a interface do usuário do estúdio exibe ambientes selecionados e personalizados em guias separadas, portanto, o prefixo não é necessário. A CLI e o SDK não têm essa separação, portanto, o prefixo é usado para diferenciar entre ambientes curados e personalizados.
Criar um ambiente personalizado
Você pode definir um ambiente a partir de uma imagem do Docker, um contexto de construção do Docker e uma especificação de conda com imagem do Docker.
Criar um ambiente a partir de uma imagem do Docker
Para definir um ambiente a partir de uma imagem do Docker, forneça o URI da imagem hospedada em um Registro, como o Docker Hub ou o Azure Container Registry.
O exemplo a seguir é um arquivo de especificação YAML para um ambiente definido a partir de uma imagem do Docker. Uma imagem do repositório oficial do PyTorch no Docker Hub é especificada através da image propriedade no arquivo YAML.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-example
image: pytorch/pytorch:latest
description: Environment created from a Docker image.
Para criar o ambiente:
az ml environment create --file assets/environment/docker-image.yml
Gorjeta
O Azure Machine Learning mantém um conjunto de imagens base de CPU e GPU baseadas no Ubuntu Linux com dependências comuns do sistema. Por exemplo, as imagens da GPU contêm Miniconda, OpenMPI, CUDA, CUDNN E NCCL. Você pode usar essas imagens para seus ambientes ou usar seus Dockerfiles correspondentes como referência ao criar suas próprias imagens personalizadas.
Para obter o conjunto de imagens base e seus Dockerfiles correspondentes, consulte o repositório AzureML-Containers.
Criar um ambiente a partir de um contexto de compilação do Docker
Em vez de definir um ambiente a partir de uma imagem pré-criada, você também pode definir um a partir de um contexto de compilação do Docker. Para fazer isso, especifique o diretório que serve como o contexto de compilação. Este diretório deve conter um Dockerfile (não maior que 1MB) e quaisquer outros arquivos necessários para construir a imagem.
O exemplo a seguir é um arquivo de especificação YAML para um ambiente definido a partir de um contexto de compilação. pt-PT: O caminho local para a pasta de contexto de compilação é especificado no campo build.path, e o caminho relativo para o Dockerfile dentro dessa pasta é especificado no campo build.dockerfile_path. Se build.dockerfile_path for omitido no arquivo YAML, o Aprendizado de Máquina do Azure procurará um Dockerfile nomeado Dockerfile na raiz do contexto de compilação.
Neste exemplo, o contexto de compilação contém um Dockerfile nomeado Dockerfile e um requirements.txt arquivo que é referenciado dentro do Dockerfile para instalar pacotes Python.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-context-example
build:
path: docker-contexts/python-and-pip
Para criar o ambiente:
az ml environment create --file assets/environment/docker-context.yml
O Azure Machine Learning começa a criar a imagem a partir do contexto de compilação quando o ambiente é criado. Você pode monitorar o status da compilação e exibir os logs de compilação na interface do usuário do estúdio.
Criar um ambiente a partir de uma especificação do conda
Você pode definir um ambiente usando um arquivo de configuração YAML conda padrão que inclui as dependências para o ambiente conda. Consulte Criando um ambiente manualmente para obter informações sobre esse formato padrão.
Você também deve especificar uma imagem base do Docker para esse ambiente. O Azure Machine Learning constrói o ambiente conda com base na imagem Docker fornecida. Se você instalar algumas dependências do Python na imagem do Docker, esses pacotes não existirão no ambiente de execução, causando falhas de tempo de execução. Por padrão, o Aprendizado de Máquina do Azure cria um ambiente Conda com dependências especificadas e executa o trabalho nesse ambiente em vez de usar quaisquer bibliotecas Python instaladas na imagem base.
O exemplo a seguir é um arquivo de especificação YAML para um ambiente definido a partir de uma especificação conda. Aqui, o caminho relativo para o arquivo conda do arquivo YAML do ambiente do Azure Machine Learning é especificado por meio da conda_file propriedade. Como alternativa, você pode definir a especificação conda inline usando a conda_file propriedade, em vez de defini-la em um arquivo separado.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-plus-conda-example
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
conda_file: conda-yamls/pydata.yml
description: Environment created from a Docker image plus Conda environment.
Para criar o ambiente:
az ml environment create --file assets/environment/docker-image-plus-conda.yaml
O Azure Machine Learning cria a imagem final do Docker a partir dessa especificação de ambiente quando o ambiente é usado em um trabalho ou implantação. Você também pode acionar manualmente uma construção do ambiente na interface do usuário do estúdio.
Gerir ambientes
O SDK e a CLI (v2) também permitem que você gerencie o ciclo de vida dos ativos do ambiente do Azure Machine Learning.
Lista
Liste todos os ambientes em seu espaço de trabalho:
az ml environment list
Liste todas as versões do ambiente sob um determinado nome:
az ml environment list --name docker-image-example
Mostrar
Obtenha os detalhes de um ambiente específico:
az ml environment show --name docker-image-example --version 1
Atualizar
Atualizar propriedades mutáveis de um ambiente específico:
az ml environment update --name docker-image-example --version 1 --set description="This is an updated description."
Importante
Para ambientes, apenas description e tags podem ser atualizados. Todas as outras propriedades são imutáveis; Se você precisar alterar qualquer uma dessas propriedades, deverá criar uma nova versão do ambiente.
Arquivo
O arquivamento de um ambiente o oculta por padrão das consultas de lista (az ml environment list). Você ainda pode continuar a fazer referência e usar um ambiente arquivado em seus fluxos de trabalho. Você pode arquivar todas as versões de um ambiente ou apenas uma versão específica.
Se você não especificar uma versão, todas as versões do ambiente sob esse nome serão arquivadas. Se você criar uma nova versão de ambiente em um contêiner de ambiente arquivado, essa nova versão também será automaticamente definida como arquivada.
Arquivar todas as versões de um ambiente:
az ml environment archive --name docker-image-example
Arquivar uma versão específica do ambiente:
az ml environment archive --name docker-image-example --version 1
Importante
O arquivamento da versão de um ambiente não exclui a imagem armazenada em cache no registro do contêiner. Se desejar excluir a imagem em cache associada a um ambiente específico, você pode usar o comando az acr repository delete no repositório associado do ambiente.
Usar ambientes para treinamento
Para usar um ambiente personalizado para um trabalho de treinamento, especifique o environment campo da configuração do YAML do trabalho. Você pode fazer referência a um ambiente de Aprendizado de Máquina do Azure registrado existente via environment: azureml:<environment-name>:<environment-version> ou environment: azureml:<environment-name>@latest (para fazer referência à versão mais recente de um ambiente) ou definir uma especificação de ambiente embutida. Se estiver a definir um ambiente embutido, não especifique os campos name e version, pois esses ambientes são considerados como "não registrados" e não constam no registo de ativos do ambiente.
Quando você envia um trabalho de treinamento, a construção de um novo ambiente pode levar vários minutos. A duração depende do tamanho das dependências exigidas. Os ambientes são armazenados em cache pelo serviço. Assim, desde que a definição do ambiente permaneça inalterada, você incorrerá no tempo de configuração total apenas uma vez.
Para obter mais informações sobre como usar ambientes em trabalhos, consulte Modelos de treinamento.
Usar ambientes para implantações de modelos
Você também pode usar ambientes para as suas implementações de modelo para pontuação online e em lote. Para fazer isso, especifique o environment campo na configuração do YAML de implantação.
Para obter mais informações sobre como usar ambientes em implantações, consulte Implantar e avaliar um modelo de aprendizagem automática usando um ponto de extremidade online.