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


Webservice Класс

Определяет базовые функции для развертывания моделей в качестве конечных точек веб-службы в Машинном обучении Azure.

Конструктор WebService используется для получения облачного представления объекта WebService, связанного с указанным объектом Workspace. Возвращает экземпляр дочернего класса, соответствующий конкретному типу полученного объекта WebService. Класс WebService позволяет развертывать модели машинного обучения из объекта Model или Image.

Дополнительные сведения о работе с классом WebService см. в статье Развертывание моделей в Машинном обучении Azure.

Инициализируйте экземпляр Webservice.

Конструктор Веб-службы извлекает облачное представление объекта Webservice, связанного с предоставленной рабочей областью. Он вернет экземпляр дочернего класса, соответствующий конкретному типу извлеченного объекта Webservice.

Наследование
Webservice

Конструктор

Webservice(workspace, name)

Параметры

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

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

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

Имя объекта WebService, который необходимо извлечь.

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

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

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

Имя объекта WebService, который необходимо извлечь.

Комментарии

В следующем примере показан рекомендуемый шаблон развертывания, в котором сначала создается объект конфигурации с методом deploy_configuration дочернего класса WebService (в данном случае AksWebservice), а затем используется конфигурация с методом deploy класса Model.


   # Set the web service configuration (using default here)
   aks_config = AksWebservice.deploy_configuration()

   # # Enable token auth and disable (key) auth on the webservice
   # aks_config = AksWebservice.deploy_configuration(token_auth_enabled=True, auth_enabled=False)

Полный пример можно найти по адресу: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.ipynb

В следующем примере показано, как найти существующий объект AciWebservice в рабочей области и удалить его, чтобы имя можно было использовать повторно.


   from azureml.core.model import InferenceConfig
   from azureml.core.webservice import AciWebservice


   service_name = 'my-custom-env-service'

   inference_config = InferenceConfig(entry_script='score.py', environment=environment)
   aci_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1)

   service = Model.deploy(workspace=ws,
                          name=service_name,
                          models=[model],
                          inference_config=inference_config,
                          deployment_config=aci_config,
                          overwrite=True)
   service.wait_for_deployment(show_output=True)

Существует несколько способов развернуть модель в качестве веб-службы:

  • Метод deploy класса Model для моделей, уже зарегистрированных в рабочей области.

  • Метод deploy_from_image класса Webservice для образов, уже созданных на основе модели.

  • Метод deploy_from_model класса Webservice для моделей, уже зарегистрированных в рабочей области. Этот метод создаст образ.

  • Метод deploy класса Webservice, который будет регистрировать модель и создавать образ.

См. сведения о работе с объектами WebService:

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

Переменные

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

Включение проверки подлинности для объекта WebService.

compute_type
str

Тип вычислений, в котором развернут объект WebService.

created_time

Время создания объекта WebService.

azureml.core.Webservice.description

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

azureml.core.Webservice.tags

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

azureml.core.Webservice.name

Имя объекта WebService.

azureml.core.Webservice.properties

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

created_by
str

Пользователь, создавший объект WebService.

error
str

Если не удалось развернуть объект WebService, в нем будет содержаться сообщение об ошибке с причиной сбоя.

azureml.core.Webservice.state

Текущее состояние объекта WebService.

updated_time

Время последнего обновления объекта WebService.

azureml.core.Webservice.workspace

Рабочая область Машинного обучения Azure, содержащая этот объект WebService.

token_auth_enabled

Включение для объекта WebService проверки подлинности с использованием маркера.

Методы

check_for_existing_webservice

Проверка существования службы.

delete

Удалите этот объект WebService из связанной рабочей области.

Этот вызов функции не является асинхронным. Вызов выполняется до тех пор, пока ресурс не будет удален. Если возникла проблема при удалении модели из службы Управления моделями, выдается WebserviceException.

deploy

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

Эта функция регистрирует все предоставленные файлы моделей и создает в процессе образ, связанный с указанным Workspace. Используйте эту функцию, если у вас есть каталог моделей для развертывания, которые не были ранее зарегистрированы.

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

deploy_from_image

Развертывание WebService из объекта Image.

Используйте эту функцию, если для модели уже создан объект Image.

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

deploy_from_model

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

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

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

deploy_local_from_model

Сборка и развертывание LocalWebservice для тестирования.

Требуется установка и настройка Docker.

deserialize

Преобразование объекта JSON ответа службы Управления моделями в объект WebService.

Метод завершается ошибкой, если указанная рабочая область не является рабочей областью, в которой зарегистрирован объект WebService.

get_keys

Получение ключей проверки подлинности для этого объекта WebService.

get_logs

Получение журналов для этого объекта WebService.

get_token

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

list

Перечисление объектов WebService, связанных с соответствующим Workspace.

Возвращаемые результаты можно фильтровать с помощью параметров.

