得分請求發送到服務端點

在本文中,您將了解如何格式評分要求你的服務模型,以及如何將這些請求發送到模型服務端點。看到模型服務與磚

取得一個部署模型,你可以發送一個REST API請求URL或使用UI模型。

你可以叫一個模型通過調用API和使用這個URI得分:

帖子/ serving-endpoints /{端點名稱}/調用

看到查詢單個模型背後的一個端點如何發送請求為一個特定的模型背後的一個端點。

請求格式

請求應該被發送通過構造一個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_recordsjson序列化熊貓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}]}

張量的形式

當你的張量模型預計,像Tensorflow或者Pytorch模型中,有兩個支持格式發送請求的選項:實例輸入

如果你有多個命名為張量每一行,那麼你必須有一個張量為每一行。

  • 實例張量是一種tensors-based格式,接受行格式。使用此格式如果所有輸入張量有相同的六月十維度。從概念上講,每個實例列表中的張量可以與其他同名的張量列表的其餘部分來構建完整的輸入張量模型,這隻會是可能的如果所有的張量有相同的六月十維度。

    {“實例”:(1,2,3]}

    下麵的例子顯示了如何指定多個命名為張量。

    {“實例”:({“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)比t1t3,所以它代表的輸入是不可能的實例格式。

    {“輸入”:{“t1”:(“一個”,“b”),“t2”:[[1,2,3,4,5),(6,7,8,9,10]],“t3”:[[[1,2),(3,4),(5,6]],[[7,8),(9,10),(11,12]]]}}

響應格式

端點的響應是在以下格式。你的模型的輸出是裹著預測關鍵。具體地說,幾乎總是一個列表,和頻繁的數字列表。

{“預測”:(0,1,1,1,0]}

發送得分與UI的請求

發送請求使用UI是最簡單快捷的方法來測試模型。

  1. 服務端點頁麵,選擇查詢端點

    1. 插入模型以JSON格式輸入數據並單擊發送請求

      1. 如果模型記錄了一個輸入,點擊顯示的例子加載輸入示例。

把得分與API請求

你可以發送一個請求通過REST API使用得分標準磚的身份驗證。下麵的例子演示使用個人身份驗證訪問令牌。

請注意

作為一個安全最佳實踐進行身份驗證時使用自動化工具,係統、腳本和應用程序,磚建議您使用OAuth令牌或個人訪問令牌屬於服務主體而不是用戶工作區。為服務主體,創建令牌服務主體的管理令牌

給定一個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(數據,pdDataFrame)其他的create_tf_serving_json(數據)響應=請求請求(方法=“職位”,=,url=model_uri,json=data_json)如果響應status_code! =200年:提高異常(f“請求失敗狀態{響應status_code},{響應文本})返回響應json()#接受大熊貓DataFrames評分模型數據=pdDataFrame([{“sepal_length”:5.1,“sepal_width”:3.5,“petal_length”:1.4,“petal_width”:0.2}))score_model(MODEL_VERSION_URI,DATABRICKS_API_TOKEN,數據)#得分一個接受張量的模型數據=npasarray([[5.1,3.5,1.4,0.2]])score_model(MODEL_VERSION_URI,DATABRICKS_API_TOKEN,數據)

可以得分數據集掌權BI桌麵使用以下步驟:

  1. 打開數據集你想得分。

  2. 去轉換數據。

  3. 在左邊麵板中右鍵單擊並選擇創建新的查詢

  4. 視圖>高級編輯器

  5. 用下麵的代碼片段,替換查詢身體後填入一個適當的DATABRICKS_API_TOKENMODEL_VERSION_URI

    (數據集作為)作為= >call_predict=(數據集作為)作為列表= >apiToken=DATABRICKS_API_TOKEN,modelUri=MODEL_VERSION_URI,responseList=Json文檔(網絡內容(modelUri,(=(#“內容類型”=“application / json”,#“授權”=文本。格式(無記名# {0},{apiToken})),內容={“dataframe_records”:JsonFromValue(數據集)}]))responseList,predictionList=列表結合(列表變換(分裂(數據集,256年),(x)= >call_predict(x))),predictionsTable=FromList(predictionList,(x)= >{x},{“預測”}),datasetWithPrediction=加入(AddIndexColumn(predictionsTable,“指數”),“指數”,AddIndexColumn(數據集,“指數”),“指數”)datasetWithPrediction
  6. 名稱查詢你想要的模型名稱。

  7. 打開高級查詢編輯器為你的數據集和應用模型的功能。

筆記本的例子

看到以下筆記本為例如何測試你的模型服務端點的Python模型:

測試模型服務端點的筆記本