类 MLServer

MLServer

azureml.deploy.server.MLServer

基项:azureml.deploy.operationalization.Operationalization

此模块提供 ML Server 的服务实现。

authentication

authentication(context)

注意

虽然 Microsoft Entra ID 是 Azure Active Directory (Azure AD) 的新名称,但为了防止中断现有环境,Azure AD 仍保留在一些硬编码的元素中,例如 UI 字段、连接提供程序、错误代码和 cmdlet。 在本文中,这两个名称可以互换。

替代

框架调用的身份验证生命周期方法。 调用类层次结构的身份验证入口点。

ML Server 支持两种形式的身份验证上下文:

  • LDAP:tuple (username, password)

  • Azure Active Directory (AAD):dict {…}

  • 访问令牌:str =4534535

参数

上下文

身份验证上下文:LDAP、Azure Active Directory (AAD) 或现有的访问令牌字符串。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

create_or_update_service_pool

 create_or_update_service_pool(name, version, initial_pool_size, max_pool_size, **opts)

为已发布的 Web 服务创建或更新池,并在 ML Server 上按名称和版本指定初始和最大池大小。

示例:

>>> client.create_or_update_service_pool(
        'regression',
        version = 'v1.0.0',
        initial_pool_size = 1,
        maximum_pool_size = 10)
<Response [200]>
>>>

参数

name

唯一的 Web 服务名称。

version

Web 服务版本。

initial_pool_size

Web 服务的初始池大小。

max_pool_size

Web 服务的最大池大小。 此值不能小于 initial_pool_size。

返回

requests.models.Response:HTTP 状态,指示请求是否已成功提交。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

delete_service

delete_service(name, **opts)

删除 Web 服务。

success = client.delete_service('example', version='v1.0.1')
print(success)
True

参数

name

Web 服务名称。

opts

