Бөлісу құралы:


Класс 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.