部署推理和預測模型

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

本文介紹了如何為離線(批處理和流)推理和在線(實時)服務部署MLFLOW模型。有關使用MLFlow模型的一般信息,請參見日誌,加載,注冊和部署MLFLOW模型

小費

您可以通過注冊模型來簡化模型部署MLFlow模型注冊表。注冊模型後,您可以自動生成筆記本用於批處理推理或配置模型在線服務

離線(批次)預測

本節包括用於在數據映中設置批處理預測的說明和示例。

使用MLFLOW進行模型推斷

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

  • 在MLFlow模型注冊表中,您可以自動生成筆記本

  • 在裏麵MLFlow運行頁對於您的模型,您可以複製生成的代碼段,以推斷熊貓或apache spark數據範圍。

您還可以自定義以上任何一個選項生成的代碼。請參閱以下筆記本以獲取示例:

  • 模型推理示例使用經過Scikit-Learn訓練的模型,並先前記錄到MLFLOW,以顯示如何加載模型並使用它以不同格式的數據進行預測。該筆記本說明了如何將模型作為Scikit-Learn模型應用於Pandas DataFrame,以及如何將模型應用於Pyspark UDF將其應用於Spark DataFrame。

  • MLFLOW模型注冊表示例顯示如何使用模型注冊表構建,管理和部署模型。在該頁麵上,您可以搜索。預測確定離線(批次)預測的示例。

創建數據鏈球

要運行批處理或流媒體預測作為作業,請創建一個筆記本或JAR,其中包括用於執行預測的代碼。然後,將筆記本或罐子作為數據鏈助執行工作。作業可以立即或在日程

流推斷

對於流媒體應用程序,請使用Apache Spark結構化流API。結構化流API類似於批處理操作。您可以將上一節中提到的自動生成的筆記本用作模板,並將其修改以使用流式傳輸而不是批處理。查看Apache Sparkmllib管道和結構化流示例

與深度學習模型的推斷

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

使用MLLIB和XGBOOST4J模型推斷

對於使用MLLIB和XGBOOST4J模型的可擴展模型推斷,請使用本機轉換直接在Spark DataFrames上執行推斷的方法。這MLLIB示例筆記本包括推理步驟。

自定義和優化模型推斷

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

您可以自定義模型以添加預處理或後處理,並優化大型模型的計算性能。自定義模型的一個好選擇是mlflow pyfunc api,這使您可以用自定義邏輯包裝模型。

如果您需要進行進一步的自定義,則可以將機器學習模型手動包裹在Pandas UDF或Pandas Iterator UDF。看到深度學習的例子

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

MLFlow模型服務

對於Python MLFlow模型,Databricks提供MLFlow模型服務,這使您可以從模型注冊表中托管機器學習模型,因為REST端點是根據模型版本及其階段自動更新的REST端點。

第三方模型服務

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