Model Classe
Representa o resultado da preparação de machine learning.
Um modelo é o resultado de uma preparação Run do Azure Machine Learning ou de outro processo de preparação de modelos fora do Azure. Independentemente da forma como o modelo é produzido, pode ser registado numa área de trabalho, onde é representado por um nome e uma versão. Com a classe Modelo, pode empacotar modelos para utilização com o Docker e implementá-los como um ponto final em tempo real que pode ser utilizado para pedidos de inferência.
Para um tutorial completo que mostra como os modelos são criados, geridos e consumidos, veja Preparar um modelo de classificação de imagens com dados MNIST e scikit-learn com o Azure Machine Learning.
Construtor de modelos.
O construtor Modelo é utilizado para obter uma representação na cloud de um objeto Modelo associado à área de trabalho fornecida. Tem de fornecer um nome ou um ID.
- Herança
-
builtins.objectModel
Construtor
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
Parâmetros
- name
- str
O nome do modelo a obter. O modelo mais recente com o nome especificado é devolvido, se existir.
- id
- str
O ID do modelo a obter. O modelo com o ID especificado é devolvido, se existir.
- tags
- list
Uma lista opcional de etiquetas utilizadas para filtrar os resultados devolvidos. Os resultados são filtrados com base na lista fornecida, ao procurar por "chave" ou "[chave, valor]". Por exemplo: ['key', ['key2', 'key2 value']]
- properties
- list
Uma lista opcional de propriedades utilizadas para filtrar os resultados devolvidos. Os resultados são filtrados com base na lista fornecida, ao procurar por "chave" ou "[chave, valor]". Por exemplo: ['key', ['key2', 'key2 value']]
- version
- int
A versão do modelo a devolver. Quando fornecido juntamente com o name
parâmetro , a versão específica do modelo nomeado especificado é devolvida, se existir. Se version
for omitido, é devolvida a última versão do modelo.
- model_framework
- str
Nome de arquitetura opcional utilizado para filtrar os resultados devolvidos. Se especificado, os resultados são devolvidos para os modelos que correspondem à arquitetura especificada. Veja Framework os valores permitidos.
- name
- str
O nome do modelo a obter. O modelo mais recente com o nome especificado é devolvido, se existir.
- tags
- list
Uma lista opcional de etiquetas utilizadas para filtrar os resultados devolvidos. Os resultados são filtrados com base na lista fornecida, ao procurar por "chave" ou "[chave, valor]". Por exemplo: ['key', ['key2', 'key2 value']]
- properties
- list
Uma lista opcional de propriedades utilizadas para filtrar os resultados devolvidos. Os resultados são filtrados com base na lista fornecida, ao procurar por "chave" ou "[chave, valor]". Por exemplo: ['key', ['key2', 'key2 value']]
- version
- int
A versão do modelo a devolver. Quando fornecido juntamente com o name
parâmetro , a versão específica do modelo nomeado especificado é devolvida, se existir. Se version
for omitido, é devolvida a última versão do modelo.
- model_framework
- str
Nome de arquitetura opcional utilizado para filtrar os resultados devolvidos. Se especificado, os resultados são devolvidos para os modelos que correspondem à arquitetura especificada. Veja Framework os valores permitidos.
- expand
- bool
Se for verdadeiro, devolverá modelos com todos os subpropriedades preenchidos, por exemplo, execução, conjunto de dados e experimentação.
Observações
O construtor Modelo é utilizado para obter uma representação na cloud de um objeto Modelo associado à área de trabalho especificada. Pelo menos, o nome ou ID tem de ser fornecido para obter modelos, mas também existem outras opções para filtragem, incluindo por etiquetas, propriedades, versão, ID de execução e arquitetura.
from azureml.core.model import Model
model = Model(ws, 'my_model_name')
O exemplo seguinte mostra como obter uma versão específica de um modelo.
from azureml.core.model import Model
model = Model(ws, 'my_model_name', version=1)
Registar um modelo cria um contentor lógico para um ou mais ficheiros que compõem o seu modelo. Além do conteúdo do próprio ficheiro de modelo, um modelo registado também armazena metadados de modelo, incluindo a descrição do modelo, etiquetas e informações de arquitetura, que são úteis ao gerir e implementar o modelo na sua área de trabalho. Por exemplo, com etiquetas, pode categorizar os seus modelos e aplicar filtros ao listar modelos na sua área de trabalho. Após o registo, pode transferir ou implementar o modelo registado e receber todos os ficheiros e metadados registados.
O exemplo seguinte mostra como registar um modelo que especifica etiquetas e uma descrição.
from azureml.core.model import Model
model = Model.register(model_path="sklearn_regression_model.pkl",
model_name="sklearn_regression_model",
tags={'area': "diabetes", 'type': "regression"},
description="Ridge regression model to predict diabetes",
workspace=ws)
O exemplo completo está disponível a partir de https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb
O exemplo seguinte mostra como registar um modelo que especifica a arquitetura, os conjuntos de dados de entrada e saída e a configuração de recursos.
import sklearn
from azureml.core import Model
from azureml.core.resource_configuration import ResourceConfiguration
model = Model.register(workspace=ws,
model_name='my-sklearn-model', # Name of the registered model in your workspace.
model_path='./sklearn_regression_model.pkl', # Local file to upload and register as a model.
model_framework=Model.Framework.SCIKITLEARN, # Framework used to create the model.
model_framework_version=sklearn.__version__, # Version of scikit-learn used to create the model.
sample_input_dataset=input_dataset,
sample_output_dataset=output_dataset,
resource_configuration=ResourceConfiguration(cpu=1, memory_in_gb=0.5),
description='Ridge regression model to predict diabetes progression.',
tags={'area': 'diabetes', 'type': 'regression'})
print('Name:', model.name)
print('Version:', model.version)
A secção Variables (Variáveis ) lista os atributos de uma representação local do objeto de Modelo de cloud. Estas variáveis devem ser consideradas só de leitura. A alteração dos respetivos valores não será refletida no objeto de cloud correspondente.
Variáveis
- created_by
- dict
O utilizador que criou o Modelo.
- created_time
- datetime
Quando o Modelo foi criado.
- azureml.core.Model.description
Uma descrição do objeto Modelo.
- azureml.core.Model.id
O ID do Modelo. Esta ação assume a forma de nome> do <modelo:<versão> do modelo.
- mime_type
- str
O tipo de mime Modelo.
- azureml.core.Model.name
O nome do Modelo.
- model_framework
- str
A arquitetura do Modelo.
- model_framework_version
- str
A versão de arquitetura do Modelo.
- azureml.core.Model.tags
Um dicionário de etiquetas para o objeto Modelo.
- azureml.core.Model.properties
Dicionário de propriedades de valor de chave para o Modelo. Estas propriedades não podem ser alteradas após o registo. No entanto, podem ser adicionados novos pares de valores chave.
- unpack
- bool
Se o Modelo precisa ou não de ser desempacotado (não compactado) quando solicitado para um contexto local.
- url
- str
A localização do URL do Modelo.
- azureml.core.Model.version
A versão do Modelo.
- azureml.core.Model.workspace
A Área de Trabalho que contém o Modelo.
- azureml.core.Model.experiment_name
O nome da Experimentação que criou o Modelo.
- azureml.core.Model.run_id
O ID da Execução que criou o Modelo.
- parent_id
- str
O ID do Modelo principal do Modelo.
- resource_configuration
- ResourceConfiguration
ResourceConfiguration para este Modelo. Utilizado para criação de perfis.
Métodos
add_dataset_references |
Associe os conjuntos de dados fornecidos a este Modelo. |
add_properties |
Adicione pares chave-valor ao dicionário de propriedades deste modelo. |
add_tags |
Adicione pares de valores chave ao dicionário de etiquetas deste modelo. |
delete |
Elimine este modelo da área de trabalho associada. |
deploy |
Implementar um webservice a partir de zero ou mais Model objetos. O Webservice resultante é um ponto final em tempo real que pode ser utilizado para pedidos de inferência. A função Model |
deserialize |
Converter um objeto JSON num objeto de modelo. A conversão falhará se a área de trabalho especificada não for a área de trabalho na qual o modelo está registado. |
download |
Transfira o modelo para o diretório de destino do sistema de ficheiros local. |
get_model_path |
Devolva o caminho para o modelo. A função irá procurar o modelo nas seguintes localizações. Se
Se
|
get_sas_urls |
Devolver um dicionário de pares chave-valor que contenham nomes de ficheiro e URLs de SAS correspondentes. |
list |
Obtenha uma lista de todos os modelos associados à área de trabalho fornecida, com filtros opcionais. |
package |
Crie um pacote de modelo na forma de uma imagem do Docker ou do contexto de compilação do Dockerfile. |
print_configuration |
Imprima a configuração do utilizador. |
profile |
Cria perfis no modelo para obter recomendações de requisitos de recursos. Esta é uma operação de execução prolongada que pode demorar até 25 minutos, dependendo do tamanho do conjunto de dados. |
register |
Registe um modelo com a área de trabalho fornecida. |
remove_tags |
Remova as chaves especificadas do dicionário de etiquetas deste modelo. |
serialize |
Converta este Modelo num dicionário json serializado. |
update |
Efetue uma atualização no local do modelo. Os valores existentes dos parâmetros especificados são substituídos. |
update_tags_properties |
Efetue uma atualização das etiquetas e propriedades do modelo. |
add_dataset_references
Associe os conjuntos de dados fornecidos a este Modelo.
add_dataset_references(datasets)
Parâmetros
- datasets
- list[tuple(<xref:str :> (Dataset ou DatasetSnapshot))]
Uma lista de cadeias de identificação que representam um emparelhamento da finalidade do conjunto de dados com o objeto Conjunto de dados.
Exceções
add_properties
Adicione pares chave-valor ao dicionário de propriedades deste modelo.
add_properties(properties)
Parâmetros
Exceções
add_tags
Adicione pares de valores chave ao dicionário de etiquetas deste modelo.
add_tags(tags)
Parâmetros
Exceções
delete
deploy
Implementar um webservice a partir de zero ou mais Model objetos.
O Webservice resultante é um ponto final em tempo real que pode ser utilizado para pedidos de inferência. A função Model deploy
é semelhante à deploy
função da Webservice classe, mas não regista os modelos. Utilize a função Modelo deploy
se tiver objetos de modelo que já estejam registados.
static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)
Parâmetros
- name
- str
O nome a atribuir ao serviço implementado. Tem de ser exclusivo da área de trabalho, consistir apenas em letras minúsculas, números ou travessões, começar com uma letra e ter entre 3 e 32 carateres.
- inference_config
- InferenceConfig
Um objeto InferenceConfig utilizado para determinar as propriedades de modelo necessárias.
- deployment_config
- WebserviceDeploymentConfiguration
Um WebserviceDeploymentConfiguration utilizado para configurar o webservice. Se não for fornecido um, será utilizado um objeto de configuração vazio com base no destino pretendido.
- deployment_target
- ComputeTarget
A ComputeTarget para implementar o Webservice em. Como Azure Container Instances não ComputeTargettem nenhum , deixe este parâmetro como Nenhum para implementar no Azure Container Instances.
- overwrite
- bool
Indica se deve substituir o serviço existente se já existir um serviço com o nome especificado.
- show_output
- bool
Indica se pretende apresentar o progresso da implementação do serviço.
Devoluções
Um objeto webservice correspondente ao webservice implementado.
Tipo de retorno
Exceções
deserialize
Converter um objeto JSON num objeto de modelo.
A conversão falhará se a área de trabalho especificada não for a área de trabalho na qual o modelo está registado.
static deserialize(workspace, model_payload)
Parâmetros
Devoluções
A representação do Modelo do objeto JSON fornecido.
Tipo de retorno
Exceções
download
Transfira o modelo para o diretório de destino do sistema de ficheiros local.
download(target_dir='.', exist_ok=False, exists_ok=None)
Parâmetros
- target_dir
- str
O caminho para um diretório no qual transferir o modelo. A predefinição é "".
- exist_ok
- bool
Indica se deve substituir dir/ficheiros transferidos se existirem. Predefinições para Falso.
Devoluções
O caminho para o ficheiro ou pasta do modelo.
Tipo de retorno
Exceções
get_model_path
Devolva o caminho para o modelo.
A função irá procurar o modelo nas seguintes localizações.
Se version
for Nenhum:
- Transferir da área de trabalho remota para a cache (se for fornecida)
- Carregar a partir de cache azureml-models/$MODEL_NAME/$LATEST_VERSION/
- ./$MODEL_NAME
Se version
não for Nenhum:
- Carregar a partir de cache azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/
- Transferir da área de trabalho remota para a cache (se for fornecida)
static get_model_path(model_name, version=None, _workspace=None)
Parâmetros
- version
- int
A versão do modelo a obter. Predefinição para a versão mais recente.
- _workspace
- Workspace
A área de trabalho a partir da qual obter um modelo. Não é possível utilizar remotamente. Se não for especificado apenas a cache local é pesquisada.
Devoluções
O caminho no disco para o modelo.
Tipo de retorno
Exceções
get_sas_urls
Devolver um dicionário de pares chave-valor que contenham nomes de ficheiro e URLs de SAS correspondentes.
get_sas_urls()
Devoluções
Dicionário de pares chave-valor que contêm nomes de ficheiro e URLs de SAS correspondentes
Tipo de retorno
Exceções
list
Obtenha uma lista de todos os modelos associados à área de trabalho fornecida, com filtros opcionais.
static list(workspace, name=None, tags=None, properties=None, run_id=None, latest=False, dataset_id=None, expand=True, page_count=255, model_framework=None)
Parâmetros
- name
- str
Se for fornecido, só devolverá modelos com o nome especificado, se existirem.
- tags
- list
Será filtrado com base na lista fornecida, por "chave" ou "[chave, valor]". Por exemplo: ['key', ['key2', 'key2 value']]
- properties
- list
Será filtrado com base na lista fornecida, por "chave" ou "[chave, valor]". Por exemplo: ['key', ['key2', 'key2 value']]
- latest
- bool
Se for verdade, só devolverá modelos com a versão mais recente.
- expand
- bool
Se for verdade, devolverá modelos com todos os subpropriedades preenchidos, por exemplo, execução, conjunto de dados e experimentação. Definir isto como falso deve acelerar a conclusão do método list() no caso de muitos modelos.
- page_count
- int
O número de itens a obter numa página. Atualmente, suporta valores até 255. A predefinição é 255.
- model_framework
- str
Se for fornecido, só devolverá modelos com a arquitetura especificada, se existirem.
Devoluções
Uma lista de modelos, opcionalmente filtrada.
Tipo de retorno
Exceções
package
Crie um pacote de modelo na forma de uma imagem do Docker ou do contexto de compilação do Dockerfile.
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
Parâmetros
Uma lista de objetos de Modelo a incluir no pacote. Pode ser uma lista vazia.
- inference_config
- InferenceConfig
Um objeto InferenceConfig para configurar a operação dos modelos. Isto tem de incluir um objeto Ambiente.
- generate_dockerfile
- bool
Se pretende criar um Dockerfile que pode ser executado localmente em vez de criar uma imagem.
Devoluções
Um objeto ModelPackage.
Tipo de retorno
Exceções
print_configuration
Imprima a configuração do utilizador.
static print_configuration(models, inference_config, deployment_config, deployment_target)
Parâmetros
- inference_config
- InferenceConfig
Um objeto InferenceConfig utilizado para determinar as propriedades de modelo necessárias.
- deployment_config
- WebserviceDeploymentConfiguration
Um WebserviceDeploymentConfiguration utilizado para configurar o serviço Web.
Exceções
profile
Cria perfis no modelo para obter recomendações de requisitos de recursos.
Esta é uma operação de execução prolongada que pode demorar até 25 minutos, dependendo do tamanho do conjunto de dados.
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
Parâmetros
- inference_config
- InferenceConfig
Um objeto InferenceConfig utilizado para determinar as propriedades de modelo necessárias.
- input_dataset
- Dataset
O conjunto de dados de entrada para criação de perfis. O conjunto de dados de entrada deve ter uma única coluna e as entradas de exemplo devem estar no formato de cadeia.
- cpu
- float
O número de núcleos de cpu a utilizar na maior instância de teste. Atualmente, suporta valores até 3,5.
- memory_in_gb
- float
A quantidade de memória (em GB) a utilizar na maior instância de teste. Pode ser um decimal. Atualmente, suporta valores até 15,0.
Tipo de retorno
Exceções
register
Registe um modelo com a área de trabalho fornecida.
static register(workspace, model_path, model_name, tags=None, properties=None, description=None, datasets=None, model_framework=None, model_framework_version=None, child_paths=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
Parâmetros
- model_path
- str
O caminho no sistema de ficheiros local onde estão localizados os recursos do modelo. Pode ser um ponteiro direto para um único ficheiro ou pasta. Se apontar para uma pasta, o child_paths
parâmetro pode ser utilizado para especificar ficheiros individuais para agrupar como o objeto Modelo, em vez de utilizar todo o conteúdo da pasta.
- tags
- dict(<xref:{str : str}>)
Um dicionário opcional de etiquetas de valor chave a atribuir ao modelo.
- properties
- dict(<xref:{str : str}>)
Um dicionário opcional de propriedades de valor chave a atribuir ao modelo. Estas propriedades não podem ser alteradas após a criação do modelo, no entanto, podem ser adicionados novos pares de valores chave.
- datasets
- list[(str, AbstractDataset)]
Uma lista de cadeias de identificação onde o primeiro elemento descreve a relação dataset-model e o segundo elemento é o conjunto de dados.
- model_framework
- str
A arquitetura do modelo registado. A utilização das constantes suportadas pelo sistema da classe permite uma Framework implementação simplificada para algumas arquiteturas populares.
Se for fornecido em conjunto com uma model_path
pasta para uma pasta, apenas os ficheiros especificados serão agrupados no objeto Modelo.
- sample_input_dataset
- AbstractDataset
Conjunto de dados de entrada de exemplo para o modelo registado.
- sample_output_dataset
- AbstractDataset
Conjunto de dados de saída de exemplo para o modelo registado.
- resource_configuration
- ResourceConfiguration
Uma configuração de recurso para executar o modelo registado.
Devoluções
O objeto de modelo registado.
Tipo de retorno
Exceções
Observações
Além do conteúdo do próprio ficheiro de modelo, um modelo registado também armazena metadados de modelo, incluindo descrição do modelo, etiquetas e informações de arquitetura, que são úteis ao gerir e implementar o modelo na sua área de trabalho. Por exemplo, com etiquetas, pode categorizar os seus modelos e aplicar filtros ao listar modelos na sua área de trabalho.
O exemplo seguinte mostra como registar um modelo que especifica etiquetas e uma descrição.
from azureml.core.model import Model
model = Model.register(model_path="sklearn_regression_model.pkl",
model_name="sklearn_regression_model",
tags={'area': "diabetes", 'type': "regression"},
description="Ridge regression model to predict diabetes",
workspace=ws)
O exemplo completo está disponível a partir de https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb
Se tiver um modelo produzido como resultado de uma execução de experimentação, pode registá-lo diretamente a partir de um objeto de execução sem o transferir primeiro para um ficheiro local. Para tal, utilize o register_model método conforme documentado na Run classe.
remove_tags
Remova as chaves especificadas do dicionário de etiquetas deste modelo.
remove_tags(tags)
Parâmetros
Exceções
serialize
Converta este Modelo num dicionário json serializado.
serialize()
Devoluções
A representação json deste Modelo
Tipo de retorno
Exceções
update
Efetue uma atualização no local do modelo.
Os valores existentes dos parâmetros especificados são substituídos.
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
Parâmetros
- tags
- dict(<xref:{str : str}>)
Um dicionário de etiquetas para atualizar o modelo com. Estas etiquetas substituem as etiquetas existentes para o modelo.
- description
- str
A nova descrição a utilizar para o modelo. Este nome substitui o nome existente.
- sample_input_dataset
- AbstractDataset
O conjunto de dados de entrada de exemplo a utilizar para o modelo registado. Este conjunto de dados de entrada de exemplo substitui o conjunto de dados existente.
- sample_output_dataset
- AbstractDataset
O conjunto de dados de saída de exemplo a utilizar para o modelo registado. Este conjunto de dados de saída de exemplo substitui o conjunto de dados existente.
- resource_configuration
- ResourceConfiguration
A configuração de recursos a utilizar para executar o modelo registado.
Exceções
update_tags_properties
Efetue uma atualização das etiquetas e propriedades do modelo.
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
Parâmetros
- add_properties
- dict(<xref:{str : str}>)
Um dicionário de propriedades a adicionar.
Exceções
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários