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