regen_key

Повторное создание одного из ключей объекта WebService: Primary или Secondary.

Если key не указан или не является Primary или Secondary, выдается WebserviceException.

run

Вызов этого объекта WebService с помощью предоставленных входных данных.

Абстрактный метод реализуется дочерними классами Webservice.

serialize

Преобразование этого объекта WebService в сериализованный словарь JSON.

Используйте deserialize для преобразования обратно в объект WebService.

update

Обновление параметров WebService.

Этот абстрактный метод реализуется дочерними классами Webservice. Возможные параметры для обновления зависят от дочернего типа WebService. Например, конкретные параметры для Экземпляров контейнеров Azure см. в разделе update.

update_deployment_state

Обновление текущего состояния объекта в памяти.

Обновление свойств объекта на месте на основе текущего состояния соответствующего облачного объекта. Это полезно в первую очередь при опросе состояния создания вручную.

wait_for_deployment

Автоматический опрос выполняющегося развертывания WebService.

Дождитесь, пока WebService достигнет конечного состояния. Будет выдано исключение WebserviceException, если объект достигнет неуспешного конечного состояния или превысит указанное время ожидания.

check_for_existing_webservice

Проверка существования службы.

static check_for_existing_webservice(workspace, name, overwrite=False, request_func=None, check_func=None)

Параметры

Имя Описание
workspace
Обязательно
name
Обязательно
str
overwrite
Default value: False
request_func
<xref:function>

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

Default value: None
check_func
<xref:function>

Функция для проверки содержимого ответа request_func

Default value: None

Исключения

Тип Описание

delete

Удалите этот объект WebService из связанной рабочей области.

Этот вызов функции не является асинхронным. Вызов выполняется до тех пор, пока ресурс не будет удален. Если возникла проблема при удалении модели из службы Управления моделями, выдается WebserviceException.

delete()

Исключения

Тип Описание

deploy

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

Эта функция регистрирует все предоставленные файлы моделей и создает в процессе образ, связанный с указанным Workspace. Используйте эту функцию, если у вас есть каталог моделей для развертывания, которые не были ранее зарегистрированы.

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

static deploy(workspace, name, model_paths, image_config, deployment_config=None, deployment_target=None, overwrite=False)

Параметры

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

Объект Workspace для связывания с WebService.

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

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

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

Список путей к файлам модели или папке на диске. Может быть пустым списком.

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

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

deployment_config

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

Default value: None
deployment_target

ComputeTarget, где будет развернута веб-служба. Так как с Экземплярами контейнеров Azure не связан объект ComputeTarget, оставьте для этого параметра значение None (Нет) для развертывания в Экземплярах контейнеров Azure.

Default value: None
overwrite

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

Default value: False

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

Тип Описание

Объект веб-службы, соответствующий развернутой веб-службе.

Исключения

Тип Описание

deploy_from_image

Развертывание WebService из объекта Image.

Используйте эту функцию, если для модели уже создан объект Image.

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

static deploy_from_image(workspace, name, image, deployment_config=None, deployment_target=None, overwrite=False)

Параметры

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

Объект Workspace для связывания с WebService.

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

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

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

Объект Image, который необходимо развернуть.

deployment_config

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

Default value: None
deployment_target

ComputeTarget, где будет развернута веб-служба. Так как с Экземплярами контейнеров Azure не связан объект ComputeTarget, оставьте для этого параметра значение None (Нет) для развертывания в Экземплярах контейнеров Azure.

Default value: None
overwrite

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

Default value: False

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

Тип Описание

Объект веб-службы, соответствующий развернутой веб-службе.

Исключения

Тип Описание

deploy_from_model

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

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

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

static deploy_from_model(workspace, name, models, image_config, deployment_config=None, deployment_target=None, overwrite=False)

Параметры

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

Объект Workspace для связывания с WebService.

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

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

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

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

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

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

deployment_config

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

Default value: None
deployment_target

ComputeTarget, где будет развернута веб-служба. Так как у ACI нет связанного ComputeTarget, оставьте для этого параметра значение None, чтобы выполнить развертывание в ACI.

Default value: None
overwrite

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

Default value: False

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

Тип Описание

Объект веб-службы, соответствующий развернутой веб-службе.

Исключения

Тип Описание

deploy_local_from_model

Сборка и развертывание LocalWebservice для тестирования.

Требуется установка и настройка Docker.

static deploy_local_from_model(workspace, name, models, image_config, deployment_config=None, wait=False)

Параметры

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

Объект Workspace, с которым связывается WebService.

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

Имя для предоставления развернутой службы. Должно быть уникальным на локальном компьютере.

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

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

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

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

deployment_config

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

Default value: None
wait

Следует ли ожидать, пока контейнер Docker объекта LocalWebservice получит состояние работоспособности. Создает исключение, если контейнер аварийно завершает работу. Значение по умолчанию — False.

