開始
加載和管理數據
處理數據
政府
引用和資源
更新6月28日,2023年
給我們反饋
重要的
這個文檔已經退休了,可能不會被更新。產品、服務或技術中提到的這些內容不再支持。
本文中的指導是模型的預覽版本服務功能,以前Serverless實時推理。磚建議您遷移模型的工作流服務可用的一般功能。看到模型服務與磚。
預覽
這個特性是在公共預覽。
本文描述了如何創建和管理使用磚的端點Serverless實時推理。
API定義和工作流過程中如有變更,恕公共預覽。
如果你依靠水蟒,審查服務條款請注意附加信息。
Serverless實時推理隻是用於麵向MLflow MLflow模型中的模型注冊注冊表。你必須聲明所有模型conda環境依賴性或要求文件。
如果你沒有注冊模式,看到筆記本的例子預包裝模型可以使用設置和運行與Serverless實時推理端點。
必須啟用您的工作區Serverless實時推理。使模型服務Serverless實時推理,你必須有集群創建權限。
如果你從一個私人使用自定義庫或庫鏡像服務器與你的模型,看看使用自定義Python庫模型在你創建模型端點。
您可以創建Serverless實時推理模型服務的端點磚機器學習API或磚機器學習的UI。端點可以注冊任何Python MLflow模型在模型中注冊中心注冊。
您可以使用啟用服務API來創建一個服務端點模型。在接下來的例子中,ElasticNet的名稱注冊模型。
ElasticNet
文章https:// < databricks-instance > / api / 2.0 /預覽/ mlflow / endpoints-v2 /啟用{“registered_model_name”:“ElasticNet”}
你讓一個模型為其服務注冊頁麵模型磚的機器學習的UI。
單擊服務選項卡。如果模型是服務尚未啟用,使Serverless實時推理按鈕出現。
點擊使Serverless實時推理。服務選項卡出現了狀態顯示為等待。幾分鍾後,狀態更改好了。
使端點模型之後,您可以根據需要設置計算配置API或UI。這個配置是特別有用如果你需要額外的資源模型。工作負載大小和計算配置發揮關鍵作用的資源分配給您的模型。了解更多關於WorkloadConfigSpec對象。
配置的狀態更新可以跟蹤config_update_status場的端點版本狀態。
config_update_status
把/預覽/ model-serving-api / endpoints-v2 / update-compute-config
在下麵,填充desired_workload_config_spec與WorkloadConfigSpec屬性。
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_splitjson序列化熊貓Dataframe在嗎分裂取向。
dataframe_split
分裂
{“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
記錄
請注意
這種格式不能保證保存列排序,和分裂格式是首選的記錄格式。
{“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,所以它代表的輸入是不可能的實例格式。
輸入
t2
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]]]}}
端點的響應是在以下格式。模型的輸出是包裹在一個“預測”鍵。
{“預測”:“從模型> < JSON輸出”}
發送請求使用UI是最簡單快捷的方法來測試模型。你可以插入模型以JSON格式輸入數據並單擊發送請求。如果模型記錄了一個輸入的例子(如圖形所示上圖),點擊顯示的例子加載輸入示例。
你可以發送一個請求通過REST API使用得分標準磚的身份驗證。下麵的例子演示使用個人身份驗證訪問令牌。
作為一個安全最佳實踐進行身份驗證時使用自動化工具,係統、腳本和應用程序,磚建議您使用OAuth令牌或個人訪問令牌屬於服務主體而不是用戶工作區。為服務主體,創建令牌管理個人訪問令牌服務主體。
給定一個MODEL_VERSION_URI就像https:// < databricks-instance > /模型/ iris-classifier /生產/調用,在那裏< databricks-instance >是磚實例的名稱和磚REST API的令牌DATABRICKS_API_TOKEN,下麵是例子的片段如何評分模型。
MODEL_VERSION_URI
https:// < databricks-instance > /模型/ iris-classifier /生產/調用
< databricks-instance >
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模型:
在新標簽頁打開筆記本
模型版本必須是在分期或生產模型中注冊才可以服務端點。
過渡到服務新模式版本,您可以使用該模型注冊表來你想要的模型版本服務過渡到其適當的階段。
以下代碼示例轉換模型的版本2ElasticNet暫存。通過設置archive_existing_versions來真正的任何現有的模型版本歸檔,使分段URL指向新模型版本之後準備服務。新版本之前準備好,Staging端點服務於舊模式版本,因此過渡是由零停機時間。
archive_existing_versions
真正的
POST / mlflow /磚/模型版本/過渡階段{“名稱”:“ElasticNet”,“版本”:“2”,“舞台”:“暫存”,“archive_existing_versions”:真的,“評論”:“部署版本1分段端點!”}
你也可以選擇繼續前麵的登台版本的登台。一個模型的多個版本可以在同一個階段。在這種情況下,兩個版本都提供,但隻能分期URL點最新的的版本。老版本仍然可以訪問的URL。
如果你想嚐試一個新版本在你舉辦端點,你可以做上麵的一樣,但集archive_existing_versions來假確保前麵的臨時版本不會存檔。
假
POST / mlflow /磚/模型版本/過渡階段{…“archive_existing_versions”:假的,…}
模型版本過渡到暫存或生產使用磚機器學習的界麵:
選擇模型在側邊欄。
識別並選擇您希望更新注冊模型。
選擇過渡到你想要的模型版本暫存或生產。打開模型版本的詳細頁麵的鏈接。
使用階段頂端的下拉菜單中正確過渡模型版本暫存或生產。
磚提供了以下的檢查一個端點的狀態。了解更多關於EndpointStatus對象。
/ / mlflow / endpoints-v2預覽/獲得狀態
{“registered_model_name”:“ElasticNet”}
這返回EndpointStatus對象屬性:
EndpointStatus
{“endpoint_status”:{“EndpointStatus”}}
在UI中,您可以檢查一個端點的狀態的狀態頂部的指標服務選項卡。
你可以得到特定端點的狀態已經部署的版本。這可以讓您:
跟蹤服務版本。
跟蹤這些版本的狀態。
檢查一個特定的模型版本是否可以使用了。
磚提供兩個api來檢查端點的狀態版本。檢查所有端點的狀態版本特定注冊模式,您可以使用ListVersions。了解更多關於EndpointVersionStatus對象。
ListVersions
/ / mlflow / endpoints-v2預覽/ list-versions
這將返回EndpointVersionStatus對象屬性:
EndpointVersionStatus
{“endpoint_statuses”:(“EndpointVersionStatus”]}
或者,如果你已經知道你想知道狀態的特定版本,您可以使用GetVersions。
GetVersions
/ / mlflow / endpoints-v2預覽/ get-version-status
{“registered_model_name”:“ElasticNet”,“endpoint_version_name”:“1”}
{“endpoint_status”:{“EndpointVersionStatus”}}
你也可以得到一個特定階段的地位。要做到這一點,首先需要確定哪些目前服務端點版本階段。獲取這些信息,您可以使用ListVersionAliases。
ListVersionAliases
/ / mlflow / endpoints-v2預覽/ list-version-aliases
這將返回:
{“別名”:({“別名”:“暫存”,“endpoint_version_name”:“2”},{“別名”:“生產”,“endpoint_version_name”:“1”}]}
從那裏,您可以使用上麵的特定端點的狀態版本。
在服務UI的選項卡中,您可以看到每個端點版本有自己的選項卡左邊。當您選擇每個選項卡時,會出現一個特定版本的詳細信息。目前的版本可以看到一個階段的服務暫存或生產標簽上的端點的版本。
您可以使用API來禁用模型服務模型中模型注冊中心注冊。
禁用模型為一個模型使用禁用服務API服務:
POST /預覽/ mlflow / endpoints-v2 /禁用{“registered_model_name”:“ElasticNet”}
你可以禁用一個模型為其服務注冊頁麵模型。
點擊禁用服務。
你隻能調試您的端點通過UI模型。
你可以調試和排除端點登錄查看模型,端點版本的UI選項卡中數據磚機器學習。日誌中所有副本模型的合並所有副本選項卡。
除了模型的日誌,您可以查看重大服務事件有關的模型模型的事件選項卡。
本節包含了設計模式和語法Serverless實時推理的核心API對象。
API定義公共預覽期間可能發生變化。
WorkloadConfigSpec描述了配置用於規模計算一個特定的階段。
“WorkloadConfigSpec”:{“workload_size_id”:“小|中|大”,“scale_to_zero_enabled”:假}
ComputeConfig代表配置用於規模計算特定階段的元數據。
ComputeConfig
在下麵,填充workload_spec通過替換“WorkloadConfigSpec”與前麵定義的屬性的WorkloadConfigSpec對象。
workload_spec
“WorkloadConfigSpec”
“ComputeConfig”:{“舞台”:“登台|生產”,“creation_timestamp”:12345678,“user_id”:“first.last@www.eheci.com”,“workload_spec”:{“WorkloadConfigSpec”}}
端點的健康狀況反映出的任何階段是否可以得分或資源生成的特定版本的模型。
在接下來的EndpointStatus對象,填充compute_config通過重用你的前麵定義的屬性ComputeConfig作為一個數組對象和其他屬性。
compute_config
“EndpointStatus”:{“registered_model_name”:“ElasticNet”,“狀態”:“待準備好| |失敗”,“state_message”:“國家信息”,“compute_config”:(“ComputeConfig和附加屬性作為數組”]}
一個端點版本特定URI,可以查詢。URI表示單個模型版本目前正在服役的計算計算配置設置為其配置的階段。
在接下來的EndpointVersionStatus對象,填充配置字段,service_status和config_update_status——通過替換“ComputeConfig”與前麵定義的屬性的ComputeConfig對象。
配置
service_status
“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工作流模型的步驟。
以下為客戶注意的是依靠水蟒。beplay体育app下载地址
蟒蛇inc .)更新他們的服務條款為anaconda.org頻道。基於新的服務條款你可能需要一個商業許可證如果你依靠蟒蛇的包裝和分布。看到蟒蛇商業版常見問題解答為更多的信息。你使用任何蟒蛇的通道是由他們的服務條款。
MLflow模型記錄之前v1.18(磚運行時的8.3毫升或更早)與conda默認登錄違約通道(https://repo.anaconda.com/pkgs/作為一個依賴項。因為這個許可改變,磚已經停止使用違約渠道模式登錄使用MLflow v1.18以上。默認通道記錄是現在conda-forge,點在社區管理https://conda-forge.org/。
違約
conda-forge
如果你登錄一個模型之前MLflow v1.18沒有排除違約通道從conda環境模型,該模型可能有依賴違約頻道,你可能沒有。手動確認模型是否有這種依賴性,你可以檢查通道的價值conda.yaml打包的文件與記錄模型。例如,一個模式conda.yaml與一個違約通道的依賴可能看起來像這樣:
通道
conda.yaml
渠道:- - - - - -違約依賴關係:- - - - - -python = 3.8.8- - - - - -皮普- - - - - -皮普:- - - - - -mlflow- - - - - -scikit-learn = = 0.23.2- - - - - -cloudpickle = = 1.6.0的名字:mlflow-env
因為磚不能確定你使用的水蟒庫與模型進行交互是允許你和蟒蛇的關係下,磚不是迫使其客戶進行任何更改。beplay体育app下载地址如果你使用Anaconda.com回購通過使用磚是允許在蟒蛇的條件下,您不需要采取任何行動。
如果你想換頻道中使用模型的環境中,你可以注冊模型到模型中注冊一個新的conda.yaml。你可以通過指定的通道conda_env參數的log_model ()。
conda_env
log_model ()
更多的信息log_model ()API,看到MLflow味道你正在與文檔模型,例如,為scikit-learn log_model。
的更多信息conda.yaml文件,請參見MLflow文檔。