Класс MLServer
MLServer
azureml.deploy.server.MLServer
Базовый класс: azureml.deploy.operationalization.Operationalization
Этот модуль предоставляет реализацию службы для ML Server.
проверка подлинности
authentication(context)
Примечание.
Хотя идентификатор Microsoft Entra — это новое имя Azure Active Directory (Azure AD), чтобы предотвратить нарушение существующих сред, Azure AD по-прежнему остается в некоторых жестко закодированных элементах, таких как поля пользовательского интерфейса, поставщики подключений, коды ошибок и командлеты. В этой статье два имени являются взаимозаменяемыми.
Переопределение
Метод жизненного цикла проверки подлинности, вызываемый платформой. Вызывает точку входа проверки подлинности для иерархии классов.
ML Server поддерживает две формы контекстов проверки подлинности:
LDAP: кортеж (имя пользователя, пароль)
Azure Active Directory (AAD): словарь {…}
access-token: строка =4534535
Аргументы
контекстные
Контекст проверки подлинности: LDAP, Azure Active Directory (AAD) или существующая строка access-token.
HttpException
Если при вызове ML Server произошел сбой HTTP.
create_or_update_service_pool
create_or_update_service_pool(name, version, initial_pool_size, max_pool_size, **opts)
Создает или обновляет пул для опубликованной веб-службы с заданными начальным и максимальным размером пула в ML Server по имени (name) и версии (version).
Пример:
>>> client.create_or_update_service_pool(
'regression',
version = 'v1.0.0',
initial_pool_size = 1,
maximum_pool_size = 10)
<Response [200]>
>>>
Аргументы
name
Уникальное имя веб-службы.
версия
Версия веб-службы.
initial_pool_size
Исходный размер пула для веб-службы.
max_pool_size
Максимальный размер пула для веб-службы. Не может быть меньше значения initial_pool_size.
Возвраты
requests.models.Response: статус HTTP, указывающий, успешно ли отправлен запрос.
HttpException
Если при вызове ML Server произошел сбой HTTP.
delete_service
delete_service(name, **opts)
удалить веб-службу;
success = client.delete_service('example', version='v1.0.1')
print(success)
True
Аргументы
name
Имя веб-службы.
opts
Версия веб-службы (version='v1.0.1).
Возвраты
Значение типа bool
, указывающее, успешно ли была удалена служба.
HttpException
Если при вызове ML Server произошел сбой HTTP.
delete_service_pool
delete_service_pool(name, version, **opts)
Удаление пула для опубликованной веб-службы на ML Server по имени (name) и версии (version).
Пример:
>>> client.delete_service_pool('regression', version = 'v1.0.0')
<Response [200]>
>>>
Аргументы
name
Уникальное имя веб-службы.
версия
Версия веб-службы.
Возвраты
requests.models.Response: статус HTTP, если пул был удален для службы.
HttpException
Если при вызове ML Server произошел сбой HTTP.
deploy_realtime
deploy_realtime(name, **opts)
Публикация новой веб-службы, работающей в реальном времени, в ML Server по имени (name) и версии (version).
Все типы входных и выходных данных определяются как pandas.DataFrame
.
Пример:
model = rx_serialize_model(model, realtime_scoring_only=True)
opts = {
'version': 'v1.0.0',
'description': 'Real-time service description.',
'serialized_model': model
}
service = client.deploy_realtime('scoring', **opts)
df = movie_reviews.as_df()
res = service.consume(df)
answer = res.outputs
Примечание.
Использование deploy_realtime() таким образом идентично публикации службы с помощью текучих API deploy()
Аргументы
name
Имя веб-службы.
opts
Свойства службы, которые нужно опубликовать, в виде dict
. opts поддерживает следующие необязательные свойства:
version (строка) — определяет уникальную буквенно-цифровую версию веб-службы. Если значение версии не задано, на ее месте создается уникальный идентификатор guid. Полезно во время разработки службы до того, как автор будет готов официально публиковать семантическую версию для общего использования.
description (строка) — описание службы.
alias (строка) — название функции использования. Значение по умолчанию: consume.
Возвраты
Новый экземпляр Service
, который представляет повторно развернутую службу, работающую в реальном времени.
HttpException
Если при вызове ML Server произошел сбой HTTP.
deploy_service
deploy_service(name, **opts)
Публикация новой веб-службы в ML Server по имени (name) и версии (version).
Пример:
opts = {
'version': 'v1.0.0',
'description': 'Service description.',
'code_fn': run,
'init_fn': init,
'objects': {'local_obj': 50},
'models': {'model': 100},
'inputs': {'x': int},
'outputs': {'answer': float},
'artifacts': ['histogram.png'],
'alias': 'consume_service_fn_alias'
}
service = client.deploy('regression', **opts)
res = service.consume_service_fn_alias(100)
answer = res.output('answer')
histogram = res.artifact('histogram.png')
Примечание.
Использование deploy_service()
таким образом идентично публикации службы с помощью текучих API deploy()
.
Аргументы
name
Уникальное имя веб-службы.
opts
Свойства службы, которые нужно опубликовать. Словарь opts поддерживает следующие необязательные свойства:
version (строка) — определяет уникальную буквенно-цифровую версию веб-службы. Если значение версии не задано, на ее месте создается уникальный идентификатор guid. Полезно во время разработки службы до того, как автор будет готов официально публиковать семантическую версию для общего использования.
description (строка) — описание службы.
code_str (строка) — блок кода Python, который нужно выполнить и вычислить.
init_str (строка) — блок кода Python для инициализации службы.
code_fn (функция) — функция, которую нужно выполнить и вычислить.
init_fn (функция) — функция для инициализации службы.
objects (словарь) — имя и значение включаемых объектов.
models (словарь) — имя и значение включаемых моделей.
inputs (словарь) — схема входных данных службы по имени (name) и типу (type). Поддерживаются такие типы:
INT
с плавающей запятой
str
bool
numpy.array
numpy.matrix
pandas.DataFrame
outputs (словарь) — определяет схему выходных данных веб-службы. Если значение не задано, служба не вернет значение ответа. outputs определяется в виде словаря
{'x'=int}
или{'x': 'int'}
, который описывает имена выходных параметров и их соответствующие типы данных. Поддерживаются такие типы:INT
с плавающей запятой
str
bool
numpy.array
numpy.matrix
pandas.DataFrame
artifacts (список) — коллекция возвращаемых артефактов файлов. Содержимое файлов закодировано как строка Base64.
alias (строка) — название функции использования. Значение по умолчанию: consume. Если указана функция code_fn, будет использоваться имя этой функции по умолчанию.
Возвраты
Новый экземпляр Service
, представляющий развернутую службу.
HttpException
Если при вызове ML Server произошел сбой HTTP.
Деструктор
destructor()
Переопределение
Метод уничтожения жизненного цикла, вызываемый платформой. Вызывает деструкторы для иерархии классов.
get_service
get_service(name, **opts)
Получение веб-службы для использования.
service = client.get_service('example', version='v1.0.1')
print(service)
<ExampleService>
...
...
...
Аргументы
name
Имя веб-службы.
opts
Необязательная версия веб-службы. При значении version=None
будет возвращена самая последняя служба.
Возвраты
Новый экземпляр Service
.
HttpException
Если при вызове ML Server произошел сбой HTTP.
get_service_pool_status
get_service_pool_status(name, version, **opts)
Получение сведений о состоянии пула на каждом вычислительном узле ML Server для опубликованных служб с указанными именем (name) и версией (version).
Пример:
>>> client.create_or_update_service_pool(
'regression',
version = 'v1.0.0',
initial_pool_size = 5,
maximum_pool_size = 5)
<Response [200]>
>>> client.get_service_pool_status('regression', version = 'v1.0.0')
[{'computeNodeEndpoint': 'http://localhost:12805/', 'status': 'Pending'}]
>>> client.get_service_pool_status('regression', version = 'v1.0.0')
[{'computeNodeEndpoint': 'http://localhost:12805/', 'status': 'Success'}]
Аргументы
name
Уникальное имя веб-службы.
версия
Версия веб-службы.
Возвраты
Строка: код JSON, представляющий состояние пула на каждом вычислительном узле для развернутой службы.
HttpException
Если при вызове ML Server произошел сбой HTTP.
initializer(http_client, config, adapters=None)
Переопределение
Вызов метода инициализации жизненного цикла во время создания. Настраивает атрибуты и вызывает инициализаторы для иерархии классов.
Аргументы
http_client
Сеанс HTTP-запроса для управления и сохранения параметров в запросах (проверка подлинности, прокси-серверы).
config
Глобальная конфигурация.
Адаптеры
Объект dict
с транспортными адаптерами по URL-адресу.
list_services
list_services(name=None, **opts)
Перечисление разных опубликованных веб-служб в ML Server.
При желании можно указать имя (name) и версию (version) службы. Этот вызов позволяет получить сведения о службе, касающиеся:
всех опубликованных служб;
всех служб с управлением версиями для определенной именованной службы;
определенную версию для именованной службы.
Пользователи могут использовать эти сведения вместе с операцией [get_service()](#getservice)
для взаимодействия с веб-службой и ее использования.
Пример:
all_services = client.list_services()
all_versions_of_add_service = client.list_services('add-service')
add_service_v1 = client.list_services('add-service', version='v1')
Аргументы
name
Имя веб-службы.
opts
Необязательная версия веб-службы.
Возвраты
Список (list
) с метаданными службы.
HttpException
Если при вызове ML Server произошел сбой HTTP.
realtime_service
realtime_service(name)
Приступите к созданию цепочек свойств текучего API для определения веб-службы, работающей в реальном времени.
Пример:
client.realtime_service('scoring')
.description('A new real-time web service')
.version('v1.0.0')
Аргументы
name
Имя веб-службы.
Возвраты
Экземпляр RealtimeDefinition
для цепочки текучего API.
redeploy_realtime
redeploy_realtime(name, **opts)
Обновляет свойства существующей веб-службы, работающей в реальном времени, в ML Server по имени (name) и версии (version). При значении version=None
будет обновлена самая последняя служба.
Все типы входных и выходных данных определяются как pandas.DataFrame
.
Пример:
model = rx_serialize_model(model, realtime_scoring_only=True)
opts = {
'version': 'v1.0.0',
'description': 'Real-time service description.',
'serialized_model': model
}
service = client.redeploy_realtime('scoring', **opts)
df = movie_reviews.as_df()
res = service.consume(df)
answer = res.outputs
Примечание.
Использование redeploy_realtime() таким образом идентично обновлению службы с помощью текучих API redeploy()
Аргументы
name
Имя веб-службы.
opts
Свойства службы которые нужно обновить, в виде dict
. opts поддерживает следующие необязательные свойства:
version (строка) — определяет версию веб-службы.
description (строка) — описание службы.
alias (строка) — название функции использования. Значение по умолчанию: consume.
Возвраты
Новый экземпляр Service
, который представляет повторно развернутую службу, работающую в реальном времени.
HttpException
Если при вызове ML Server произошел сбой HTTP.
redeploy_service
redeploy_service(name, **opts)
Обновляет свойства существующей веб-службы в ML Server по имени (name) и версии (version). При значении version=None
будет обновлена самая последняя служба.
Пример:
opts = {
'version': 'v1.0.0',
'description': 'Service description.',
'code_fn': run,
'init_fn': init,
'objects': {'local_obj': 50},
'models': {'model': 100},
'inputs': {'x': int},
'outputs': {'answer': float},
'artifacts': ['histogram.png'],
'alias': 'consume_service_fn_alias'
}
service = client.redeploy('regression', **opts)
res = service.consume_service_fn_alias(100)
answer = res.output('answer')
histogram = res.artifact('histogram.png')
Примечание.
Использование redeploy_service() таким образом идентично обновлению службы с помощью текучих API redeploy()
Аргументы
name
Имя веб-службы.
opts
Свойства службы которые нужно обновить, в виде dict
. opts поддерживает следующие необязательные свойства:
version (строка) — определяет уникальную буквенно-цифровую версию веб-службы. Если значение версии не задано, на ее месте создается уникальный идентификатор guid. Полезно во время разработки службы до того, как автор будет готов официально публиковать семантическую версию для общего использования.
description (строка) — описание службы.
code_str (строка) — блок кода Python, который нужно выполнить и вычислить.
init_str (строка) — блок кода Python для инициализации службы.
code_fn (функция) — функция, которую нужно выполнить и вычислить.
init_fn (функция) — функция для инициализации службы.
objects (словарь) — имя и значение включаемых объектов.
models (словарь) — имя и значение включаемых моделей.
inputs (словарь) — схема входных данных службы по имени (name) и типу (type). Поддерживаются следующие типы: int, float, str, bool, numpy.array, numpy.matrix, pandas.DataFrame.
outputs (словарь) — определяет схему выходных данных веб-службы. Если значение не задано, служба не вернет значение ответа. outputs определяется в виде словаря
{'x'=int}
или{'x': 'int'}
, который описывает имена выходных параметров и их соответствующие типы данных. Поддерживаются следующие типы: int, float, str, bool, numpy.array, numpy.matrix, pandas.DataFrame.artifacts (список) — коллекция возвращаемых артефактов файлов. Содержимое файлов закодировано как строка Base64.
alias (строка) — название функции использования. Значение по умолчанию: consume. Если указана функция code_fn, будет использоваться имя этой функции по умолчанию.
Возвраты
Новый экземпляр Service
, представляющий развернутую службу.
HttpException
Если при вызове ML Server произошел сбой HTTP.
service
service(name)
Приступите к созданию цепочек свойств текучего API для определения стандартной веб-службы.
Пример:
client.service('scoring')
.description('A new web service')
.version('v1.0.0')
Аргументы
name
Имя веб-службы.
Возвраты
Экземпляр ServiceDefinition
для цепочки текучего API.