本文介绍如何在 模型服务 或 功能服务 终结点上启用路由优化。 路由优化的服务终结点可大幅降低开销延迟,并大幅提升终结点支持的吞吐量。
路由优化的终结点与非路由优化终结点的查询方式不同,包括使用不同的 URL 并使用 OAuth 令牌进行身份验证。 有关详细信息,请参阅 查询经过路由优化的服务端点 。
什么是路由优化?
在终结点上启用路由优化时,Databricks 模型服务改进了推理请求的网络路径,从而加快客户端和模型之间的直接通信速度。 与非优化终结点相比,这种优化的路由可解锁更高的每秒查询数(QPS),并为应用程序提供更稳定且更低的延迟。
要求
- 模型 服务终结点 的路由优化要求与 非路由优化模型提供终结点的要求相同。
- 功能服务终结点上的路由优化与非路由优化功能服务终结点的要求相同。
在模型服务终结点上启用路由优化
服务 UI
使用 服务 UI 创建模型服务终结点时,可以启用路由优化。 只能在创建终结点期间启用路由优化,不能更新现有终结点以优化路由。
- 在边栏中,单击“ 服务 ”以显示服务 UI。
- 单击“ 创建服务终结点”。
- 在“ 路由优化 ”部分中,选择“ 启用路由优化”。
- 创建终结点后,Databricks 会向你发送有关查询路由优化终结点所需的通知。
REST API
若要使用 REST API 配置服务终结点以优化路由,请在创建模型时指定 route_optimized 参数。 只能在终结点创建期间指定此参数,不能通过更新现有终结点来实现路由优化。
POST /api/2.0/serving-endpoints
{
"name": "my-endpoint",
"config":
{
"served_entities":
[{
"entity_name": "ads1",
"entity_version": "1",
"workload_type": "CPU",
"workload_size": "Small",
"scale_to_zero_enabled": true,
}],
},
"route_optimized": true
}
Python
如果使用 Python,则可以使用以下笔记本来创建路由优化的服务终结点。
使用 Python 笔记本创建路由优化的服务终结点
Databricks SDK
若要使用 Databricks SDK 配置服务终结点以优化路由,请在创建模型服务终结点期间指定 route_optimized 参数。 只能在终结点创建期间指定此参数,不能通过更新现有终结点来实现路由优化。
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import EndpointCoreConfigInput, ServedEntityInput
workspace = WorkspaceClient()
workspace.serving_endpoints.create(
name="my-serving-endpoint",
config = EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name="main.default.my-served-entity",
scale_to_zero_enabled=True,
workload_size="Small"
)
]
),
route_optimized=True
)
在特征服务终结点上启用路由优化
若要为特征和功能服务使用路由优化,请在 entity_name 字段中指定用于服务终结点创建请求的特征规范的完整名称。
entity_version 不需要 FeatureSpecs。
POST /api/2.0/serving-endpoints
{
"name": "my-endpoint",
"config":
{
"served_entities":
[
{
"entity_name": "catalog_name.schema_name.feature_spec_name",
"workload_type": "CPU",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
]
},
"route_optimized": true
}
限制
- 路由优化仅适用于自定义的模型服务终结点和特征服务终结点。 不支持使用 基础模型 API 或 外部模型 的终结点。
- Databricks 内部 OAuth 令牌是对路由优化唯一支持的身份验证。 不支持个人访问令牌。