Поделиться через


Model Класс

Представляет результат обучающих прогонов машинного обучения.

Модель — это результат обучающего прогона машинного обучения Microsoft Azure Run или другого процесса обучения модели за пределами Azure. Независимо от того, как создается модель, ее можно зарегистрировать в рабочей области, где она будет представлена с помощью имени и версии. С помощью класса модели можно упаковывать модели для использования с Docker, развертывать их в качестве конечной точки для прогнозирования в реальном времени и использовать эту точку для запросов на вывод.

Полное руководство по созданию и использованию моделей и управлению ими см. в статье Обучение модели классификации изображений с помощью данных MNIST и моделей scikit-learn, использующих Машинное обучение Microsoft Azure.

Конструктор модели.

Конструктор модели используется для получения облачного представления объекта Model, связанного с предоставленной рабочей областью. Необходимо указать имя или идентификатор.

Наследование
builtins.object
Model

Конструктор

Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)

Параметры

Имя Описание
workspace
Обязательно

Объект рабочей области, содержащий извлекаемую модель.

name
str

Имя извлекаемой модели. Возвращает последнюю модель с указанным именем, если она существует.

Default value: None
id
str

Идентификатор извлекаемой модели. Возвращает модель с указанным идентификатором, если она существует.

Default value: None
tags

Необязательный список тегов, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]

Default value: None
properties

Необязательный список свойств, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]

Default value: None
version
int

Версия возвращаемой модели. При указании вместе с параметром name возвращает конкретную версию указанной именованной модели, если она существует. Если параметр version опущен, возвращает последнюю версию модели.

Default value: None
run_id
str

Необязательный идентификатор, используемый для фильтрации возвращаемых результатов.

Default value: None
model_framework
str

Необязательное имя платформы, используемое для фильтрации возвращаемых результатов. Если указано, возвращает результаты для моделей, соответствующих указанной платформе. Сведения о допустимых значениях приведены в Framework.

Default value: None
workspace
Обязательно

Объект рабочей области, содержащий извлекаемую модель.

name
Обязательно
str

Имя извлекаемой модели. Возвращает последнюю модель с указанным именем, если она существует.

id
Обязательно
str

Идентификатор извлекаемой модели. Возвращает модель с указанным идентификатором, если она существует.

tags
Обязательно

Необязательный список тегов, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]

properties
Обязательно

Необязательный список свойств, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]

version
Обязательно
int

Версия возвращаемой модели. При указании вместе с параметром name возвращает конкретную версию указанной именованной модели, если она существует. Если параметр version опущен, возвращает последнюю версию модели.

run_id
Обязательно
str

Необязательный идентификатор, используемый для фильтрации возвращаемых результатов.

model_framework
Обязательно
str

Необязательное имя платформы, используемое для фильтрации возвращаемых результатов. Если указано, возвращает результаты для моделей, соответствующих указанной платформе. Сведения о допустимых значениях приведены в 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
str

Тип MIME модели.

azureml.core.Model.name

Имя модели.

model_framework
str

Платформа модели.

model_framework_version
str

Версия платформы модели.

azureml.core.Model.tags

Словарь тегов для объекта модели.

azureml.core.Model.properties

Словарь свойств значений ключа для модели. Эти свойства нельзя изменить после регистрации, однако можно добавить новые пары "ключ-значение".

unpack

Указывает, должна ли модель быть распакована (освобождена от оболочки) при извлечении в локальный контекст.

url
str

Расположение URL-адреса модели.

azureml.core.Model.version

Версия модели.

azureml.core.Model.workspace

Рабочая область, содержащая модель.

azureml.core.Model.experiment_name

Имя эксперимента, создавшего модель.

azureml.core.Model.run_id

Идентификатор запуска, создавшего модель.

parent_id
str

Идентификатор родительской модели этой модели.

derived_model_ids

Список идентификаторов моделей, производных от этой модели.

resource_configuration

ResourceConfiguration для этой модели. Используется для профилирования.

Методы

add_dataset_references

Связывает предоставленные наборы данных с этой моделью.

add_properties

Добавляет пару "ключ-значение" в словарь свойств этой модели.

add_tags

Добавляет пару "ключ-значение" в словарь тегов этой модели.

delete

Удаляет эту модель из связанной с ней рабочей области.

deploy

Развертывает веб-службу из нулевого или большего количества объектов Model.

Итоговая веб-служба — это конечная точка для прогнозирования в реальном времени, которую можно использовать для запросов на вывод. Функция модели deploy аналогична функции deploy класса Webservice, но не регистрирует модели. Используйте функцию модели deploy при наличии объектов модели, которые уже зарегистрированы.

deserialize

Преобразует объект JSON в объект модели.

Преобразование завершается сбоем, если указанна не та рабочая область, в которой зарегистрирована данная модель.

download

Загрузка модели в целевой каталог локальной файловой системы.

get_model_path

Возвращает путь к модели.

Функция будет искать модель в следующих расположениях.

Если version имеет значение None (Нет):

  1. Скачивает данные из удаленного расположения в кэш (если указана рабочая область)
  2. Загружает данные из кэша azureml-models/$MODEL_NAME/$LATEST_VERSION/
  3. ./$MODEL_NAME

