Model Classe
Rappresenta il risultato del training di Machine Learning.
Un modello è il risultato di un training Run di Azure Machine Learning o di un altro processo di training del modello all'esterno di Azure. Indipendentemente dalla modalità di produzione del modello, può essere registrata in un'area di lavoro, in cui è rappresentata da un nome e da una versione. Con la classe Model è possibile creare un pacchetto di modelli da usare con Docker e distribuirli come endpoint in tempo reale che può essere usato per le richieste di inferenza.
Per un'esercitazione end-to-end che illustra come vengono creati, gestiti e usati i modelli, vedere Eseguire il training del modello di classificazione delle immagini con i dati MNIST e scikit-learn usando Azure Machine Learning.
Costruttore del modello.
Il costruttore Model viene usato per recuperare una rappresentazione cloud di un oggetto Model associato all'area di lavoro specificata. Specificare il nome o l'ID.
- Ereditarietà
-
builtins.objectModel
Costruttore
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
Parametri
- name
- str
Nome del modello da recuperare. Viene restituito il modello più recente con il nome specificato, se esistente.
- id
- str
ID del modello da recuperare. Il modello con l'ID specificato viene restituito, se esistente.
- tags
- list
Elenco facoltativo di tag utilizzati per filtrare i risultati restituiti. I risultati vengono filtrati in base all'elenco specificato, eseguendo una ricerca in base a 'key' o '[key, value]'. Ex. ['key', ['key2', 'key2 value']]
- properties
- list
Elenco facoltativo di proprietà utilizzate per filtrare i risultati restituiti. I risultati vengono filtrati in base all'elenco specificato, eseguendo una ricerca in base a 'key' o '[key, value]'. Ex. ['key', ['key2', 'key2 value']]
- version
- int
Versione del modello da restituire. Se specificato insieme al name
parametro , viene restituita la versione specifica del modello denominato specificato, se presente. Se version
viene omesso, viene restituita la versione più recente del modello.
- model_framework
- str
Nome del framework facoltativo usato per filtrare i risultati restituiti. Se specificato, i risultati vengono restituiti per i modelli corrispondenti al framework specificato. Vedere Framework per i valori consentiti.
- name
- str
Nome del modello da recuperare. Viene restituito il modello più recente con il nome specificato, se esistente.
- id
- str
ID del modello da recuperare. Il modello con l'ID specificato viene restituito, se esistente.
- tags
- list
Elenco facoltativo di tag utilizzati per filtrare i risultati restituiti. I risultati vengono filtrati in base all'elenco specificato, eseguendo una ricerca in base a 'key' o '[key, value]'. Ex. ['key', ['key2', 'key2 value']]
- properties
- list
Elenco facoltativo di proprietà utilizzate per filtrare i risultati restituiti. I risultati vengono filtrati in base all'elenco specificato, eseguendo una ricerca in base a 'key' o '[key, value]'. Ex. ['key', ['key2', 'key2 value']]
- version
- int
Versione del modello da restituire. Se specificato insieme al name
parametro , viene restituita la versione specifica del modello denominato specificato, se presente. Se version
viene omesso, viene restituita la versione più recente del modello.
- model_framework
- str
Nome del framework facoltativo usato per filtrare i risultati restituiti. Se specificato, i risultati vengono restituiti per i modelli corrispondenti al framework specificato. Vedere Framework per i valori consentiti.
- expand
- bool
Se true, restituirà modelli con tutte le sottoproprietà popolate, ad esempio esecuzione, set di dati e esperimento.
Commenti
Il costruttore Model viene usato per recuperare una rappresentazione cloud di un oggetto Model associato all'area di lavoro specificata. Per recuperare i modelli è necessario specificare almeno il nome o l'ID, ma sono disponibili anche altre opzioni per filtrare, tra cui tag, proprietà, versione, ID esecuzione e framework.
from azureml.core.model import Model
model = Model(ws, 'my_model_name')
Nell'esempio seguente viene illustrato come recuperare una versione specifica di un modello.
from azureml.core.model import Model
model = Model(ws, 'my_model_name', version=1)
La registrazione di un modello crea un contenitore logico per uno o più file che costituiscono il modello. Oltre al contenuto del file del modello stesso, un modello registrato archivia anche i metadati del modello, tra cui la descrizione del modello, i tag e le informazioni sul framework, utili per la gestione e la distribuzione del modello nell'area di lavoro. Ad esempio, con i tag è possibile classificare i modelli e applicare filtri quando si elencano i modelli nell'area di lavoro. Dopo la registrazione, è possibile scaricare o distribuire il modello registrato e ricevere tutti i file e i metadati registrati.
Nell'esempio seguente viene illustrato come registrare un modello che specifica i tag e una descrizione.
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)
L'esempio completo è disponibile da https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb
L'esempio seguente illustra come registrare un modello che specifica il framework, i set di dati di input e output e la configurazione delle risorse.
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)
La sezione Variabili elenca gli attributi di una rappresentazione locale dell'oggetto modello cloud. Queste variabili devono essere considerate di sola lettura. La modifica dei valori non verrà riflessa nell'oggetto cloud corrispondente.
Variabili
- created_by
- dict
Utente che ha creato il modello.
- created_time
- datetime
Al momento della creazione del modello.
- azureml.core.Model.description
Descrizione dell'oggetto Model.
- azureml.core.Model.id
ID modello. Si tratta della forma di nome> modello<:<versione> del modello.
- mime_type
- str
Tipo Mime del modello.
- azureml.core.Model.name
Nome del modello.
- model_framework
- str
Framework del modello.
- model_framework_version
- str
Versione del framework del modello.
- azureml.core.Model.tags
Dizionario di tag per l'oggetto Model.
- azureml.core.Model.properties
Dizionario delle proprietà del valore della chiave per model. Queste proprietà non possono essere modificate dopo la registrazione, ma è possibile aggiungere nuove coppie chiave-valore.
- unpack
- bool
Indica se è necessario decomprimere o meno il modello quando viene eseguito il pull in un contesto locale.
- url
- str
Percorso URL del modello.
- azureml.core.Model.version
Versione del modello.
- azureml.core.Model.workspace
Area di lavoro contenente il modello.
- azureml.core.Model.experiment_name
Nome dell'esperimento che ha creato il modello.
- azureml.core.Model.run_id
ID dell'oggetto Run che ha creato il modello.
- parent_id
- str
ID del modello padre del modello.
- resource_configuration
- ResourceConfiguration
ResourceConfiguration per questo modello. Utilizzato per la profilatura.
Metodi
add_dataset_references |
Associare i set di dati forniti a questo modello. |
add_properties |
Aggiungere coppie chiave-valore al dizionario delle proprietà di questo modello. |
add_tags |
Aggiungere coppie chiave-valore al dizionario tag di questo modello. |
delete |
Eliminare questo modello dall'area di lavoro associata. |
deploy |
Distribuire un servizio Web da zero o più Model oggetti. Il servizio Web risultante è un endpoint in tempo reale che può essere usato per le richieste di inferenza. La funzione Model |
deserialize |
Convertire un oggetto JSON in un oggetto modello. La conversione ha esito negativo se l'area di lavoro specificata non è l'area di lavoro in cui è registrato il modello. |
download |
Scaricare il modello nella directory di destinazione del file system locale. |
get_model_path |
Restituire il percorso del modello. La funzione cercherà il modello nelle posizioni seguenti. Se
Se
|
get_sas_urls |
Restituisce un dizionario di coppie chiave-valore contenenti nomi file e URL di firma di accesso condiviso corrispondenti. |
list |
Recuperare un elenco di tutti i modelli associati all'area di lavoro fornita, con filtri facoltativi. |
package |
Creare un pacchetto modello sotto forma di un'immagine Docker o di un contesto di compilazione Dockerfile. |
print_configuration |
Stampare la configurazione utente. |
profile |
Profila il modello per ottenere consigli sui requisiti di risorsa. Si tratta di un'operazione a esecuzione prolungata che può richiedere fino a 25 minuti a seconda delle dimensioni del set di dati. |
register |
Registrare un modello con l'area di lavoro fornita. |
remove_tags |
Rimuovere le chiavi specificate dal dizionario tag di questo modello. |
serialize |
Convertire questo modello in un dizionario serializzato json. |
update |
Eseguire un aggiornamento sul posto del modello. I valori esistenti dei parametri specificati vengono sostituiti. |
update_tags_properties |
Eseguire un aggiornamento dei tag e delle proprietà del modello. |
add_dataset_references
Associare i set di dati forniti a questo modello.
add_dataset_references(datasets)
Parametri
- datasets
- list[tuple(<xref:str :> (Dataset oppure DatasetSnapshot))]
Elenco di tuple che rappresentano un'associazione dello scopo del set di dati all'oggetto Dataset.
Eccezioni
add_properties
Aggiungere coppie chiave-valore al dizionario delle proprietà di questo modello.
add_properties(properties)
Parametri
Eccezioni
add_tags
Aggiungere coppie chiave-valore al dizionario tag di questo modello.
add_tags(tags)
Parametri
Eccezioni
delete
deploy
Distribuire un servizio Web da zero o più Model oggetti.
Il servizio Web risultante è un endpoint in tempo reale che può essere usato per le richieste di inferenza. La funzione Model deploy
è simile alla deploy
funzione della Webservice classe , ma non registra i modelli. Usare la funzione Model deploy
se sono già registrati oggetti modello.
static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)
Parametri
- name
- str
Nome da assegnare al servizio distribuito. Deve essere univoco per l'area di lavoro, costituito solo da lettere minuscole, numeri o trattini, iniziare con una lettera e avere una lunghezza compresa tra 3 e 32 caratteri.
- inference_config
- InferenceConfig
Oggetto InferenceConfig utilizzato per determinare le proprietà del modello necessarie.
- deployment_config
- WebserviceDeploymentConfiguration
Oggetto WebserviceDeploymentConfiguration usato per configurare il servizio Web. Se non ne viene specificato uno, verrà usato un oggetto di configurazione vuoto in base alla destinazione desiderata.
- deployment_target
- ComputeTarget
Oggetto ComputeTarget in cui distribuire il servizio Web. Poiché Istanze di Azure Container non è associatoComputeTarget, lasciare questo parametro impostato su Nessuno per eseguire la distribuzione in Istanze di Azure Container.
- overwrite
- bool
Indica se sovrascrivere il servizio esistente se esiste già un servizio con il nome specificato.
- show_output
- bool
Indica se visualizzare lo stato di avanzamento della distribuzione del servizio.
Restituisce
Oggetto Servizio Web corrispondente al servizio Web distribuito.
Tipo restituito
Eccezioni
deserialize
Convertire un oggetto JSON in un oggetto modello.
La conversione ha esito negativo se l'area di lavoro specificata non è l'area di lavoro in cui è registrato il modello.
static deserialize(workspace, model_payload)
Parametri
Restituisce
Rappresentazione model dell'oggetto JSON fornito.
Tipo restituito
Eccezioni
download
Scaricare il modello nella directory di destinazione del file system locale.
download(target_dir='.', exist_ok=False, exists_ok=None)
Parametri
- target_dir
- str
Percorso di una directory in cui scaricare il modello. Impostazione predefinita su "."
- exist_ok
- bool
Indica se sostituire i file dir/dir scaricati se sono presenti. Il valore predefinito è False.
Restituisce
Percorso del file o della cartella del modello.
Tipo restituito
Eccezioni
get_model_path
Restituire il percorso del modello.
La funzione cercherà il modello nelle posizioni seguenti.
Se version
non è Nessuno:
- Scaricare dalla cache remota (se è disponibile l'area di lavoro)
- Caricare da cache azureml-models/$MODEL_NAME/$LATEST_VERSION/
- ./$MODEL_NAME
Se version
non è Nessuno:
- Caricare da cache azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/
- Scaricare dalla cache remota (se è disponibile l'area di lavoro)
static get_model_path(model_name, version=None, _workspace=None)
Parametri
- version
- int
Versione del modello da recuperare. Impostazione predefinita alla versione più recente.
- _workspace
- Workspace
Area di lavoro da cui recuperare un modello. Non è possibile usare in remoto. Se non è specificata solo la cache locale viene eseguita la ricerca.
Restituisce
Percorso sul disco del modello.
Tipo restituito
Eccezioni
get_sas_urls
Restituisce un dizionario di coppie chiave-valore contenenti nomi file e URL di firma di accesso condiviso corrispondenti.
get_sas_urls()
Restituisce
Dizionario delle coppie chiave-valore contenenti nomi di file e URL di firma di accesso condiviso corrispondenti
Tipo restituito
Eccezioni
list
Recuperare un elenco di tutti i modelli associati all'area di lavoro fornita, con filtri facoltativi.
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)
Parametri
- name
- str
Se specificato, restituirà solo i modelli con il nome specificato, se presente.
- tags
- list
Filtra in base all'elenco specificato, in base a 'key' o '[key, value]'. Ex. ['key', ['key2', 'key2 value']]
- properties
- list
Filtra in base all'elenco specificato, in base a 'key' o '[key, value]'. Ex. ['key', ['key2', 'key2 value']]
- latest
- bool
Se true, restituirà solo i modelli con la versione più recente.
- expand
- bool
Se true, restituirà modelli con tutte le sotto proprietà popolate, ad esempio eseguire, set di dati ed esperimenti. L'impostazione di questa opzione su false deve velocizzare il completamento del metodo list() nel caso di molti modelli.
- page_count
- int
Numero di elementi da recuperare in una pagina. Attualmente supportano valori fino a 255. Il valore predefinito è 255.
- model_framework
- str
Se specificato, restituirà solo i modelli con il framework specificato, se presente.
Restituisce
Elenco di modelli, filtrati facoltativamente.
Tipo restituito
Eccezioni
package
Creare un pacchetto modello sotto forma di un'immagine Docker o di un contesto di compilazione Dockerfile.
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
Parametri
Elenco di oggetti Model da includere nel pacchetto. Può essere un elenco vuoto.
- inference_config
- InferenceConfig
Oggetto InferenceConfig per configurare l'operazione dei modelli. Deve includere un oggetto Environment.
- generate_dockerfile
- bool
Se creare un Dockerfile che può essere eseguito localmente anziché compilare un'immagine.
- image_name
- str
Quando si compila un'immagine, il nome dell'immagine risultante.
- image_label
- str
Quando si compila un'immagine, l'etichetta per l'immagine risultante.
Restituisce
Oggetto ModelPackage.
Tipo restituito
Eccezioni
print_configuration
Stampare la configurazione utente.
static print_configuration(models, inference_config, deployment_config, deployment_target)
Parametri
- inference_config
- InferenceConfig
Oggetto InferenceConfig usato per determinare le proprietà del modello necessarie.
- deployment_config
- WebserviceDeploymentConfiguration
WebserviceDeploymentConfiguration usato per configurare il servizio Web.
- deployment_target
- ComputeTarget
Oggetto ComputeTarget in cui distribuire il servizio Web.
Eccezioni
profile
Profila il modello per ottenere consigli sui requisiti di risorsa.
Si tratta di un'operazione a esecuzione prolungata che può richiedere fino a 25 minuti a seconda delle dimensioni del set di dati.
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
Parametri
- inference_config
- InferenceConfig
Oggetto InferenceConfig usato per determinare le proprietà del modello necessarie.
- input_dataset
- Dataset
Set di dati di input per la profilatura. Il set di dati di input deve avere una singola colonna e gli input di esempio devono essere in formato stringa.
- cpu
- float
Numero di core cpu da usare nell'istanza di test più grande. Attualmente supportano valori fino a 3,5.
- memory_in_gb
- float
Quantità di memoria (in GB) da usare nell'istanza di test più grande. Può essere un decimale. Attualmente supportano valori fino a 15.0.
Tipo restituito
Eccezioni
register
Registrare un modello con l'area di lavoro fornita.
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)
Parametri
- model_path
- str
Percorso nel file system locale in cui si trovano gli asset del modello. Questo può essere un puntatore diretto a un singolo file o cartella. Se punta a una cartella, il child_paths
parametro può essere usato per specificare singoli file da raggruppare come oggetto Model, anziché usare l'intero contenuto della cartella.
- tags
- dict(<xref:{str : str}>)
Dizionario facoltativo dei tag chiave da assegnare al modello.
- properties
- dict(<xref:{str : str}>)
Dizionario facoltativo delle proprietà chiave valore da assegnare al modello. Queste proprietà non possono essere modificate dopo la creazione del modello, ma è possibile aggiungere nuove coppie di valori chiave.
- datasets
- list[(str, AbstractDataset)]
Elenco di tuple in cui il primo elemento descrive la relazione del modello di set di dati e il secondo elemento è il set di dati.
- model_framework
- str
Framework del modello registrato. L'uso Framework delle costanti supportate dal sistema dalla classe consente la distribuzione semplificata per alcuni framework diffusi.
Se fornito insieme a una model_path
cartella, solo i file specificati verranno raggruppati nell'oggetto Model.
- sample_input_dataset
- AbstractDataset
Set di dati di input di esempio per il modello registrato.
- sample_output_dataset
- AbstractDataset
Set di dati di output di esempio per il modello registrato.
- resource_configuration
- ResourceConfiguration
Configurazione della risorsa per eseguire il modello registrato.
Restituisce
Oggetto modello registrato.
Tipo restituito
Eccezioni
Commenti
Oltre al contenuto del file modello stesso, un modello registrato archivia anche i metadati del modello, inclusa la descrizione del modello, i tag e le informazioni del framework, utili per la gestione e la distribuzione del modello nell'area di lavoro. Ad esempio, con i tag è possibile classificare i modelli e applicare filtri quando si elencano i modelli nell'area di lavoro.
Nell'esempio seguente viene illustrato come registrare un modello che specifica i tag e una descrizione.
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)
L'esempio completo è disponibile da https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb
Se si dispone di un modello prodotto come risultato di un'esecuzione dell'esperimento, è possibile registrarlo direttamente da un oggetto di esecuzione senza scaricarlo in un file locale. Per farlo, usare il register_model metodo come documentato nella Run classe.
remove_tags
Rimuovere le chiavi specificate dal dizionario tag di questo modello.
remove_tags(tags)
Parametri
Eccezioni
serialize
Convertire questo modello in un dizionario serializzato json.
serialize()
Restituisce
Rappresentazione json di questo modello
Tipo restituito
Eccezioni
update
Eseguire un aggiornamento sul posto del modello.
I valori esistenti dei parametri specificati vengono sostituiti.
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
Parametri
- tags
- dict(<xref:{str : str}>)
Dizionario di tag con cui aggiornare il modello. Questi tag sostituiscono i tag esistenti per il modello.
- description
- str
Nuova descrizione da utilizzare per il modello. Questo nome sostituisce il nome esistente.
- sample_input_dataset
- AbstractDataset
Set di dati di input di esempio da usare per il modello registrato. Questo set di dati di input di esempio sostituisce il set di dati esistente.
- sample_output_dataset
- AbstractDataset
Set di dati di output di esempio da usare per il modello registrato. Questo set di dati di output di esempio sostituisce il set di dati esistente.
- resource_configuration
- ResourceConfiguration
Configurazione della risorsa da usare per eseguire il modello registrato.
Eccezioni
update_tags_properties
Eseguire un aggiornamento dei tag e delle proprietà del modello.
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
Parametri
- add_properties
- dict(<xref:{str : str}>)
Dizionario delle proprietà da aggiungere.
Eccezioni
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per