部署用於推斷和預測的模型

Databricks建議您使用MLflow來部署機器學習模型。您可以使用MLflow來部署用於批處理或流推斷的模型,或者設置REST端點來為模型服務。

本文描述如何為離線(批處理和流)推理和在線(實時)服務部署MLflow模型。有關使用MLflow模型的一般信息,請參見記錄、加載、注冊和部署MLflow模型

提示

您可以通過將模型注冊到MLflow模型注冊.在您注冊了您的模型之後,您就可以了自動生成筆記本用於批處理推理或配置模型在線服務

離線(批)預測

本節包括在Databricks上設置批預測的說明和示例。

使用MLflow進行模型推斷

MLflow幫助您生成用於批處理或流推理的代碼。

  • 在MLflow模型注冊表中,可以這樣做自動生成筆記本

  • MLflow運行頁麵對於您的模型,您可以複製生成的代碼片段,以便在pandas或Apache Spark DataFrames上進行推斷。

您還可以自定義由上述選項之一生成的代碼。參考以下筆記的例子:

  • 模型推理的例子使用一個經過scikit-learn訓練的模型,並事先記錄到MLflow,以展示如何加載模型並使用它對不同格式的數據進行預測。該筆記本演示了如何將該模型作為scikit-learn模型應用到pandas數據框架,以及如何將該模型作為PySpark UDF應用到Spark數據框架。

  • MLflow模型注冊表示例展示了如何使用model Registry構建、管理和部署模型。在那個頁麵上,你可以搜索.predict識別離線(批量)預測的例子。

創建Databricks作業

要將批處理或流預測作為一個作業運行,請創建一個筆記本或JAR,其中包含用於執行預測的代碼。然後,將筆記本或JAR作為Databricks執行工作.作業可以立即運行,也可以在時間表

流推理

對於流應用程序,請使用Apache Spark結構化流API。結構化流API類似於批處理操作。您可以使用上一節中提到的自動生成的筆記本作為模板,並修改它以使用流而不是批處理。參見Apache SparkMLlib管道和結構化流的例子

用深度學習模型進行推理

有關Databricks上的深度學習模型推理的信息和示例,請參閱以下文章:

使用MLlib和XGBoost4J模型進行推理

對於使用MLlib和XGBoost4J模型的可伸縮模型推斷,請使用本機變換方法直接在Spark數據幀上執行推斷。的MLlib例子筆記本包括推理的步驟。

定製和優化模型推理

當您使用MLflow api在Spark DataFrames上運行推理時,您可以將模型作為Spark UDF加載,並使用分布式計算進行大規模應用。

您可以自定義您的模型,以添加預處理或後處理,並優化大型模型的計算性能。定製模型的一個好選項是MLflow pyfunc API,它允許您用自定義邏輯包裝模型。

如果需要進一步定製,可以手動將機器學習模型包裝在Pandas UDF或熊貓迭代器UDF.看到深度學習的例子

對於較小的數據集,還可以使用庫提供的本機模型推斷例程。

MLflow模型服務

對於Python MLflow模型,Databricks提供MLflow模型服務,它允許您從Model Registry托管機器學習模型作為REST端點,這些REST端點根據模型版本及其階段的可用性自動更新。

第三方服務模型

要將模型部署到第三方服務框架,請使用mlflow。< deploy-type > .deploy ().有關示例,請參見部署在線服務模型