Если значение version отлично от None (Нет):

  1. Загружает данные из кэша azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/
  2. Скачивает данные из удаленного расположения в кэш (если указана рабочая область)
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
Обязательно
list[tuple(<xref:str :> (Dataset или DatasetSnapshot))]

Список кортежей, представляющих связывание назначения набора данных с объектом 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
Обязательно
str

Имя для предоставления развернутой службы. Должно быть уникальным для соответствующей рабочей области, должно состоять только из строчных букв, цифр и дефисов, начинаться с буквы и содержать от 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
str

Путь к каталогу, в который будет загружена модель. Значение по умолчанию — ".".

Default value: .
exist_ok

Указывает, следует ли заменить скачанные каталоги или файлы, если они существуют. Значение по умолчанию — False.

Default value: False
exists_ok

НЕ РЕКОМЕНДУЕТСЯ. Используйте команду exist_ok.

Default value: None

Возвращаемое значение

Тип Описание
str

Путь к файлу или папке модели.

Исключения

Тип Описание

get_model_path

Возвращает путь к модели.

Функция будет искать модель в следующих расположениях.

Если version имеет значение None (Нет):

  1. Скачивает данные из удаленного расположения в кэш (если указана рабочая область)
  2. Загружает данные из кэша azureml-models/$MODEL_NAME/$LATEST_VERSION/
  3. ./$MODEL_NAME

Если значение version отлично от None (Нет):

  1. Загружает данные из кэша azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/
  2. Скачивает данные из удаленного расположения в кэш (если указана рабочая область)
static get_model_path(model_name, version=None, _workspace=None)

Параметры

Имя Описание
model_name
Обязательно
str

Имя извлекаемой модели.

version
int

Версия модели для извлечения. По умолчанию используется последняя версия.

Default value: None
_workspace

Рабочая область, из которой извлекается модель. Не может использоваться удаленно. Если не указана, выполняется поиск только в локальном кэше.

Default value: None

Возвращаемое значение

Тип Описание
str

Путь на диске к модели.

Исключения

Тип Описание

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
str

Если он указан, будут возвращены модели только с указанным именем, если таковые имеются.

Default value: None
tags

Фильтрация будет осуществляться по указанному списку: "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]

Default value: None
properties

Фильтрация будет осуществляться по указанному списку: "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]

Default value: None
run_id
str

Фильтрация будет осуществляться по указанному идентификатору запуска.

Default value: None
latest

При значении True будут возвращаться только модели с последней версией.

Default value: False
dataset_id
str

Фильтрация будет осуществляться по указанному идентификатору набора данных.

Default value: None
expand

При значении True будут возвращаться модели со всеми заполненными подсвойствами, например запуском, набором данных и экспериментом. Значение False должно ускорить выполнение метода list() в случае многих моделей.

Default value: True
page_count
int

Число элементов для извлечения, которые разместятся на одной странице. В настоящее время поддерживаются значения до 255. Значение по умолчанию — 255.

Default value: 255
model_framework
str

Если задано это значение, будут возвращаться модели только с указанной платформой, если таковые имеются.

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
str

При сборке образа имя полученного образа.

Default value: None
image_label
str

При сборке образа метка полученного образа.

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
Обязательно
str

Имя запуска профилирования.

models
Обязательно

Список объектов модели. Может быть пустым списком.

inference_config
Обязательно

Объект InferenceConfig, используемый для определения требуемых свойств модели.

input_dataset
Обязательно

Входной набор данных для профилирования. Входной набор данных должен иметь один столбец, а примеры входных данных должны быть в строковом формате.

cpu

Количество ядер ЦП, используемых в наибольшем тестовом экземпляре. В настоящее время поддерживаются значения до 3,5.

Default value: None
memory_in_gb

Объем памяти (в ГБ), используемой в наибольшем тестовом экземпляре. Может выражаться десятичным числом. В настоящее время поддерживаются значения до 15,0.

Default value: None
description
str

Описание, связываемое с сеансом профилирования.

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
Обязательно
str

Путь в локальной файловой системе, в которой находятся ресурсы модели. Это может быть прямой указатель на один файл или папку. При указании на папку с помощью параметра child_paths для объединения в качестве объекта модели можно задать отдельные файлы, а не все содержимое папки.

model_name
Обязательно
str

Имя, с которым регистрируется модель.

tags
dict(<xref:{str : str}>)

Необязательный словарь тегов значений ключа для назначения модели.

Default value: None
properties
dict(<xref:{str : str}>)

Необязательный словарь свойств значений ключа для назначения модели. Эти свойства нельзя изменить после создания модели, однако можно добавить новые пары "ключ-значение".

Default value: None
description
str

Текстовое описание модели.

Default value: None
datasets

Список кортежей, в которых первый элемент описывает связь между набором данных и моделью, а второй элемент — это набор данных.

Default value: None
model_framework
str

Платформа зарегистрированной модели. Использование поддерживаемых системой констант из класса Framework позволяет упростить развертывание для некоторых популярных платформ.

Default value: None
model_framework_version
str

Версия платформы зарегистрированной модели.

Default value: None
child_paths

Если значение задано в сочетании с model_path для папки, в пакет с объектом модели будут объединены только указанные файлы.

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
str

Новое описание, используемое для модели. Это имя заменяет существующее имя.

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

Исключения

Тип Описание