Default value: False

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

Тип Описание

Исключения

Тип Описание

deserialize

Преобразование объекта JSON ответа службы Управления моделями в объект WebService.

Метод завершается ошибкой, если указанная рабочая область не является рабочей областью, в которой зарегистрирован объект WebService.

deserialize(workspace, webservice_payload)

Параметры

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

Указывает, что это метод класса.

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

Объект рабочей области, в котором зарегистрирован объект WebService.

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

Объект JSON для преобразования в объект WebService.

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

Тип Описание

Представление указанного объекта JSON как объекта WebService.

Исключения

Тип Описание

get_keys

Получение ключей проверки подлинности для этого объекта WebService.

get_keys()

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

Тип Описание
(str, str)

Ключи проверки подлинности для этого объекта WebService.

Исключения

Тип Описание

get_logs

Получение журналов для этого объекта WebService.

get_logs(num_lines=5000, init=False)

Параметры

Имя Описание
num_lines
int

Максимальное число извлекаемых строк журнала.

Default value: 5000
init

Получение журналов контейнера

Default value: False

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

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

Журналы для этого объекта WebService.

Исключения

Тип Описание

get_token

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

get_token()

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

Тип Описание

Маркер проверки подлинности для этого объекта WebService и время его последующего обновления.

Исключения

Тип Описание

list

Перечисление объектов WebService, связанных с соответствующим Workspace.

Возвращаемые результаты можно фильтровать с помощью параметров.

static list(workspace, compute_type=None, image_name=None, image_id=None, model_name=None, model_id=None, tags=None, properties=None, image_digest=None)

Параметры

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

Объект Workspace для перечисления объектов WebService.

compute_type
str

Применение фильтра для отображения списка только конкретных типов WebService. Возможные значения: ACI, AKS.

Default value: None
image_name
str

Фильтрация списка для включения только тех объектов WebService, которые были развернуты с использованием указанного имени образа.

Default value: None
image_id
str

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

Default value: None
model_name
str

Фильтрация списка для включения только тех объектов WebService, которые были развернуты с использованием указанного имени модели.

Default value: None
model_id
str

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

Default value: None
tags

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

Default value: None
properties

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

Default value: None
image_digest
str

Фильтрация списка для включения только тех объектов WebService, которые были развернуты с использованием указанного хэша образа.

Default value: None

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

Тип Описание

Отфильтрованный список WebService в указанном объекте Workspace.

Исключения

Тип Описание

regen_key

Повторное создание одного из ключей объекта WebService: Primary или Secondary.

Если key не указан или не является Primary или Secondary, выдается WebserviceException.

regen_key(key, set_key=None)

Параметры

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

Ключ для повторного создания. Возможные варианты: Primary или Secondary.

set_key
str

Заданное пользователем значение, допускающее указание значения ключа вручную.

Default value: None

Исключения

Тип Описание

run

Вызов этого объекта WebService с помощью предоставленных входных данных.

Абстрактный метод реализуется дочерними классами Webservice.

abstract run(input)

Параметры

Имя Описание
input
Обязательно
<xref:varies>

Входные данные для вызова объекта WebService. Это данные, которые модель машинного обучения планирует использовать в качестве входных данных для выполнения прогнозов.

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

Тип Описание

Результат вызова объекта WebService. Это приведет к возврату прогнозов, выполненных в модели машинного обучения.

Исключения

Тип Описание

serialize

Преобразование этого объекта WebService в сериализованный словарь JSON.

Используйте deserialize для преобразования обратно в объект WebService.

serialize()

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

Тип Описание

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

Исключения

Тип Описание

update

Обновление параметров WebService.

Этот абстрактный метод реализуется дочерними классами Webservice. Возможные параметры для обновления зависят от дочернего типа WebService. Например, конкретные параметры для Экземпляров контейнеров Azure см. в разделе update.

abstract update(*args)

Параметры

Имя Описание
args
Обязательно
<xref:varies>

Значения, которые необходимо обновить.

Исключения

Тип Описание

update_deployment_state

Обновление текущего состояния объекта в памяти.

Обновление свойств объекта на месте на основе текущего состояния соответствующего облачного объекта. Это полезно в первую очередь при опросе состояния создания вручную.

update_deployment_state()

Исключения

Тип Описание

wait_for_deployment

Автоматический опрос выполняющегося развертывания WebService.

Дождитесь, пока WebService достигнет конечного состояния. Будет выдано исключение WebserviceException, если объект достигнет неуспешного конечного состояния или превысит указанное время ожидания.

wait_for_deployment(show_output=False, timeout_sec=None)

Параметры

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

Указывает, следует ли отображать более подробные выходные данные.

Default value: False
timeout_sec

Создание исключения, если развертывание превышает заданное время ожидания.

Default value: None

Исключения

Тип Описание