什么是機器學習中的模型部署?
在機器學習中,模型部署是將機器學習模型集成到現有生產環境中的過程,在該環境中,模型可以接受輸入并返回輸出。目標是讓其他人可以使用經過訓練的機器學習模型的預測。
大多數在線資源側重于機器學習生命周期的前期步驟,例如探索性數據分析(EDA)、模型選擇和模型評估。然而,模型部署是一個似乎很少討論的話題,因為它可能很復雜。沒有軟件工程或DevOps背景的人很難理解部署。
本文將詳細概述,什么是模型部署、模型的高級架構、部署模型的不同方法,以及確定部署方法時要考慮的因素。
什么是模型部署?
部署機器學習模型,也稱為模型部署,簡單來說就是將機器學習模型集成到現有的生產環境中,在該環境中,模型可以接受輸入并返回輸出。部署模型的目的是讓其他人(無論是用戶、管理人員還是其他系統)可以使用訓練有素的機器學習模型進行預測。
模型部署與機器學習系統架構密切相關,機器學習系統架構是指系統內軟件組件的排列和交互,以實現預定義的目標。
模型部署標準
在部署模型之前,機器學習模型需要滿足幾個標準才能準備好部署:
- 可移植性:這是指軟件從一臺機器或系統轉移到另一臺機器或系統的能力。便攜式模型是一種響應時間相對較短,且可以輕松重寫的模型。
- 可擴展性:這是指模型可以擴展的規模。可擴展模型是一種無需重新設計即可維持其性能的模型。
這一切都將在生產環境中進行,生產環境是一個術語,用于描述軟件和其他產品實際投入運行以供最終用戶使用的環境。
用于模型部署的機器學習系統架構
從高層次來看,機器學習系統有四個主要部分:
- 數據層:數據層提供對模型所需的所有數據源的訪問。
- 特征層:特征層負責以透明、可擴展和可用的方式生成特征數據。
- 評分層:評分層將特征轉換為預測。Scikit-Learn是最常用的,也是評分的行業標準。
- 評估層:評估層檢查兩個模型的等效性,可用于監控生產模型。它用于監控和比較訓練預測與實時流量預測的匹配程度。
需要了解的3種模型部署方法
部署ML模型有三種常用方法:一次性、批量和實時。
1、一次性
并不總是需要持續訓練機器學習模型來進行部署。有時,模型僅需要一次或定期需要。在這種情況下,可以簡單地在需要時對模型進行臨時訓練,然后將其投入生產,直到其性能惡化到需要修復為止。
2、批量
批量訓練,能夠不斷擁有最新版本的模型。這是一種可擴展的方法,一次獲取數據的子樣本,從而無需每次更新都使用完整的數據集。如果在一致的基礎上使用模型,但不一定需要實時預測,這是不錯的方法。
3、實時
在某些情況下,需要實時預測,例如確定交易是否欺詐。這可以通過使用在線機器學習模型來實現,例如使用隨機梯度下降的線性回歸。
需要考慮的4個模型部署因素
在決定如何部署機器學習模型時,應該考慮許多因素和影響。這些因素包括以下內容:
- 預測生成的頻率以及需要預測結果的迫切程度。
- 預測應該單獨生成還是批量生成。
- 模型的延遲要求、擁有的計算能力以及所需的服務級別協議(SLA)。
- 部署和維護模型所需的運營影響和成本。
了解這些因素,有助于在一次性、批量和實時模型部署方法之間做出選擇。