Model Clase
Representa el resultado del entrenamiento de aprendizaje automático.
Un modelo es el resultado de un entrenamiento Run de Azure Machine Learning o de algún otro proceso de entrenamiento de modelos fuera de Azure. Independientemente de cómo se produzca el modelo, se puede registrar en un área de trabajo, donde se representa mediante un nombre y una versión. Con la clase Model, puede empaquetar modelos para usarlos con Docker e implementarlos como un punto de conexión en tiempo real que se puede usar para las solicitudes de inferencia.
Para ver un tutorial completo en el que se muestra cómo se crean, administran y consumen modelos, consulte Entrenamiento de un modelo de clasificación de imágenes con datos de MNIST y scikit-learn mediante Azure Machine Learning.
Constructor de modelo.
El constructor Model se usa para recuperar una representación en la nube de un objeto Model asociado al área de trabajo proporcionada. Debe proporcionar el nombre o el identificador.
- Herencia
-
builtins.objectModel
Constructor
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
Parámetros
- workspace
- Workspace
Objeto de área de trabajo que contiene el modelo que se va a recuperar.
- name
- str
Nombre del modelo que se va a recuperar. Devuelve el modelo más reciente con el nombre especificado, si existe.
- id
- str
Identificador del modelo que se va a recuperar. Devuelve el modelo con el id. especificado, si existe.
- tags
- list
Lista opcional de etiquetas que se usan para filtrar los resultados devueltos. Los resultados se filtran en función de la lista proporcionada, buscando por "clave" o "[clave, valor]". Por ejemplo, ["clave", ["clave2", "valor de clave2"]]
- properties
- list
Lista opcional de propiedades usadas para filtrar los resultados devueltos. Los resultados se filtran en función de la lista proporcionada, buscando por "clave" o "[clave, valor]". Por ejemplo, ["clave", ["clave2", "valor de clave2"]]
- version
- int
Versión del modelo que se va a devolver. Cuando se proporciona junto con el parámetro name
, se devuelve la versión específica del modelo con nombre especificado, si existe. Si se omite version
, se devuelve la versión más reciente del modelo.
- run_id
- str
Identificador opcional que se usa para filtrar los resultados devueltos.
- model_framework
- str
Nombre de marco opcional que se usa para filtrar los resultados devueltos. Si se especifica, se devuelven resultados para los modelos que coincidan con el marco especificado. Consulte Framework para ver los valores permitidos.
- workspace
- Workspace
Objeto de área de trabajo que contiene el modelo que se va a recuperar.
- name
- str
Nombre del modelo que se va a recuperar. Devuelve el modelo más reciente con el nombre especificado, si existe.
- id
- str
Identificador del modelo que se va a recuperar. Devuelve el modelo con el id. especificado, si existe.
- tags
- list
Lista opcional de etiquetas que se usan para filtrar los resultados devueltos. Los resultados se filtran en función de la lista proporcionada, buscando por "clave" o "[clave, valor]". Por ejemplo, ["clave", ["clave2", "valor de clave2"]]
- properties
- list
Lista opcional de propiedades usadas para filtrar los resultados devueltos. Los resultados se filtran en función de la lista proporcionada, buscando por "clave" o "[clave, valor]". Por ejemplo, ["clave", ["clave2", "valor de clave2"]]
- version
- int
Versión del modelo que se va a devolver. Cuando se proporciona junto con el parámetro name
, se devuelve la versión específica del modelo con nombre especificado, si existe. Si se omite version
, se devuelve la versión más reciente del modelo.
- model_framework
- str
Nombre de marco opcional que se usa para filtrar los resultados devueltos. Si se especifica, se devuelven resultados para los modelos que coincidan con el marco especificado. Consulte Framework para ver los valores permitidos.
- expand
- bool
Si es true, se devolverán los modelos con todas las propiedades secundarias rellenadas, por ejemplo, ejecución, conjunto de datos y experimento.
Comentarios
El constructor Model se usa para recuperar una representación en la nube de un objeto Model asociado al área de trabajo especificada. Debe proporcionarse al menos el nombre o el id. para recuperar modelos, pero también hay otras opciones para filtrar, entre las que se incluyen las etiquetas, las propiedades, la versión, el id. de ejecución y el marco.
from azureml.core.model import Model
model = Model(ws, 'my_model_name')
En el ejemplo siguiente se muestra cómo capturar una versión específica de un modelo.
from azureml.core.model import Model
model = Model(ws, 'my_model_name', version=1)
Al registrar un modelo, se crea un contenedor lógico para uno o varios archivos que lo componen. Además del contenido del propio archivo del modelo, un modelo registrado también almacena sus metadatos, como la descripción, las etiquetas y la información del marco, lo que es útil al administrar e implementar el modelo en el área de trabajo. Por ejemplo, con las etiquetas puede clasificar los modelos y aplicar filtros al enumerar los modelos del área de trabajo. Después del registro, puede descargar o implementar el modelo registrado y recibir todos los archivos y los metadatos que se registraron.
En el ejemplo siguiente, se muestra cómo registrar un modelo mediante la especificación de las etiquetas y una descripción.
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)
El ejemplo completo está disponible en https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb.
En el siguiente ejemplo, se muestra cómo registrar un modelo mediante la especificación del marco, los conjuntos de datos de entrada y salida, y la configuración 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)
En la sección Variables, se enumeran los atributos de una representación local del objeto Model en la nube. Estas variables se deben considerar de solo lectura. El cambio de sus valores no se reflejará en el objeto de nube correspondiente.
Variables
- created_by
- dict
Usuario que creó el modelo.
- created_time
- datetime
Cuándo se creó el modelo.
- azureml.core.Model.description
Descripción del objeto Model.
- azureml.core.Model.id
Identificador del modelo. Adopta la forma de <nombre del modelo>:<versión del modelo>.
- mime_type
- str
Tipo MIME del modelo.
- azureml.core.Model.name
Nombre del modelo.
- model_framework
- str
Marco del modelo.
- model_framework_version
- str
Versión del marco del modelo.
- azureml.core.Model.tags
Diccionario de etiquetas para el objeto Model.
- azureml.core.Model.properties
Diccionario de propiedades de clave-valor para el modelo. Estas propiedades no se pueden cambiar después del registro, pero se pueden agregar nuevos pares clave-valor.
- unpack
- bool
Indica si el modelo se debe desempaquetar cuando se extrae en un contexto local.
- url
- str
Ubicación de la dirección URL del modelo.
- azureml.core.Model.version
Versión del modelo.
- azureml.core.Model.workspace
Área de trabajo que contiene el modelo.
- azureml.core.Model.experiment_name
Nombre del experimento que creó el modelo.
- azureml.core.Model.run_id
Identificador de la ejecución que creó el modelo.
- parent_id
- str
Identificador del modelo primario del modelo.
Lista de los identificadores de modelo que se han derivado de este modelo.
- resource_configuration
- ResourceConfiguration
Elemento ResourceConfiguration para este modelo. Se usa para la generación de perfiles.
Métodos
add_dataset_references |
Asocia los conjuntos de datos proporcionados con este modelo. |
add_properties |
Agrega pares clave-valor al diccionario de propiedades de este modelo. |
add_tags |
Agrega pares clave-valor al diccionario de etiquetas de este modelo. |
delete |
Elimina este modelo de su área de trabajo asociada. |
deploy |
Implementa un servicio web a partir de cero o más objetos Model. El servicio web resultante es un punto de conexión en tiempo real que se puede usar para las solicitudes de inferencia. La función |
deserialize |
Convierte un objeto JSON en un objeto de modelo. Se produce un error en la conversión si el área de trabajo especificada no es el área de trabajo con la que está registrado el modelo. |
download |
Descarga el modelo en el directorio de destino del sistema de archivos local. |
get_model_path |
Devuelve la ruta de acceso al modelo. La función buscará el modelo en las siguientes ubicaciones. Si
Si
|
get_sas_urls |
Devuelve un diccionario de pares clave-valor que contienen los nombres de archivo y las direcciones URL de SAS correspondientes. |
list |
Recupera una lista de todos los modelos asociados al área de trabajo proporcionada, con filtros opcionales. |
package |
Crea un paquete de modelos como una imagen de Docker o un contexto de creación de Dockerfile. |
print_configuration |
Imprime la configuración del usuario. |
profile |
Genera perfiles del modelo para obtener recomendaciones de requisitos de recursos. Se trata de una operación de larga duración que puede tardar hasta 25 minutos en función del tamaño del conjunto de datos. |
register |
Registra un modelo con el área de trabajo proporcionada. |
remove_tags |
Quita las claves especificadas del diccionario de etiquetas de este modelo. |
serialize |
Convierte este modelo en un diccionario serializado JSON. |
update |
Realiza una actualización local del modelo. Se reemplazan los valores existentes de los parámetros especificados. |
update_tags_properties |
Realiza una actualización de las etiquetas y propiedades del modelo. |
add_dataset_references
Asocia los conjuntos de datos proporcionados con este modelo.
add_dataset_references(datasets)
Parámetros
- datasets
- list[tuple(<xref:str :> (Dataset o DatasetSnapshot))]
Lista de tuplas que representan un emparejamiento del propósito del conjunto de datos con el objeto Dataset.
Excepciones
add_properties
Agrega pares clave-valor al diccionario de propiedades de este modelo.
add_properties(properties)
Parámetros
Excepciones
add_tags
Agrega pares clave-valor al diccionario de etiquetas de este modelo.
add_tags(tags)
Parámetros
Excepciones
delete
deploy
Implementa un servicio web a partir de cero o más objetos Model.
El servicio web resultante es un punto de conexión en tiempo real que se puede usar para las solicitudes de inferencia. La función deploy
del modelo es similar a la función deploy
de la clase Webservice, pero no registra los modelos. Use la función deploy
del modelo si tiene objetos de modelo que ya están registrados.
static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)
Parámetros
- name
- str
Nombre que se va a dar al servicio implementado. Debe ser único para el área de trabajo, solo debe estar formado por letras minúsculas, números o guiones, debe comenzar por una letra y tener entre 3 y 32 caracteres de longitud.
- inference_config
- InferenceConfig
Objeto InferenceConfig que se usa para determinar las propiedades necesarias del modelo.
- deployment_config
- WebserviceDeploymentConfiguration
Objeto WebserviceDeploymentConfiguration que se usa para configurar el servicio web. Si no se proporciona ninguno, se usará un objeto de configuración vacío en función del destino deseado.
- deployment_target
- ComputeTarget
Recurso ComputeTarget en el que se va a implementar el objeto Webservice. Como Azure Container Instances no tiene asociado ningún recurso ComputeTarget, deje None (Ninguno) en este parámetro al realizar la implementación en Azure Container Instances.
- overwrite
- bool
Indica si se debe sobrescribir el servicio existente si ya existe un servicio con el nombre especificado.
- show_output
- bool
Indica si se debe mostrar el progreso de la implementación del servicio.
Devoluciones
Objeto Webservice correspondiente al servicio web implementado.
Tipo de valor devuelto
Excepciones
deserialize
Convierte un objeto JSON en un objeto de modelo.
Se produce un error en la conversión si el área de trabajo especificada no es el área de trabajo con la que está registrado el modelo.
static deserialize(workspace, model_payload)
Parámetros
Devoluciones
Representación del modelo del objeto JSON proporcionado.
Tipo de valor devuelto
Excepciones
download
Descarga el modelo en el directorio de destino del sistema de archivos local.
download(target_dir='.', exist_ok=False, exists_ok=None)
Parámetros
- target_dir
- str
Ruta de acceso a un directorio en el que se va a descargar el modelo. Su valor predeterminado es ".".
- exist_ok
- bool
Indica si se deben reemplazar los directorios o archivos descargados si existen. El valor predeterminado es False.
Devoluciones
Ruta de acceso al archivo o carpeta del modelo.
Tipo de valor devuelto
Excepciones
get_model_path
Devuelve la ruta de acceso al modelo.
La función buscará el modelo en las siguientes ubicaciones.
Si version
es None:
- Se descarga desde la ubicación remota a la caché (si se proporciona el área de trabajo)
- Se carga desde la caché azureml-models/$MODEL_NAME/$LATEST_VERSION/
- ./$MODEL_NAME
Si version
no es None:
- Se carga desde la caché azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/
- Se descarga desde la ubicación remota a la caché (si se proporciona el área de trabajo)
static get_model_path(model_name, version=None, _workspace=None)
Parámetros
- version
- int
Versión del modelo que se va a recuperar. El valor predeterminado es la versión más reciente.
- _workspace
- Workspace
Área de trabajo de la que se recuperará un modelo. No se puede usar de forma remota. Si no se especifica, solo se busca en la memoria caché local.
Devoluciones
Ruta de acceso en disco al modelo.
Tipo de valor devuelto
Excepciones
get_sas_urls
Devuelve un diccionario de pares clave-valor que contienen los nombres de archivo y las direcciones URL de SAS correspondientes.
get_sas_urls()
Devoluciones
Diccionario de pares clave-valor que contienen los nombres de archivo y las direcciones URL de SAS correspondientes
Tipo de valor devuelto
Excepciones
list
Recupera una lista de todos los modelos asociados al área de trabajo proporcionada, con filtros opcionales.
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
Si se proporciona, solo devolverá modelos con el nombre especificado, si los hay.
- tags
- list
Se filtrarán los resultados en función de la lista proporcionada, ya sea por "key" o "[key, value]". Por ejemplo, ["clave", ["clave2", "valor de clave2"]]
- properties
- list
Filtrará los resultados en función de la lista proporcionada, ya sea por "clave" o "[clave, valor]". Por ejemplo, ["clave", ["clave2", "valor de clave2"]]
- run_id
- str
Se filtrará en función del identificador de ejecución proporcionado.
- latest
- bool
Si es true, solo devolverá los modelos con la versión más reciente.
- dataset_id
- str
Se filtrará en función del identificador de conjunto de datos proporcionado.
- expand
- bool
Si es true, se devolverán los modelos con todas las propiedades secundarias rellenadas, por ejemplo, ejecución, conjunto de datos y experimento. Si se establece en false, se acelerará la finalización del método list() en el caso de que haya muchos modelos.
- page_count
- int
Número de elementos que se va a recuperar en una página. Actualmente, se admiten valores hasta 255. El valor predeterminado es 255.
- model_framework
- str
Si se proporciona, solo se devolverán los modelos con el marco especificado, si los hay.
Devoluciones
Lista de modelos, filtrada opcionalmente.
Tipo de valor devuelto
Excepciones
package
Crea un paquete de modelos como una imagen de Docker o un contexto de creación de Dockerfile.
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
Parámetros
Lista de objetos Model que se incluirán en el paquete. Puede ser una lista vacía.
- inference_config
- InferenceConfig
Objeto InferenceConfig para configurar el funcionamiento de los modelos. Debe incluir un objeto Environment.
- generate_dockerfile
- bool
Indica si se va a crear un archivo Dockerfile que se pueda ejecutar localmente en lugar de crear una imagen.
- image_label
- str
Al crear una imagen, la etiqueta de la imagen resultante.
Devoluciones
Objeto ModelPackage.
Tipo de valor devuelto
Excepciones
print_configuration
Imprime la configuración del usuario.
static print_configuration(models, inference_config, deployment_config, deployment_target)
Parámetros
- inference_config
- InferenceConfig
Objeto InferenceConfig que se usa para determinar las propiedades necesarias del modelo.
- deployment_config
- WebserviceDeploymentConfiguration
Objeto WebserviceDeploymentConfiguration que se usa para configurar el servicio web.
- deployment_target
- ComputeTarget
Recurso ComputeTarget en el que se va a implementar el objeto Webservice.
Excepciones
profile
Genera perfiles del modelo para obtener recomendaciones de requisitos de recursos.
Se trata de una operación de larga duración que puede tardar hasta 25 minutos en función del tamaño del conjunto de datos.
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
Parámetros
- inference_config
- InferenceConfig
Objeto InferenceConfig que se usa para determinar las propiedades necesarias del modelo.
- input_dataset
- Dataset
Conjunto de datos de entrada para la generación de perfiles. El conjunto de datos de entrada debe tener una sola columna y las entradas de muestra deben estar en formato de cadena.
- cpu
- float
Número de núcleos de CPU que se usarán en la instancia de pruebas más grande. Actualmente, se admiten valores hasta 3,5.
- memory_in_gb
- float
Cantidad de memoria (en GB) que se usará en la instancia de pruebas más grande. Puede ser un decimal. Actualmente, se admiten valores hasta 15,0.
- description
- str
Descripción que se va a asociar a la ejecución de generación de perfiles.
Tipo de valor devuelto
Excepciones
register
Registra un modelo con el área de trabajo proporcionada.
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
Ruta de acceso en el sistema de archivos local donde se encuentran los recursos del modelo. Puede ser un puntero directo a un único archivo o carpeta. Si apunta a una carpeta, se puede usar el parámetro child_paths
para especificar archivos individuales que se agruparán como el objeto Model, en lugar de usar todo el contenido de la carpeta.
- tags
- dict(<xref:{str : str}>)
Diccionario opcional de etiquetas de clave-valor que se asignarán al modelo.
- properties
- dict(<xref:{str : str}>)
Diccionario opcional de propiedades de clave-valor que se asignarán al modelo. Estas propiedades no se pueden cambiar después de la creación del modelo, pero se pueden agregar nuevos pares clave-valor.
- datasets
- list[(str, AbstractDataset)]
Lista de tuplas donde el primer elemento describe la relación entre conjunto de datos y modelo, y el segundo elemento es el conjunto de datos.
- model_framework
- str
Marco del modelo registrado. El uso de las constantes admitidas por el sistema de la clase Framework permite realizar una implementación simplificada para algunos marcos populares.
Si se proporciona junto con un elemento model_path
de una carpeta, solo los archivos especificados se agruparán en el objeto Model.
- sample_input_dataset
- AbstractDataset
Conjunto de datos de entrada de muestra para el modelo registrado.
- sample_output_dataset
- AbstractDataset
Conjunto de datos de salida de muestra para el modelo registrado.
- resource_configuration
- ResourceConfiguration
Configuración de recursos para ejecutar el modelo registrado.
Devoluciones
Objeto de modelo registrado.
Tipo de valor devuelto
Excepciones
Comentarios
Además del contenido del propio archivo del modelo, un modelo registrado también almacena sus metadatos, como la descripción, las etiquetas y la información del marco, lo que es útil al administrar e implementar el modelo en el área de trabajo. Por ejemplo, con las etiquetas puede clasificar los modelos y aplicar filtros al enumerar los modelos del área de trabajo.
En el ejemplo siguiente, se muestra cómo registrar un modelo mediante la especificación de las etiquetas y una descripción.
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)
El ejemplo completo está disponible en https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb.
Si tiene un modelo producido como resultado de la ejecución de un experimento, puede registrarlo desde un objeto de ejecución directamente sin descargarlo primero en un archivo local. Para ello, use el método register_model tal como se documenta en la clase Run.
remove_tags
Quita las claves especificadas del diccionario de etiquetas de este modelo.
remove_tags(tags)
Parámetros
Excepciones
serialize
Convierte este modelo en un diccionario serializado JSON.
serialize()
Devoluciones
Representación JSON de este modelo
Tipo de valor devuelto
Excepciones
update
Realiza una actualización local del modelo.
Se reemplazan los valores existentes de los parámetros especificados.
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
Parámetros
- tags
- dict(<xref:{str : str}>)
Diccionario de etiquetas con las que actualizar el modelo. Estas etiquetas reemplazan a las etiquetas existentes para el modelo.
- description
- str
Nueva descripción que se usará para el modelo. Este nombre reemplaza al nombre existente.
- sample_input_dataset
- AbstractDataset
Conjunto de datos de entrada de muestra para el modelo registrado. Este conjunto de datos de entrada de muestra reemplaza al conjunto de datos existente.
- sample_output_dataset
- AbstractDataset
Conjunto de datos de salida de muestra que se usará para el modelo registrado. Este conjunto de datos de salida de muestra reemplaza al conjunto de datos existente.
- resource_configuration
- ResourceConfiguration
Configuración de recursos que se usará para ejecutar el modelo registrado.
Excepciones
update_tags_properties
Realiza una actualización de las etiquetas y propiedades del modelo.
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
Parámetros
- add_tags
- dict(<xref:{str : str}>)
Diccionario de las etiquetas que se van a agregar.
- add_properties
- dict(<xref:{str : str}>)
Diccionario de las propiedades que se van a agregar.
Excepciones
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de