Model Класс
Представляет результат обучающих прогонов машинного обучения.
Модель — это результат обучающего прогона машинного обучения Microsoft Azure Run или другого процесса обучения модели за пределами Azure. Независимо от того, как создается модель, ее можно зарегистрировать в рабочей области, где она будет представлена с помощью имени и версии. С помощью класса модели можно упаковывать модели для использования с Docker, развертывать их в качестве конечной точки для прогнозирования в реальном времени и использовать эту точку для запросов на вывод.
Полное руководство по созданию и использованию моделей и управлению ими см. в статье Обучение модели классификации изображений с помощью данных MNIST и моделей scikit-learn, использующих Машинное обучение Microsoft Azure.
Конструктор модели.
Конструктор модели используется для получения облачного представления объекта Model, связанного с предоставленной рабочей областью. Необходимо указать имя или идентификатор.
- Наследование
-
builtins.objectModel
Конструктор
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области, содержащий извлекаемую модель. |
name
|
Имя извлекаемой модели. Возвращает последнюю модель с указанным именем, если она существует. Default value: None
|
id
|
Идентификатор извлекаемой модели. Возвращает модель с указанным идентификатором, если она существует. Default value: None
|
tags
|
Необязательный список тегов, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]] Default value: None
|
properties
|
Необязательный список свойств, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]] Default value: None
|
version
|
Версия возвращаемой модели. При указании вместе с параметром Default value: None
|
run_id
|
Необязательный идентификатор, используемый для фильтрации возвращаемых результатов. Default value: None
|
model_framework
|
Необязательное имя платформы, используемое для фильтрации возвращаемых результатов. Если указано, возвращает результаты для моделей, соответствующих указанной платформе. Сведения о допустимых значениях приведены в Framework. Default value: None
|
workspace
Обязательно
|
Объект рабочей области, содержащий извлекаемую модель. |
name
Обязательно
|
Имя извлекаемой модели. Возвращает последнюю модель с указанным именем, если она существует. |
id
Обязательно
|
Идентификатор извлекаемой модели. Возвращает модель с указанным идентификатором, если она существует. |
tags
Обязательно
|
Необязательный список тегов, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]] |
properties
Обязательно
|
Необязательный список свойств, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]] |
version
Обязательно
|
Версия возвращаемой модели. При указании вместе с параметром |
run_id
Обязательно
|
Необязательный идентификатор, используемый для фильтрации возвращаемых результатов. |
model_framework
Обязательно
|
Необязательное имя платформы, используемое для фильтрации возвращаемых результатов. Если указано, возвращает результаты для моделей, соответствующих указанной платформе. Сведения о допустимых значениях приведены в Framework. |
expand
|
При значении True будут возвращаться модели со всеми заполненными подсвойствами, например запуском, набором данных и экспериментом. Default value: True
|
Комментарии
Конструктор модели используется для извлечения облачного представления объекта модели, связанного с указанной рабочей областью. Для извлечения моделей необходимо указать по крайней мере имя или идентификатор, но существуют также другие варианты фильтрации, включая теги, свойства, идентификаторы запуска и платформы.
from azureml.core.model import Model
model = Model(ws, 'my_model_name')
В следующем примере показано, как извлечь определенную версию модели.
from azureml.core.model import Model
model = Model(ws, 'my_model_name', version=1)
Регистрация модели создает логический контейнер для одного или нескольких файлов, составляющих эту модель. Вместе с содержимым файла модели в зарегистрированной модели также будут храниться метаданные модели, включая описание модели, теги и сведения о платформе, которые будут полезны при управлении моделями в рабочей области и их развертывании. С помощью тегов, например, можно классифицировать модели и применять фильтры при составлении списка моделей в рабочей области. После регистрации вы сможете скачать или развернуть зарегистрированную модель и получить все зарегистрированные файлы и метаданные.
В следующем примере показано, как зарегистрировать модель с указанием тегов и описания.
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)
Полный пример можно найти по адресу: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb
В следующем примере показано, как зарегистрировать модель с указанием платформы, наборов входных и выходных данных и конфигурации ресурсов.
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)
В разделе Переменные перечислены атрибуты локального представления облачного объекта модели. Эти переменные должны считаться доступными только для чтения. Изменение их значений не будет отражено в соответствующем облачном объекте.
Переменные
Имя | Описание |
---|---|
created_by
|
Пользователь, создавший модель. |
created_time
|
Когда модель была создана. |
azureml.core.Model.description
|
Описание объекта модели. |
azureml.core.Model.id
|
Идентификатор модели. Он имеет вид <имя модели>:<версия модели>. |
mime_type
|
Тип MIME модели. |
azureml.core.Model.name
|
Имя модели. |
model_framework
|
Платформа модели. |
model_framework_version
|
Версия платформы модели. |
azureml.core.Model.tags
|
Словарь тегов для объекта модели. |
azureml.core.Model.properties
|
Словарь свойств значений ключа для модели. Эти свойства нельзя изменить после регистрации, однако можно добавить новые пары "ключ-значение". |
unpack
|
Указывает, должна ли модель быть распакована (освобождена от оболочки) при извлечении в локальный контекст. |
url
|
Расположение URL-адреса модели. |
azureml.core.Model.version
|
Версия модели. |
azureml.core.Model.workspace
|
Рабочая область, содержащая модель. |
azureml.core.Model.experiment_name
|
Имя эксперимента, создавшего модель. |
azureml.core.Model.run_id
|
Идентификатор запуска, создавшего модель. |
parent_id
|
Идентификатор родительской модели этой модели. |
derived_model_ids
|
Список идентификаторов моделей, производных от этой модели. |
resource_configuration
|
ResourceConfiguration для этой модели. Используется для профилирования. |
Методы
add_dataset_references |
Связывает предоставленные наборы данных с этой моделью. |
add_properties |
Добавляет пару "ключ-значение" в словарь свойств этой модели. |
add_tags |
Добавляет пару "ключ-значение" в словарь тегов этой модели. |
delete |
Удаляет эту модель из связанной с ней рабочей области. |
deploy |
Развертывает веб-службу из нулевого или большего количества объектов Model. Итоговая веб-служба — это конечная точка для прогнозирования в реальном времени, которую можно использовать для запросов на вывод. Функция модели |
deserialize |
Преобразует объект JSON в объект модели. Преобразование завершается сбоем, если указанна не та рабочая область, в которой зарегистрирована данная модель. |
download |
Загрузка модели в целевой каталог локальной файловой системы. |
get_model_path |
Возвращает путь к модели. Функция будет искать модель в следующих расположениях. Если
Если значение
|
get_sas_urls |
Возвращает словарь пар "ключ-значение", содержащих имена файлов и соответствующие URL-адреса SAS. |
list |
Получает список всех моделей, связанных с указанной рабочей областью, с дополнительными фильтрами. |
package |
Создание пакета модели в виде образа Docker или контекста сборки Dockerfile. |
print_configuration |
Выводит конфигурацию пользователя. |
profile |
Профили модели для получения рекомендаций по потребностям в ресурсах. Это длительная операция, которая может занять до 25 минут в зависимости от размера набора данных. |
register |
Регистрирует модель в указанной рабочей области. |
remove_tags |
Удаление указанных ключей из словаря тегов этой модели. |
serialize |
Преобразует эту модель в сериализованный словарь JSON. |
update |
Выполняет обновление модели на месте. Существующие значения указанных параметров заменяются. |
update_tags_properties |
Обновление тегов и свойств модели. |
add_dataset_references
Связывает предоставленные наборы данных с этой моделью.
add_dataset_references(datasets)
Параметры
Имя | Описание |
---|---|
datasets
Обязательно
|
Список кортежей, представляющих связывание назначения набора данных с объектом DataSet. |
Исключения
Тип | Описание |
---|---|
add_properties
Добавляет пару "ключ-значение" в словарь свойств этой модели.
add_properties(properties)
Параметры
Имя | Описание |
---|---|
properties
Обязательно
|
dict(<xref:str : str>)
Словарь свойств для добавления. |
Исключения
Тип | Описание |
---|---|
add_tags
Добавляет пару "ключ-значение" в словарь тегов этой модели.
add_tags(tags)
Параметры
Имя | Описание |
---|---|
tags
Обязательно
|
dict(<xref:{str : str}>)
Словарь тегов для добавления. |
Исключения
Тип | Описание |
---|---|
delete
Удаляет эту модель из связанной с ней рабочей области.
delete()
Исключения
Тип | Описание |
---|---|
deploy
Развертывает веб-службу из нулевого или большего количества объектов Model.
Итоговая веб-служба — это конечная точка для прогнозирования в реальном времени, которую можно использовать для запросов на вывод. Функция модели deploy
аналогична функции deploy
класса Webservice, но не регистрирует модели. Используйте функцию модели deploy
при наличии объектов модели, которые уже зарегистрированы.
static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области для связывания c веб-службой. |
name
Обязательно
|
Имя для предоставления развернутой службы. Должно быть уникальным для соответствующей рабочей области, должно состоять только из строчных букв, цифр и дефисов, начинаться с буквы и содержать от 3 до 32 символов. |
models
Обязательно
|
Список объектов модели. Может быть пустым списком. |
inference_config
|
Объект InferenceConfig, используемый для определения требуемых свойств модели. Default value: None
|
deployment_config
|
Значение WebserviceDeploymentConfiguration, используемое для настройки веб-службы. Если оно не указано, будет использоваться пустой объект конфигурации, основанный на нужном целевом объекте. Default value: None
|
deployment_target
|
ComputeTarget, где будет развернута веб-служба. Так как с Экземплярами контейнеров Azure не связан объект ComputeTarget, оставьте для этого параметра значение None (Нет) для развертывания в Экземплярах контейнеров Azure. Default value: None
|
overwrite
|
Указывает, следует ли перезаписывать существующую службу, если служба с указанным именем уже существует. Default value: False
|
show_output
|
Указывает, следует ли отображать ход выполнения развертывания службы. Default value: False
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект веб-службы, соответствующий развернутой веб-службе. |
Исключения
Тип | Описание |
---|---|
deserialize
Преобразует объект JSON в объект модели.
Преобразование завершается сбоем, если указанна не та рабочая область, в которой зарегистрирована данная модель.
static deserialize(workspace, model_payload)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области, в которой зарегистрирована модель. |
model_payload
Обязательно
|
Объект JSON для преобразования в объект модели. |
Возвращаемое значение
Тип | Описание |
---|---|
Представление модели указанного объекта JSON. |
Исключения
Тип | Описание |
---|---|
download
Загрузка модели в целевой каталог локальной файловой системы.
download(target_dir='.', exist_ok=False, exists_ok=None)
Параметры
Имя | Описание |
---|---|
target_dir
|
Путь к каталогу, в который будет загружена модель. Значение по умолчанию — ".". Default value: .
|
exist_ok
|
Указывает, следует ли заменить скачанные каталоги или файлы, если они существуют. Значение по умолчанию — False. Default value: False
|
exists_ok
|
НЕ РЕКОМЕНДУЕТСЯ. Используйте команду Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Путь к файлу или папке модели. |
Исключения
Тип | Описание |
---|---|
get_model_path
Возвращает путь к модели.
Функция будет искать модель в следующих расположениях.
Если version
имеет значение None (Нет):
- Скачивает данные из удаленного расположения в кэш (если указана рабочая область)
- Загружает данные из кэша azureml-models/$MODEL_NAME/$LATEST_VERSION/
- ./$MODEL_NAME
Если значение version
отлично от None (Нет):
- Загружает данные из кэша azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/
- Скачивает данные из удаленного расположения в кэш (если указана рабочая область)
static get_model_path(model_name, version=None, _workspace=None)
Параметры
Имя | Описание |
---|---|
model_name
Обязательно
|
Имя извлекаемой модели. |
version
|
Версия модели для извлечения. По умолчанию используется последняя версия. Default value: None
|
_workspace
|
Рабочая область, из которой извлекается модель. Не может использоваться удаленно. Если не указана, выполняется поиск только в локальном кэше. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Путь на диске к модели. |
Исключения
Тип | Описание |
---|---|
get_sas_urls
Возвращает словарь пар "ключ-значение", содержащих имена файлов и соответствующие URL-адреса SAS.
get_sas_urls()
Возвращаемое значение
Тип | Описание |
---|---|
Словарь пар "ключ-значение", содержащих имена файлов и соответствующие URL-адреса SAS |
Исключения
Тип | Описание |
---|---|
list
Получает список всех моделей, связанных с указанной рабочей областью, с дополнительными фильтрами.
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)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области, из которого извлекаются модели. |
name
|
Если он указан, будут возвращены модели только с указанным именем, если таковые имеются. Default value: None
|
tags
|
Фильтрация будет осуществляться по указанному списку: "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]] Default value: None
|
properties
|
Фильтрация будет осуществляться по указанному списку: "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]] Default value: None
|
run_id
|
Фильтрация будет осуществляться по указанному идентификатору запуска. Default value: None
|
latest
|
При значении True будут возвращаться только модели с последней версией. Default value: False
|
dataset_id
|
Фильтрация будет осуществляться по указанному идентификатору набора данных. Default value: None
|
expand
|
При значении True будут возвращаться модели со всеми заполненными подсвойствами, например запуском, набором данных и экспериментом. Значение False должно ускорить выполнение метода list() в случае многих моделей. Default value: True
|
page_count
|
Число элементов для извлечения, которые разместятся на одной странице. В настоящее время поддерживаются значения до 255. Значение по умолчанию — 255. Default value: 255
|
model_framework
|
Если задано это значение, будут возвращаться модели только с указанной платформой, если таковые имеются. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Список моделей, при необходимости отфильтрованный. |
Исключения
Тип | Описание |
---|---|
package
Создание пакета модели в виде образа Docker или контекста сборки Dockerfile.
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область, в которой создается пакет. |
models
Обязательно
|
Список объектов модели для включения в пакет. Может быть пустым списком. |
inference_config
|
Объект InferenceConfig для настройки операции моделей. Должен включать объект среды. Default value: None
|
generate_dockerfile
|
Следует ли создавать файл Dockerfile, который можно запускать локально вместо сборки образа. Default value: False
|
image_name
|
При сборке образа имя полученного образа. Default value: None
|
image_label
|
При сборке образа метка полученного образа. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект ModelPackage. |
Исключения
Тип | Описание |
---|---|
print_configuration
Выводит конфигурацию пользователя.
static print_configuration(models, inference_config, deployment_config, deployment_target)
Параметры
Имя | Описание |
---|---|
models
Обязательно
|
Список объектов модели. Может быть пустым списком. |
inference_config
Обязательно
|
Объект InferenceConfig, используемый для определения требуемых свойств модели. |
deployment_config
Обязательно
|
Значение WebserviceDeploymentConfiguration, используемое для настройки веб-службы. |
deployment_target
Обязательно
|
ComputeTarget, где будет развернута веб-служба. |
Исключения
Тип | Описание |
---|---|
profile
Профили модели для получения рекомендаций по потребностям в ресурсах.
Это длительная операция, которая может занять до 25 минут в зависимости от размера набора данных.
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Объект рабочей области, в котором необходимо профилировать модель. |
profile_name
Обязательно
|
Имя запуска профилирования. |
models
Обязательно
|
Список объектов модели. Может быть пустым списком. |
inference_config
Обязательно
|
Объект InferenceConfig, используемый для определения требуемых свойств модели. |
input_dataset
Обязательно
|
Входной набор данных для профилирования. Входной набор данных должен иметь один столбец, а примеры входных данных должны быть в строковом формате. |
cpu
|
Количество ядер ЦП, используемых в наибольшем тестовом экземпляре. В настоящее время поддерживаются значения до 3,5. Default value: None
|
memory_in_gb
|
Объем памяти (в ГБ), используемой в наибольшем тестовом экземпляре. Может выражаться десятичным числом. В настоящее время поддерживаются значения до 15,0. Default value: None
|
description
|
Описание, связываемое с сеансом профилирования. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Исключения
Тип | Описание |
---|---|
<xref:azureml.exceptions.WebserviceException>, <xref:azureml.exceptions.UserErrorException>
|
register
Регистрирует модель в указанной рабочей области.
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)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область, в которой регистрируется модель. |
model_path
Обязательно
|
Путь в локальной файловой системе, в которой находятся ресурсы модели. Это может быть прямой указатель на один файл или папку. При указании на папку с помощью параметра |
model_name
Обязательно
|
Имя, с которым регистрируется модель. |
tags
|
dict(<xref:{str : str}>)
Необязательный словарь тегов значений ключа для назначения модели. Default value: None
|
properties
|
dict(<xref:{str : str}>)
Необязательный словарь свойств значений ключа для назначения модели. Эти свойства нельзя изменить после создания модели, однако можно добавить новые пары "ключ-значение". Default value: None
|
description
|
Текстовое описание модели. Default value: None
|
datasets
|
Список кортежей, в которых первый элемент описывает связь между набором данных и моделью, а второй элемент — это набор данных. Default value: None
|
model_framework
|
Платформа зарегистрированной модели. Использование поддерживаемых системой констант из класса Framework позволяет упростить развертывание для некоторых популярных платформ. Default value: None
|
model_framework_version
|
Версия платформы зарегистрированной модели. Default value: None
|
child_paths
|
Если значение задано в сочетании с Default value: None
|
sample_input_dataset
|
Пример входного набора данных для зарегистрированной модели. Default value: None
|
sample_output_dataset
|
Пример выходного набора данных для зарегистрированной модели. Default value: None
|
resource_configuration
|
Конфигурация ресурсов для запуска зарегистрированной модели. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект зарегистрированной модели. |
Исключения
Тип | Описание |
---|---|
Комментарии
Вместе с содержимым файла модели в зарегистрированной модели также будут храниться метаданные модели, включая описание модели, теги и сведения о платформе, которые будут полезны при управлении моделями в рабочей области и их развертывании. С помощью тегов, например, можно классифицировать модели и применять фильтры при составлении списка моделей в рабочей области.
В следующем примере показано, как зарегистрировать модель с указанием тегов и описания.
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)
Полный пример можно найти по адресу: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb
При наличии модели, созданной в результате запуска эксперимента, ее можно зарегистрировать непосредственно из объекта запуска без предварительного скачивания в локальный файл. Для этого используйте метод register_model в соответствии с документацией класса Run.
remove_tags
Удаление указанных ключей из словаря тегов этой модели.
remove_tags(tags)
Параметры
Имя | Описание |
---|---|
tags
Обязательно
|
Список ключей для удаления |
Исключения
Тип | Описание |
---|---|
serialize
Преобразует эту модель в сериализованный словарь JSON.
serialize()
Возвращаемое значение
Тип | Описание |
---|---|
Представление JSON этой модели |
Исключения
Тип | Описание |
---|---|
update
Выполняет обновление модели на месте.
Существующие значения указанных параметров заменяются.
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
Параметры
Имя | Описание |
---|---|
tags
|
dict(<xref:{str : str}>)
Словарь тегов, используемых для обновления модели. Эти теги заменяют существующие теги для модели. Default value: None
|
description
|
Новое описание, используемое для модели. Это имя заменяет существующее имя. Default value: None
|
sample_input_dataset
|
Пример входного набора данных для зарегистрированной модели. Этот образец входного набора данных заменяет существующий набор данных. Default value: None
|
sample_output_dataset
|
Пример выходного набора данных для зарегистрированной модели. Этот пример выходного набора данных заменяет существующий набор данных. Default value: None
|
resource_configuration
|
Конфигурация ресурсов, используемая для запуска зарегистрированной модели. Default value: None
|
Исключения
Тип | Описание |
---|---|
update_tags_properties
Обновление тегов и свойств модели.
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
Параметры
Имя | Описание |
---|---|
add_tags
|
dict(<xref:{str : str}>)
Словарь тегов для добавления. Default value: None
|
remove_tags
|
Список имен тегов для удаления. Default value: None
|
add_properties
|
dict(<xref:{str : str}>)
Словарь свойств для добавления. Default value: None
|
Исключения
Тип | Описание |
---|---|