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)
Параметры
- name
- str
Имя извлекаемой модели. Возвращает последнюю модель с указанным именем, если она существует.
- id
- str
Идентификатор извлекаемой модели. Возвращает модель с указанным идентификатором, если она существует.
- tags
- list
Необязательный список тегов, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]
- properties
- list
Необязательный список свойств, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]
- version
- int
Версия возвращаемой модели. При указании вместе с параметром name
возвращает конкретную версию указанной именованной модели, если она существует. Если параметр version
опущен, возвращает последнюю версию модели.
- run_id
- str
Необязательный идентификатор, используемый для фильтрации возвращаемых результатов.
- model_framework
- str
Необязательное имя платформы, используемое для фильтрации возвращаемых результатов. Если указано, возвращает результаты для моделей, соответствующих указанной платформе. Сведения о допустимых значениях приведены в Framework.
- name
- str
Имя извлекаемой модели. Возвращает последнюю модель с указанным именем, если она существует.
- id
- str
Идентификатор извлекаемой модели. Возвращает модель с указанным идентификатором, если она существует.
- tags
- list
Необязательный список тегов, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]
- properties
- list
Необязательный список свойств, используемых для фильтрации возвращаемых результатов. Результаты фильтруются по указанному списку, в котором выполняется поиск по параметрам "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]
- version
- int
Версия возвращаемой модели. При указании вместе с параметром name
возвращает конкретную версию указанной именованной модели, если она существует. Если параметр version
опущен, возвращает последнюю версию модели.
- run_id
- str
Необязательный идентификатор, используемый для фильтрации возвращаемых результатов.
- model_framework
- str
Необязательное имя платформы, используемое для фильтрации возвращаемых результатов. Если указано, возвращает результаты для моделей, соответствующих указанной платформе. Сведения о допустимых значениях приведены в Framework.
- expand
- bool
При значении 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
- dict
Пользователь, создавший модель.
- created_time
- datetime
Когда модель была создана.
- 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
- bool
Указывает, должна ли модель быть распакована (освобождена от оболочки) при извлечении в локальный контекст.
- url
- str
Расположение URL-адреса модели.
- azureml.core.Model.version
Версия модели.
- azureml.core.Model.workspace
Рабочая область, содержащая модель.
- azureml.core.Model.experiment_name
Имя эксперимента, создавшего модель.
- azureml.core.Model.run_id
Идентификатор запуска, создавшего модель.
- parent_id
- str
Идентификатор родительской модели этой модели.
- resource_configuration
- ResourceConfiguration
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
- list[tuple(<xref:str :> (Dataset или DatasetSnapshot))]
Список кортежей, представляющих связывание назначения набора данных с объектом DataSet.
Исключения
add_properties
Добавляет пару "ключ-значение" в словарь свойств этой модели.
add_properties(properties)
Параметры
Исключения
add_tags
Добавляет пару "ключ-значение" в словарь тегов этой модели.
add_tags(tags)
Параметры
Исключения
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)
Параметры
- name
- str
Имя для предоставления развернутой службы. Должно быть уникальным для соответствующей рабочей области, должно состоять только из строчных букв, цифр и дефисов, начинаться с буквы и содержать от 3 до 32 символов.
- inference_config
- InferenceConfig
Объект InferenceConfig, используемый для определения требуемых свойств модели.
- deployment_config
- WebserviceDeploymentConfiguration
Значение WebserviceDeploymentConfiguration, используемое для настройки веб-службы. Если оно не указано, будет использоваться пустой объект конфигурации, основанный на нужном целевом объекте.
- deployment_target
- ComputeTarget
ComputeTarget, где будет развернута веб-служба. Так как с Экземплярами контейнеров Azure не связан объект ComputeTarget, оставьте для этого параметра значение None (Нет) для развертывания в Экземплярах контейнеров Azure.
- overwrite
- bool
Указывает, следует ли перезаписывать существующую службу, если служба с указанным именем уже существует.
- show_output
- bool
Указывает, следует ли отображать ход выполнения развертывания службы.
Возвращаемое значение
Объект веб-службы, соответствующий развернутой веб-службе.
Возвращаемый тип
Исключения
deserialize
Преобразует объект JSON в объект модели.
Преобразование завершается сбоем, если указанна не та рабочая область, в которой зарегистрирована данная модель.
static deserialize(workspace, model_payload)
Параметры
Возвращаемое значение
Представление модели указанного объекта JSON.
Возвращаемый тип
Исключения
download
Загрузка модели в целевой каталог локальной файловой системы.
download(target_dir='.', exist_ok=False, exists_ok=None)
Параметры
- target_dir
- str
Путь к каталогу, в который будет загружена модель. Значение по умолчанию — ".".
- exist_ok
- bool
Указывает, следует ли заменить скачанные каталоги или файлы, если они существуют. Значение по умолчанию — False.
Возвращаемое значение
Путь к файлу или папке модели.
Возвращаемый тип
Исключения
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)
Параметры
- version
- int
Версия модели для извлечения. По умолчанию используется последняя версия.
- _workspace
- Workspace
Рабочая область, из которой извлекается модель. Не может использоваться удаленно. Если не указана, выполняется поиск только в локальном кэше.
Возвращаемое значение
Путь на диске к модели.
Возвращаемый тип
Исключения
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)
Параметры
- name
- str
Если он указан, будут возвращены модели только с указанным именем, если таковые имеются.
- tags
- list
Фильтрация будет осуществляться по указанному списку: "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]
- properties
- list
Фильтрация будет осуществляться по указанному списку: "ключ" или "[ключ, значение]". Например: ["ключ", ["ключ2", "ключ2 значение"]]
- run_id
- str
Фильтрация будет осуществляться по указанному идентификатору запуска.
- latest
- bool
При значении True будут возвращаться только модели с последней версией.
- dataset_id
- str
Фильтрация будет осуществляться по указанному идентификатору набора данных.
- expand
- bool
При значении True будут возвращаться модели со всеми заполненными подсвойствами, например запуском, набором данных и экспериментом. Значение False должно ускорить выполнение метода list() в случае многих моделей.
- page_count
- int
Число элементов для извлечения, которые разместятся на одной странице. В настоящее время поддерживаются значения до 255. Значение по умолчанию — 255.
- model_framework
- str
Если задано это значение, будут возвращаться модели только с указанной платформой, если таковые имеются.
Возвращаемое значение
Список моделей, при необходимости отфильтрованный.
Возвращаемый тип
Исключения
package
Создание пакета модели в виде образа Docker или контекста сборки Dockerfile.
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
Параметры
Список объектов модели для включения в пакет. Может быть пустым списком.
- inference_config
- InferenceConfig
Объект InferenceConfig для настройки операции моделей. Должен включать объект среды.
- generate_dockerfile
- bool
Следует ли создавать файл Dockerfile, который можно запускать локально вместо сборки образа.
Возвращаемое значение
Объект ModelPackage.
Возвращаемый тип
Исключения
print_configuration
Выводит конфигурацию пользователя.
static print_configuration(models, inference_config, deployment_config, deployment_target)
Параметры
- inference_config
- InferenceConfig
Объект InferenceConfig, используемый для определения требуемых свойств модели.
- deployment_config
- WebserviceDeploymentConfiguration
Значение WebserviceDeploymentConfiguration, используемое для настройки веб-службы.
Исключения
profile
Профили модели для получения рекомендаций по потребностям в ресурсах.
Это длительная операция, которая может занять до 25 минут в зависимости от размера набора данных.
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
Параметры
- inference_config
- InferenceConfig
Объект InferenceConfig, используемый для определения требуемых свойств модели.
- input_dataset
- Dataset
Входной набор данных для профилирования. Входной набор данных должен иметь один столбец, а примеры входных данных должны быть в строковом формате.
- cpu
- float
Количество ядер ЦП, используемых в наибольшем тестовом экземпляре. В настоящее время поддерживаются значения до 3,5.
- memory_in_gb
- float
Объем памяти (в ГБ), используемой в наибольшем тестовом экземпляре. Может выражаться десятичным числом. В настоящее время поддерживаются значения до 15,0.
Возвращаемый тип
Исключения
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)
Параметры
- model_path
- str
Путь в локальной файловой системе, в которой находятся ресурсы модели. Это может быть прямой указатель на один файл или папку. При указании на папку с помощью параметра child_paths
для объединения в качестве объекта модели можно задать отдельные файлы, а не все содержимое папки.
- tags
- dict(<xref:{str : str}>)
Необязательный словарь тегов значений ключа для назначения модели.
- properties
- dict(<xref:{str : str}>)
Необязательный словарь свойств значений ключа для назначения модели. Эти свойства нельзя изменить после создания модели, однако можно добавить новые пары "ключ-значение".
- datasets
- list[(str, AbstractDataset)]
Список кортежей, в которых первый элемент описывает связь между набором данных и моделью, а второй элемент — это набор данных.
- model_framework
- str
Платформа зарегистрированной модели. Использование поддерживаемых системой констант из класса Framework позволяет упростить развертывание для некоторых популярных платформ.
Если значение задано в сочетании с model_path
для папки, в пакет с объектом модели будут объединены только указанные файлы.
- sample_input_dataset
- AbstractDataset
Пример входного набора данных для зарегистрированной модели.
- sample_output_dataset
- AbstractDataset
Пример выходного набора данных для зарегистрированной модели.
- resource_configuration
- ResourceConfiguration
Конфигурация ресурсов для запуска зарегистрированной модели.
Возвращаемое значение
Объект зарегистрированной модели.
Возвращаемый тип
Исключения
Комментарии
Вместе с содержимым файла модели в зарегистрированной модели также будут храниться метаданные модели, включая описание модели, теги и сведения о платформе, которые будут полезны при управлении моделями в рабочей области и их развертывании. С помощью тегов, например, можно классифицировать модели и применять фильтры при составлении списка моделей в рабочей области.
В следующем примере показано, как зарегистрировать модель с указанием тегов и описания.
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)
Параметры
Исключения
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}>)
Словарь тегов, используемых для обновления модели. Эти теги заменяют существующие теги для модели.
- description
- str
Новое описание, используемое для модели. Это имя заменяет существующее имя.
- sample_input_dataset
- AbstractDataset
Пример входного набора данных для зарегистрированной модели. Этот образец входного набора данных заменяет существующий набор данных.
- sample_output_dataset
- AbstractDataset
Пример выходного набора данных для зарегистрированной модели. Этот пример выходного набора данных заменяет существующий набор данных.
- resource_configuration
- ResourceConfiguration
Конфигурация ресурсов, используемая для запуска зарегистрированной модели.
Исключения
update_tags_properties
Обновление тегов и свойств модели.
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
Параметры
Исключения
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по