创建和管理Serverless实时推理端点
重要的
这个文档已经退休了,可能不会被更新。产品、服务或技术中提到的这些内容不再支持。
本文中的指导是模型的预览版本服务功能,以前Serverless实时推理。砖建议您迁移模型的工作流服务可用的一般功能。看到模型服务与砖。
预览
这个特性是在公共预览。
本文描述了如何创建和管理使用砖的端点Serverless实时推理。
重要的
API定义和工作流过程中如有变更,恕公共预览。
如果你依靠水蟒,审查服务条款请注意附加信息。
需求
Serverless实时推理只是用于面向MLflow MLflow模型中的模型注册注册表。你必须声明所有模型conda环境依赖性或要求文件。
如果你没有注册模式,看到笔记本的例子预包装模型可以使用设置和运行与Serverless实时推理端点。
必须启用您的工作区Serverless实时推理。使模型服务Serverless实时推理,你必须有集群创建权限。
如果你从一个私人使用自定义库或库镜像服务器与你的模型,看看使用自定义Python库模型在你创建模型端点。
创建一个模型服务端点
您可以创建Serverless实时推理模型服务的端点砖机器学习API或砖机器学习的UI。端点可以注册任何Python MLflow模型在模型中注册中心注册。
使用API
您可以使用启用服务API来创建一个服务端点模型。在接下来的例子中,ElasticNet
的名称注册模型。
文章https:// < databricks-instance > . . / api / 2.0 /预览/ mlflow / endpoints-v2 /启用{“registered_model_name”:“ElasticNet”}
使用用户界面
你让一个模型为其服务注册页面模型砖的机器学习的UI。
单击服务选项卡。如果模型是服务尚未启用,使Serverless实时推理按钮出现。
点击使Serverless实时推理。服务选项卡出现了状态显示为等待。几分钟后,状态更改好了。
修改计算配置的端点
使端点模型之后,您可以根据需要设置计算配置API或UI。这个配置是特别有用如果你需要额外的资源模型。工作负载大小和计算配置发挥关键作用的资源分配给您的模型。BOB低频彩了解更多关于WorkloadConfigSpec对象。
使用API
配置的状态更新可以跟踪config_update_status
场的端点版本状态。
把/预览/ model-serving-api / endpoints-v2 / update-compute-config
在下面,填充desired_workload_config_spec
与WorkloadConfigSpec
属性。
{“registered_model_name”:“ElasticNet”,“舞台”:“登台|生产”,“desired_workload_config_spec”:{“WorkloadConfigSpec”}}
评分模型端点
取得一个部署模型,你可以发送一个REST API请求URL或使用UI模型。
你应该叫一个模型通过调用API的阶段。例如,如果版本1的生产阶段,它可以使用这你的得分:
https:// < databricks-instance > / model-endpoint / iris-classifier /生产/调用
可用模型uri列表的顶部模型版本选项卡上的服务选项卡。
请求格式
请求应该被发送通过构造一个JSON与下面的一个键和一个JSON对象对应的输入格式。
有四个输入JSON格式取决于您的用例:
dataframe_split
json序列化熊猫Dataframe在吗分裂
取向。{“dataframe_split”:{“指数”:(0,1),“列”:(“花萼长度(厘米)”,“花萼宽(cm)”,“花瓣长度(厘米)”,“花瓣宽度(cm)”),“数据”:[[5.1,3.5,1.4,0.2),(4.9,3.0,1.4,0.2]]}}
dataframe_records
json序列化熊猫Dataframe在吗记录
取向。请注意
这种格式不能保证保存列排序,和
分裂
格式是首选的记录
格式。{“dataframe_records”:({“花萼长度(厘米)”:5.1,“花萼宽(cm)”:3.5,“花瓣长度(厘米)”:1.4,“花瓣宽度(cm)”:0.2},{“花萼长度(厘米)”:4.9,“花萼宽(cm)”:3,“花瓣长度(厘米)”:1.4,“花瓣宽度(cm)”:0.2},{“花萼长度(厘米)”:4.7,“花萼宽(cm)”:3.2,“花瓣长度(厘米)”:1.3,“花瓣宽度(cm)”:0.2}]}
实例
张量是一种tensors-based格式,接受行格式。使用此格式如果所有输入张量有相同的六月十维度。从概念上讲,每个实例列表中的张量可以与其他同名的张量列表的其余部分来构建完整的输入张量模型,这只会是可能的如果所有的张量有相同的六月十维度。{“实例”:(“一个”,“b”,“c”]}
或
在下面的例子中,有三个维度,具体每个输入三个张量。
{“实例”:({“t1”:“一个”,“t2”:(1,2,3,4,5),“t3”:[[1,2),(3,4),(5,6]]},{“t1”:“b”,“t2”:(6,7,8,9,10),“t3”:[[7,8),(9,10),(11,12]]}]}
输入
发送查询与张量柱状格式。这实际上要求是不同的,因为有一个不同数量的张量的实例t2
(3)比t1
和t3
,所以它代表的输入是不可能的实例
格式。{“输入”:{“t1”:(“一个”,“b”),“t2”:[[1,2,3,4,5),(6,7,8,9,10),(11,12,13,14,15]],“t3”:[[[1,2),(3,4),(5,6]],[[7,8),(9,10),(11,12]]]}}
使用API
你可以发送一个请求通过REST API使用得分标准砖的身份验证。下面的例子演示使用个人身份验证访问令牌。
给定一个MODEL_VERSION_URI
就像https:// < databricks-instance > /模型/ iris-classifier /生产/调用
,在那里< databricks-instance >
是砖实例的名称和砖REST API的令牌DATABRICKS_API_TOKEN
,下面是例子的片段如何评分模型。
评分模型接受dataframe记录输入格式。
curl - x POST - u令牌:DATABRICKS_API_TOKEN美元MODEL_VERSION_URI美元\- h“application / json内容类型:\- d{“dataframe_records”:({“sepal_length”: 5.1,“sepal_width”: 3.5,“petal_length”: 1.4,“petal_width”: 0.2}]}’
评分模型接受张量输入。张量的输入应格式化中描述TensorFlow服务的API文档。
curl - x POST - u令牌:DATABRICKS_API_TOKEN美元MODEL_VERSION_URI美元\- h“application / json内容类型:\- d{“输入”:[[5.1,3.5,1.4,0.2]]}”
进口numpy作为np进口熊猫作为pd进口请求defcreate_tf_serving_json(数据):返回{“输入”:{的名字:数据(的名字]。tolist()为的名字在数据。键()}如果isinstance(数据,dict)其他的数据。tolist()}defscore_model(model_uri,databricks_token,数据):头={“授权”:f“不记名{databricks_token}”,“内容类型”:“application / json”,}data_json=json。转储({“dataframe_records”:数据。to_dict(东方=“记录”)})如果isinstance(数据,pd。DataFrame)其他的create_tf_serving_json(数据)响应=请求。请求(方法=“职位”,头=头,url=model_uri,json=data_json)如果响应。status_code! =200年:提高异常(f“请求失败状态{响应。status_code},{响应。文本}”)返回响应。json()#接受大熊猫DataFrames评分模型数据=pd。DataFrame([{“sepal_length”:5.1,“sepal_width”:3.5,“petal_length”:1.4,“petal_width”:0.2}))score_model(MODEL_VERSION_URI,DATABRICKS_API_TOKEN,数据)#得分一个接受张量的模型数据=np。asarray([[5.1,3.5,1.4,0.2]])score_model(MODEL_VERSION_URI,DATABRICKS_API_TOKEN,数据)
可以得分数据集掌权BI桌面使用以下步骤:
打开数据集你想得分。
去转换数据。
在左边面板中右键单击并选择创建新的查询。
去视图>高级编辑器。
用下面的代码片段,替换查询身体后填入一个适当的
DATABRICKS_API_TOKEN
和MODEL_VERSION_URI
。(数据集作为表)作为表= >让call_predict=(数据集作为表)作为列表= >让apiToken=DATABRICKS_API_TOKEN,modelUri=MODEL_VERSION_URI,responseList=Json。文档(网络。内容(modelUri,(头=(#“内容类型”=“application / json”,#“授权”=文本。格式(无记名# {0},{apiToken})),内容={“dataframe_records”:Json。FromValue(数据集)}]))在responseList,predictionList=列表。结合(列表。变换(表。分裂(数据集,256年),(x)= >call_predict(x))),predictionsTable=表。FromList(predictionList,(x)= >{x},{“预测”}),datasetWithPrediction=表。加入(表。AddIndexColumn(predictionsTable,“指数”),“指数”,表。AddIndexColumn(数据集,“指数”),“指数”)在datasetWithPrediction
名称查询你想要的模型名称。
打开高级查询编辑器为你的数据集和应用模型的功能。
看到以下笔记本为例如何测试你的Serverless实时推理端点与Python模型:
更新模型版本的一个端点
模型版本必须是在分期或生产模型中注册才可以服务端点。
得到模型端点的状态
使用API
砖提供了以下的检查一个端点的状态。BOB低频彩了解更多关于EndpointStatus对象。
/ / mlflow / endpoints-v2预览/获得状态
{“registered_model_name”:“ElasticNet”}
这返回EndpointStatus
对象属性:
{“endpoint_status”:{“EndpointStatus”}}
得到模型端点的状态版本
你可以得到特定端点的状态已经部署的版本。这可以让您:
跟踪服务版本。
跟踪这些版本的状态。
检查一个特定的模型版本是否可以使用了。
使用API
砖提供两个api来检查端点的状态版本。检查所有端点的状态版本特定注册模式,您可以使用ListVersions
。BOB低频彩了解更多关于EndpointVersionStatus对象。
/ / mlflow / endpoints-v2预览/ list-versions
{“registered_model_name”:“ElasticNet”}
这将返回EndpointVersionStatus
对象属性:
{“endpoint_statuses”:(“EndpointVersionStatus”]}
或者,如果你已经知道你想知道状态的特定版本,您可以使用GetVersions
。
/ / mlflow / endpoints-v2预览/ get-version-status
{“registered_model_name”:“ElasticNet”,“endpoint_version_name”:“1”}
这将返回EndpointVersionStatus
对象属性:
{“endpoint_status”:{“EndpointVersionStatus”}}
禁用服务模型
调试模式端点
请注意
你只能调试您的端点通过UI模型。
你可以调试和排除端点登录查看模型,端点版本的UI选项卡中数据砖机器学习。日志中所有副本模型的合并所有副本选项卡。
除了模型的日志,您可以查看重大服务事件有关的模型模型的事件选项卡。
核心API的对象
本节包含了设计模式和语法Serverless实时推理的核心API对象。
重要的
API定义公共预览期间可能发生变化。
工作负载配置
WorkloadConfigSpec
描述了配置用于规模计算一个特定的阶段。
“WorkloadConfigSpec”:{“workload_size_id”:“小|中|大”,“scale_to_zero_enabled”:假}
ComputeConfig
代表配置用于规模计算特定阶段的元数据。
在下面,填充workload_spec
通过替换“WorkloadConfigSpec”
与前面定义的属性的WorkloadConfigSpec
对象。
“ComputeConfig”:{“舞台”:“登台|生产”,“creation_timestamp”:12345678,“user_id”:“first.last@www.neidfyre.com”,“workload_spec”:{“WorkloadConfigSpec”}}
端点状态
端点的健康状况反映出的任何阶段是否可以得分或资源生成的特定版本的模型。
在接下来的EndpointStatus
对象,填充compute_config
通过重用你的前面定义的属性ComputeConfig
作为一个数组对象和其他属性。
“EndpointStatus”:{“registered_model_name”:“ElasticNet”,“状态”:“待准备好| |失败”,“state_message”:“国家信息”,“compute_config”:(“ComputeConfig和附加属性作为数组”]}
端点版本状态
一个端点版本特定URI,可以查询。URI表示单个模型版本目前正在服役的计算计算配置设置为其配置的阶段。
在接下来的EndpointVersionStatus
对象,填充配置
字段,service_status
和config_update_status
——通过替换“ComputeConfig”
与前面定义的属性的ComputeConfig
对象。
“EndpointVersionStatus”:{“registered_model_name”:“ElasticNet”,“endpoint_version_name”:“1”,“service_status”:{“状态”:“SERVICE_STATE_UNKNOWN | SERVICE_STATE_PENDING | SERVICE_STATE_READY | SERVICE_STATE_UNKNOWN”,“消息”:“准备好了”,“配置”:{“ComputeConfig”}},“config_update_status”:{“状态”:“SERVICE_STATE_UNKNOWN | SERVICE_STATE_PENDING | SERVICE_STATE_READY | SERVICE_STATE_UNKNOWN”,“消息”:“等待”,“配置”:{“ComputeConfig”}}}
笔记本的例子
以下笔记本包括不同的模型,您可以使用设置和运行与Serverless实时推理端点。模型的例子可以导入到工作区中遵循的方向导入一个笔记本。你选择之后,创建一个模型的一个例子,MLflow模型中的注册表注册它,然后遵循UI工作流模型的步骤。