类 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.DataFrameartifacts (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
实例。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