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


Model Класс

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

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

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

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

Конструктор модели используется для получения облачного представления объекта 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

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

Default value: None
properties

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

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

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

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

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

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

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

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

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

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

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

expand

Если значение true, возвращает модели со всеми вложенными свойствами, заполненными, например выполнением, набором данных и экспериментом.

Default value: True

Комментарии

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


   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)

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


   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)

В разделе "Переменные" перечислены атрибуты локального представления объекта cloud Model. Эти переменные должны рассматриваться только для чтения. Изменение их значений не будет отражено в соответствующем облачном объекте.

Переменные

Имя Описание
created_by

Пользователь, создавший модель.

created_time

Когда модель была создана.

azureml.core.Model.description

Описание объекта Model.

azureml.core.Model.id

Идентификатор модели. Это принимает форму <модели name>:<model version>.

mime_type
str

Тип mime модели.

azureml.core.Model.name

Имя модели.

model_framework
str

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

model_framework_version
str

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

azureml.core.Model.tags

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

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 объектов.

Результирующая веб-служба — это конечная точка в режиме реального времени, которая может использоваться для запросов вывода. Функция 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 нет:

  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))]

Список кортежей, представляющих связывание назначения набора данных с объектом набора данных.

Исключения

Тип Описание

add_properties

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

add_properties(properties)

Параметры

Имя Описание
properties
Обязательно
dict(<xref:str : str>)

Словарь добавляемых свойств.

add_tags

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

add_tags(tags)

Параметры

Имя Описание
tags
Обязательно
dict(<xref:{str : str}>)

Словарь добавляемых тегов.

Исключения

Тип Описание

delete

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

delete()

Исключения

Тип Описание

deploy

Разверните веб-службу из нуля или нескольких Model объектов.

Результирующая веб-служба — это конечная точка в режиме реального времени, которая может использоваться для запросов вывода. Функция 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
Обязательно

Объект рабочей области для связывания веб-службы с.

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

Имя для предоставления развернутой службы. Должен быть уникальным для рабочей области, состоящий только из строчных букв, чисел или дефисов, начинаться с буквы и иметь длину от 3 до 32 символов.

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

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

inference_config

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

Default value: None
deployment_config

Служба WebserviceDeploymentConfiguration, используемая для настройки веб-службы. Если он не указан, пустой объект конфигурации будет использоваться на основе требуемого целевого объекта.

Default value: None
deployment_target

A 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 для преобразования в объект Model.

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

Тип Описание

Представление модели предоставленного объекта JSON.

download

Скачайте модель в целевой каталог локальной файловой системы.

download(target_dir='.', exist_ok=False, exists_ok=None)

Параметры

Имя Описание
target_dir
str

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

Default value: .
exist_ok

Указывает, следует ли заменить скачанный dir/files, если они существуют. По умолчанию 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 нет:

  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

Фильтруется по указанному списку по ключу или [ключу, значению]. Пример. ['key', ['key2', 'key2 value']]

Default value: None
properties

Фильтруется по указанному списку по ключу или [ключу, значению]. Пример. ['key', ['key2', 'key2 value']]

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 для настройки операции моделей. Это должно включать объект Environment.

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

A 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, а не для использования всего содержимого папки.

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 папкой, в объект Model будут упаковываться только указанные файлы.

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)

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

Исключения

Тип Описание