Trabalhar com modelos registados no Azure Machine Learning
APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
Neste artigo, você aprende a registrar e trabalhar com modelos no Azure Machine Learning usando:
- A interface do usuário do estúdio do Azure Machine Learning.
- A CLI do Azure Machine Learning V2.
- O SDK do Python Azure Machine Learning V2.
Sabe como:
- Crie modelos registrados no registro modelo a partir de arquivos locais, datastores ou saídas de trabalho.
- Trabalhe com diferentes tipos de modelos, como personalizados, MLflow e Triton.
- Utilize modelos como entradas ou saídas em trabalhos de formação.
- Gerencie o ciclo de vida dos ativos do modelo.
Registo do modelo
O registo de modelos permite-lhe armazenar e disponibilizar versões dos seus modelos na sua área de trabalho na nuvem do Azure. O registro de modelos ajuda você a organizar e acompanhar seus modelos treinados. Você pode registrar modelos como ativos no Aprendizado de Máquina do Azure usando a CLI do Azure, o SDK do Python ou a interface do usuário do estúdio de Aprendizado de Máquina.
Caminhos suportados
Para registrar um modelo, você precisa especificar um caminho que aponte para os dados ou o local do trabalho. A tabela a seguir mostra os vários locais de dados suportados pelo Azure Machine Learning e a sintaxe do path
parâmetro:
Location | Sintaxe |
---|---|
Computador local | <model-folder>/<model-filename> |
Armazenamento de dados do Azure Machine Learning | azureml://datastores/<datastore-name>/paths/<path_on_datastore> |
Trabalho do Azure Machine Learning | azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> |
Trabalho MLflow | runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> |
Ativo de modelo em um espaço de trabalho de Aprendizado de Máquina | azureml:<model-name>:<version> |
Ativo de modelo em um registro de Aprendizado de Máquina | azureml://registries/<registry-name>/models/<model-name>/versions/<version> |
Modos suportados
Ao usar modelos para entradas ou saídas, você pode especificar um dos seguintes modos. Por exemplo, você pode especificar se o modelo deve ser montado somente leitura ou baixado para o destino de computação.
ro_mount
: Monte os dados no destino de computação como somente leitura.rw_mount
: Leitura-gravação montar os dados.download
: Faça o download dos dados para o destino de computação.upload
: Carregue os dados do destino de computação.direct
: Passe o URI como uma cadeia de caracteres.
A tabela a seguir mostra as opções de modo disponíveis para diferentes entradas e saídas de tipo de modelo.
Type | upload |
download |
ro_mount |
rw_mount |
direct |
---|---|---|---|---|---|
custom Entrada de arquivo |
|||||
custom Entrada de pasta |
✓ | ✓ | ✓ | ||
mlflow entrada |
✓ | ✓ | |||
custom saída do arquivo |
✓ | ✓ | ✓ | ||
custom saída da pasta |
✓ | ✓ | ✓ | ||
mlflow Saída |
✓ | ✓ | ✓ |
Pré-requisitos
- Uma subscrição do Azure com uma versão gratuita ou paga do Azure Machine Learning. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
- Um espaço de trabalho do Azure Machine Learning.
Para executar os exemplos de código neste artigo e trabalhar com a CLI do Azure Machine Learning V2 ou o SDK do Python Azure Machine Learning V2, você também precisa:
Azure CLI versão 2.38.0 ou superior instalada.
V2 da
ml
extensão instalada executando o seguinte comando. Para obter mais informações, consulte Instalar, configurar e usar a CLI (v2).az extension add -n ml
Nota
V2 fornece total compatibilidade com versões anteriores. Você ainda pode usar ativos de modelo do SDK v1 ou da CLI. Todos os modelos registrados com a CLI ou SDK v1 recebem o tipo custom
.
Registrar um modelo usando a interface do usuário do estúdio
Para registrar um modelo usando a interface do usuário do estúdio de Aprendizado de Máquina do Azure:
No seu espaço de trabalho no estúdio, selecione Modelos na navegação à esquerda.
Na página Lista de Modelos, selecione Registrar e selecione um dos seguintes locais na lista suspensa:
- A partir de ficheiros locais
- A partir de uma saída de trabalho
- Do armazenamento de dados
- De arquivos locais (com base na estrutura)
Na primeira tela do modelo de registro :
- Navegue até o arquivo local, armazenamento de dados ou saída de trabalho para seu modelo.
- Selecione o tipo de modelo de entrada: MLflow, Triton ou Tipo não especificado.
Na tela Configurações do modelo , forneça um nome e outras configurações opcionais para seu modelo registrado e selecione Avançar.
Na tela Revisão, revise a configuração e selecione Registrar.
Registrar um modelo usando a CLI do Azure ou o SDK do Python
Os trechos de código a seguir abordam como registrar um modelo como um ativo no Azure Machine Learning usando a CLI do Azure ou o SDK do Python. Esses trechos usam custom
e mlflow
modelam tipos.
custom
type refere-se a um arquivo ou pasta de modelo treinado com um padrão personalizado que o Azure Machine Learning não suporta atualmente.mlflow
type refere-se a um modelo treinado com MLflow. Os modelos treinados em MLflow estão em uma pasta que contém o arquivo MLmodel, o arquivo de modelo, o arquivo de dependências conda e o arquivo requirements.txt.
Gorjeta
Você pode acompanhar as versões Python dos exemplos a seguir executando o bloco de anotações model.ipynb no repositório azureml-examples .
Ligar à sua á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. Nesta seção, você se conecta ao seu espaço de trabalho do Azure Machine Learning para criar o modelo registrado.
Entre no Azure executando
az login
e seguindo os prompts.Nos comandos a seguir, substitua
<subscription-id>
,<workspace-name>
,<resource-group>
e<location>
espaços reservados pelos valores para seu ambiente.az account set --subscription <subscription-id> az configure --defaults workspace=<workspace-name> group=<resource-group> location=<location>
Criar o modelo registado
Você pode criar um modelo registrado a partir de um modelo que:
- Localizado no seu computador local.
- Localizado em um armazenamento de dados do Azure Machine Learning.
- Saída de um trabalho do Azure Machine Learning.
Arquivo ou pasta local
Crie um arquivo <YAML file-name>.yml. No arquivo, forneça um nome para seu modelo registrado, um caminho para o arquivo de modelo local e uma descrição. Por exemplo:
$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json name: local-file-example path: mlflow-model/model.pkl description: Model created from local file.
Execute o seguinte comando, usando o nome do seu arquivo YAML:
az ml model create -f <file-name>.yml
Para obter um exemplo completo, consulte o modelo YAML.
Arquivo de dados
Você pode criar um modelo a partir de um caminho de nuvem usando qualquer um dos formatos de URI suportados.
O exemplo a seguir usa o esquema abreviado azureml
para apontar para um caminho no armazenamento de dados usando a sintaxe azureml://datastores/<datastore-name>/paths/<path_on_datastore>
.
az ml model create --name my-model --version 1 --path azureml://datastores/myblobstore/paths/models/cifar10/cifar.pt
Para obter um exemplo completo, consulte a referência da CLI.
Saída da tarefa
Se os dados do modelo vierem de uma saída de trabalho, você terá duas opções para especificar o caminho do modelo. Você pode usar o formato URI MLflow runs:
ou o azureml://jobs
formato URI.
Nota
A palavra-chave artifacts reserved representa a saída do local do artefato padrão.
MLflow é executado: formato URI
Essa opção é otimizada para usuários do MLflow, que provavelmente já estão familiarizados com o formato URI do MLflow
runs:
. Esta opção cria um modelo a partir de artefatos no local de artefato padrão, onde todos os modelos e artefatos registrados em MLflow estão localizados. Esta opção também estabelece uma linhagem entre um modelo registrado e a execução da qual o modelo veio.Formato:
runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Exemplo:
az ml model create --name my-registered-model --version 1 --path runs:/my_run_0000000000/model/ --type mlflow_model
azureml://jobs formato URI
A
azureml://jobs
opção URI de referência permite registrar um modelo de artefatos em qualquer um dos caminhos de saída do trabalho. Esse formato se alinha com oazureml://datastores
formato URI de referência e também oferece suporte à referência de artefatos de saídas nomeadas diferentes do local de artefato padrão.Se você não registrou diretamente seu modelo no script de treinamento usando MLflow, poderá usar essa opção para estabelecer uma linhagem entre um modelo registrado e o trabalho a partir do qual ele foi treinado.
Formato:
azureml://jobs/<run-id>/outputs/<output-name>/paths/<path-to-model>
- Local do artefato padrão:
azureml://jobs/<run-id>/outputs/artifacts/paths/<path-to-model>/
. Este local é equivalente ao MLflowruns:/<run-id>/<model>
. - Pasta de saída nomeada:
azureml://jobs/<run-id>/outputs/<named-output-folder>
- Arquivo específico dentro da pasta de saída nomeada:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-filename>
- Caminho da pasta específica dentro da pasta de saída nomeada:
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-folder-name>
Exemplo:
Salve um modelo de uma pasta de saída nomeada:
az ml model create --name run-model-example --version 1 --path azureml://jobs/my_run_0000000000/outputs/artifacts/paths/model/
Para obter um exemplo completo, consulte a referência da CLI.
- Local do artefato padrão:
Utilizar modelos para formação
A CLI do Azure v2 e o SDK do Python também permitem que você use modelos como entradas ou saídas em trabalhos de treinamento.
Usar um modelo como entrada em um trabalho de treinamento
Crie um arquivo YAML de especificação de trabalho, <file-name>.yml.
inputs
Na seção do trabalho, especifique:- O modelo
type
, que pode sermlflow_model
,custom_model
outriton_model
. - O
path
local onde seu modelo está localizado, que pode ser qualquer um dos caminhos listados no comentário do exemplo a seguir.
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json # Possible Paths for models: # AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore> # MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> # Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> # Model Asset: azureml:<my_model>:<version> command: | ls ${{inputs.my_model}} inputs: my_model: type: mlflow_model # List of all model types here: https://learn.microsoft.com/azure/machine-learning/reference-yaml-model#yaml-syntax path: ../../assets/model/mlflow-model environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
- O modelo
Execute o seguinte comando, substituindo o nome do arquivo YAML.
az ml job create -f <file-name>.yml
Para obter um exemplo completo, consulte o modelo de repositório GitHub.
Escrever um modelo como saída para um trabalho
Seu trabalho pode escrever um modelo em seu armazenamento baseado em nuvem usando saídas.
Crie um nome de arquivo YAML de <especificação de trabalho.yml.> Preencha a
outputs
seção com o tipo e o caminho do modelo de saída.$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json # Possible Paths for Model: # Local path: mlflow-model/model.pkl # AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore> # MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> # Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> # Model Asset: azureml:<my_model>:<version> code: src command: >- python hello-model-as-output.py --input_model ${{inputs.input_model}} --custom_model_output ${{outputs.output_folder}} inputs: input_model: type: mlflow_model # mlflow_model,custom_model, triton_model path: ../../assets/model/mlflow-model outputs: output_folder: type: custom_model # mlflow_model,custom_model, triton_model environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
Crie um trabalho usando a CLI:
az ml job create --file <file-name>.yml
Para obter um exemplo completo, consulte o modelo de repositório GitHub.
Gerir modelos
A CLI do Azure e o SDK do Python também permitem que você gerencie o ciclo de vida dos ativos de modelo do Azure Machine Learning.
Listagem
Liste todos os modelos em seu espaço de trabalho:
az ml model list
Liste todas as versões do modelo sob um determinado nome:
az ml model list --name run-model-example
Mostrar
Obtenha os detalhes de um modelo específico:
az ml model show --name run-model-example --version 1
Atualizar
Atualizar propriedades mutáveis de um modelo específico:
Importante
Para modelos, apenas description
e tags
pode ser atualizado. Todas as outras propriedades são imutáveis e, se você precisar alterá-las, deverá criar uma nova versão do modelo.
az ml model update --name run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"
Arquivo
O arquivamento de um modelo o oculta de consultas de lista, como az ml model list
por padrão. Você pode continuar a fazer referência e usar um modelo arquivado em seus fluxos de trabalho.
Você pode arquivar todas as versões ou apenas versões específicas de um modelo. Se você não especificar uma versão, todas as versões do modelo serão arquivadas. Se você criar uma nova versão do modelo em um contêiner de modelo arquivado, a nova versão também será definida automaticamente como arquivada.
Arquivar todas as versões de um modelo:
az ml model archive --name run-model-example
Arquivar uma versão específica do modelo:
az ml model archive --name run-model-example --version 1