Web 服务版本 (version='v1.0.1)。

返回

一个 bool,指示已成功删除服务。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

delete_service_pool

delete_service_pool(name, version, **opts)

按名称和版本删除 ML Server 上已发布 Web 服务的池。

示例:

>>> client.delete_service_pool('regression', version = 'v1.0.0')
<Response [200]>
>>>

参数

name

唯一的 Web 服务名称。

version

Web 服务版本。

返回

requests.models.Response:HTTP 状态(如果为服务删除了池)。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

deploy_realtime

deploy_realtime(name, **opts)

按名称和版本在 ML Server 上发布新的实时 Web 服务。

所有输入和输出类型都定义为 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() 等同于使用 Fluent API deploy() 发布服务

参数

name

Web 服务名称。

opts

要发布为 dict 的服务属性。 opts 支持以下可选属性:

  • version (str) - 定义唯一的字母数字 Web 服务版本。 如果 version 保留为空白,则在其位置生成唯一 guid。 在作者准备正式发布要共享的语义版本之前,在服务开发过程中非常有用。

  • description (str) - 服务说明。

  • alias (str) - 使用函数名称。 默认为 consume。

返回

一个表示重新部署的实时服务的 Service 的新实例。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

deploy_service

deploy_service(name, **opts)

按名称和版本在 ML Server 上发布新的 Web 服务。

示例:

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() 等同于使用 Fluent API deploy() 发布服务。

参数

name

唯一的 Web 服务名称。

opts

要发布的服务属性。 opts dict 支持以下可选属性:

  • version (str) - 定义唯一的字母数字 Web 服务版本。 如果 version 保留为空白,则在其位置生成唯一 guid。 在作者准备正式发布要共享的语义版本之前,在服务开发过程中非常有用。

  • description (str) - 服务说明。

  • code_str (str) - 要运行和评估的 Python 代码块。

  • init_str (str) - 用于初始化服务的 Python 代码块。

  • code_fn (function) - 要运行和评估的函数。

  • init_fn (function) - 用于初始化服务的函数。

  • objects (dict) - 要包含的对象的名称和值。

  • models (dict) - 要包含的模型的名称和值。

  • inputs (dict) - 按名称和类型的服务输入架构。 支持以下类型:

    • int

    • FLOAT

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • pandas.DataFrame

  • outputs (dict) - 定义 Web 服务输出架构。 如果为空,则服务不会返回响应值。 outputs 定义为字典 {'x'=int}{'x': 'int'},用于描述输出参数名称及其对应的数据类型。 支持以下类型:

    • int

    • FLOAT

    • str

    • bool

    • numpy.array

    • numpy.matrix

    • pandas.DataFrame

  • artifacts (list) - 要返回的文件项目的集合。 文件内容编码为 Base64 字符串。

  • alias (str) - 使用函数名称。 默认为 consume。 如果提供 code_fn 函数,将默认使用该函数名称。

返回

一个表示部署的服务的 Service 的新实例。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

析构函数

destructor()

替代

框架调用的销毁生命周期方法。 调用类层次结构的析构函数。

get_service

get_service(name, **opts)

获取 Web 服务供使用。

service = client.get_service('example', version='v1.0.1')
print(service)
<ExampleService>
   ...
   ...
   ...

参数

name

Web 服务名称。

opts

可选的 Web 服务版本。 如果 version=None,将返回最新服务。

返回

Service 的新实例。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

get_service_pool_status

get_service_pool_status(name, version, **opts)

使用提供的名称和版本获取已发布服务的 ML Server 的每个计算节点上的池状态。

示例:

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

唯一的 Web 服务名称。

version

Web 服务版本。

返回

str: json,表示已部署服务的每个计算节点上的池状态。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

initializer(http_client, config, adapters=None)

替代

框架调用的 Init 生命周期方法,在构造期间调用。 设置属性并调用类层次结构的初始化表达式。

参数

http_client

http 请求会话,用于跨请求(身份验证、代理)管理和保留设置。

config

全局配置。

适配器

按 URL 的传输适配器的 dict

list_services

list_services(name=None, **opts)

列出 ML Server 上发布的不同 Web 服务。

服务名称和服务版本是可选项。 通过此调用,可以检索有关以下方面的服务信息:

  • 已发布的所有服务

  • 特定命名服务的所有版本控制服务

  • 命名服务的特定版本

用户可以将此信息与 [get_service()](#getservice) 操作一起用于使用 Web 服务和与之交互。

示例:

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

Web 服务名称。

opts

可选的 Web 服务版本。

返回

服务元数据的 list

HttpException

如果调用 ML Server 时发生 HTTP 错误。

realtime_service

realtime_service(name)

开始对属性进行 Fluent API 链接,以定义实时 Web 服务。

示例:

client.realtime_service('scoring')
   .description('A new real-time web service')
   .version('v1.0.0')

参数

name

Web 服务名称。

返回

Fluent API 链接的 RealtimeDefinition 实例。

redeploy_realtime

redeploy_realtime(name, **opts)

按名称和版本在 Server 上更新现有实时 Web 服务的属性。 如果 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() 等同于使用 Fluent API redeploy() 更新服务

参数

name

Web 服务名称。

opts

要更新为 dict 的服务属性。 opts 支持以下可选属性:

  • version (str) - 定义 Web 服务版本。

  • description (str) - 服务说明。

  • alias (str) - 使用函数名称。 默认为 consume。

返回

一个表示重新部署的实时服务的 Service 的新实例。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

redeploy_service

redeploy_service(name, **opts)

按名称和版本在 ML Server 上更新现有 Web 服务的属性。 如果 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() 等同于使用 Fluent API redeploy() 更新服务

参数

name

Web 服务名称。

opts

要更新为 dict 的服务属性。 opts 支持以下可选属性:

  • version (str) - 定义唯一的字母数字 Web 服务版本。 如果 version 保留为空白,则在其位置生成唯一 guid。 在作者准备正式发布要共享的语义版本之前,在服务开发过程中非常有用。

  • description (str) - 服务说明。

  • code_str (str) - 要运行和评估的 Python 代码块。

  • init_str (str) - 用于初始化服务的 Python 代码块。

  • code_fn (function) - 要运行和评估的函数。

  • init_fn (function) - 用于初始化服务的函数。

  • objects (dict) - 要包含的对象的名称和值。

  • models (dict) - 要包含的模型的名称和值。

  • inputs (dict) - 按名称和类型的服务输入架构。 支持以下类型:- int - float - str - bool - numpy.array - numpy.matrix - pandas.DataFrame

  • outputs (dict) - 定义 Web 服务输出架构。 如果为空,则服务不会返回响应值。 outputs 定义为字典 {'x'=int}{'x': 'int'},用于描述输出参数名称及其对应的数据类型。 支持以下类型:- int - float - str - bool - numpy.array - numpy.matrix - pandas.DataFrame

  • artifacts (list) - 要返回的文件项目的集合。 文件内容编码为 Base64 字符串。

  • alias (str) - 使用函数名称。 默认为 consume。 如果提供 code_fn 函数,将默认使用该函数名称。

返回

一个表示部署的服务的 Service 的新实例。

HttpException

如果调用 ML Server 时发生 HTTP 错误。

服务

service(name)

开始对属性进行 Fluent API 链接,以定义标准 Web 服务。

示例:

client.service('scoring')
   .description('A new web service')
   .version('v1.0.0')

参数

name

Web 服务名称。

返回

Fluent API 链接的 ServiceDefinition 实例。