良好的監(jiān)控和管理不僅能夠使模型保持一致,而且有助于簡化機器學(xué)習(xí)過程。
在當(dāng)今快節(jié)奏的分析開發(fā)環(huán)境中,數(shù)據(jù)科學(xué)家的任務(wù)將不僅僅是構(gòu)建機器學(xué)習(xí)模型并將其部署到生產(chǎn)環(huán)境當(dāng)中?,F(xiàn)在,他們需要負(fù)責(zé)定期監(jiān)控、微調(diào)、更新、再訓(xùn)練、替換和啟動模型-在某些情況下,還需要整合數(shù)百甚至數(shù)千個模型。
因此便出現(xiàn)了不同層次的模型管理需求。在下面的文章中,我將著重介紹從單一的模型管理到建立整個模型工廠的每一種方法。
機器學(xué)習(xí)的工作流程基礎(chǔ)
您可能想知道,我是如何使用我的訓(xùn)練過程的結(jié)果來獲得新的數(shù)據(jù)的?有很多選項,例如在用于訓(xùn)練和以標(biāo)準(zhǔn)化格式導(dǎo)出模型的同一系統(tǒng)中進行評分?;蛘?您也可以將模型推送到其他系統(tǒng)中,例如將模型作為數(shù)據(jù)庫中的SQL語句來進行評分,或者將模型打包,以便在完全不同的運行時環(huán)境中進行處理。從模型管理的角度來看,您只需要能夠支持所有必需的選項。
標(biāo)準(zhǔn)流程如下所示:
注意:在現(xiàn)實中,除非有少部分?jǐn)?shù)據(jù)處理(轉(zhuǎn)換/集成)是生產(chǎn)中“模型”的一部分,否則模型本身通常都不是非常有用。這就是許多部署選項的不足之處,因為它們僅支持預(yù)測模型的部署。
機器學(xué)習(xí)模型的評估與監(jiān)控
模型管理的一個重要部分是確保模型保持其應(yīng)有的性能。正如許多數(shù)據(jù)科學(xué)家所被迫的那樣,定期收集過去的數(shù)據(jù)只能確保模型沒有突然改變。持續(xù)監(jiān)控允許您測量模型是否開始“漂移”,即是否由于現(xiàn)實的變化而變得過時。有時,最好使用包括人工標(biāo)注的數(shù)據(jù)來測試邊界案例,或者只是確保模型不會犯嚴(yán)重錯誤。
最后,模型評估的結(jié)果應(yīng)該是對模型質(zhì)量的某種形式的評分,例如分類的準(zhǔn)確性。有時,您需要更多依賴于應(yīng)用程序的度量,例如預(yù)測成本或風(fēng)險度量。然而,對于您如何處理這些評分,則又是另一回事了。
更新和再訓(xùn)練機器學(xué)習(xí)模型
在下一個階段,我們將從監(jiān)視轉(zhuǎn)移到實際管理上來。假設(shè)您的監(jiān)控解決方案開始報告越來越多的錯誤。在這種情況下,您可以觸發(fā)自動模型更新、再訓(xùn)練,甚至是完全替換模型。
一些模型管理設(shè)置只是訓(xùn)練一個新模型,然后部署它。然而,由于訓(xùn)練可能占用大量的資源和時間,一種更明智的方法是讓這種轉(zhuǎn)換與性能相關(guān)聯(lián)。定義一個性能閾值以確保替換現(xiàn)有模型的實際價值。你需要對前一個模型(通常稱為冠軍模型)和新訓(xùn)練模型(挑戰(zhàn)模型)進行評估;對它們進行評分并決定是應(yīng)該部署新模型還是保留舊模型。在某些情況下,您可能只想在新模型的性能顯著優(yōu)于舊模型時才愿意經(jīng)歷模型部署的麻煩。
即使有了持續(xù)的監(jiān)控、再訓(xùn)練和替換,如果您不在管理系統(tǒng)的其他地方采取預(yù)防措施,機器學(xué)習(xí)模型的模型仍然會有季節(jié)性的變化。例如,如果該模型是用來預(yù)測服裝的銷售配額的,那么季節(jié)可能將顯著的影響這些預(yù)測。如果你每個月都進行監(jiān)控和再訓(xùn)練,年復(fù)一年,您自然可以有效地訓(xùn)練模型以適應(yīng)當(dāng)前季節(jié)。您還可以手動設(shè)置季節(jié)性模型的組合,這些模型的權(quán)重會根據(jù)季節(jié)的不同而不同。
有時模型需要保證特定情況下的特定行為。將專家知識注入模型學(xué)習(xí)是實現(xiàn)這一目標(biāo)的一種方法,但是具有可以覆蓋訓(xùn)練模型輸出的單獨規(guī)則模型則是一種更透明的解決方案。
雖然有些模型可以更新,但算法可能會很健忘。很久以前的數(shù)據(jù)在決定模型參數(shù)方面的作用將越來越小。這有時是可取的,但如何適當(dāng)?shù)恼{(diào)整遺忘速度的確是一個難題。
另一種方法是重新訓(xùn)練模型,從頭構(gòu)建一個新模型。這允許您使用適當(dāng)?shù)臄?shù)據(jù)抽樣(和評分)策略,以確保新模型是在過去和最近數(shù)據(jù)的正確組合上訓(xùn)練的。
現(xiàn)在,管理過程看起來更像是這樣:
管理多個機器學(xué)習(xí)模型
假設(shè)您現(xiàn)在想要持續(xù)地監(jiān)視和更新/再訓(xùn)練整個模型集。您可以使用與單模型情況相同的方式處理此問題,但是對于多個模型,就會出現(xiàn)與接口和實際管理相關(guān)的問題。您如何向用戶傳達許多模型的狀態(tài),并讓用戶與它們交互,以及由誰來控制所有這些流程的執(zhí)行?必須有一個所有模型的儀表板視圖,該視圖具有管理和控制單個模型的功能。
大多數(shù)工作流工具允許將它們的內(nèi)部作為服務(wù)公開,因此您可以設(shè)置一個單獨的程序,以確保您的單個模型管理過程被正確地調(diào)用。您可以構(gòu)建單獨的應(yīng)用程序,也可以使用現(xiàn)有的開源軟件來編排建模工作流、監(jiān)督這些流程并總結(jié)它們的輸出。
當(dāng)您將大量機器學(xué)習(xí)模型分組到不同的模型族中時,管理它們也將變得更加有趣。你可以用類似的方法來處理預(yù)測相似行為的模型。如果您經(jīng)常需要新模型,這將特別有用。當(dāng)模型相似時,您可以通過從集合中的現(xiàn)有模型初始化一個新模型來節(jié)省時間和精力,而不是從頭開始,或者僅僅根據(jù)孤立的過去數(shù)據(jù)來對新模型進行訓(xùn)練。您可以使用最相似的模型(由對象的相似性度量決定)或混合模型來進行初始化。
模型管理的設(shè)置現(xiàn)在看起來是這樣的:
如果您充分抽象了模型之間的接口,您應(yīng)該能夠隨意的進行混合和匹配。這將允許新模型重用負(fù)載、轉(zhuǎn)換、(重新)訓(xùn)練、評估和部署策略,并以任意方式組合它們。對于每個特定模型,您只需要定義在這個通用模型管理管道中的每個階段使用哪些特定的流程步驟。
如下所示:
部署模型可能只有兩種不同的方式,但是訪問數(shù)據(jù)則有十多種不同的方法。如果你還必須將它分成不同的模型流程族,那么你最終會得到一百多種不同的結(jié)果。
機器學(xué)習(xí)模型工廠
機器學(xué)習(xí)模型管理的最后一步是創(chuàng)建模型工廠。例如,這可以通過僅定義上面的各個部分(流程步驟)并以配置文件中定義的靈活方式來進行組合配置。然后,無論何時,當(dāng)有人想要在以后更改數(shù)據(jù)訪問或首選的模型部署時,您只需要調(diào)整特定的流程步驟,而不必去修改使用它的所有流程。這是一個極有效的省時方法。
在這個階段,將評估步驟分為兩部分是有意義的,一部分計算模型的分?jǐn)?shù),另一部分決定如何處理該分?jǐn)?shù)。后者可以包括處理冠軍/挑戰(zhàn)者場景的不同策略,并且獨立于實際得分的計算。
這樣,讓一個模型工廠投入實際工作將會非常簡單。你只需要配置每個流程步驟的哪個具體方案用于哪個模型管道。對于每個模型,您可以自動比較過去和當(dāng)前的性能,并據(jù)此決定是否觸發(fā)再訓(xùn)練和更新。在關(guān)于企業(yè)可伸縮模型流程的白皮書中對此進行了詳細描述。
雖然其中包含了大量的信息,但是數(shù)據(jù)科學(xué)家將會掌握上述的每一個級別,因為他們也必須掌握。而今天的海量信息將很快變得微不足道?,F(xiàn)在,我們必須開發(fā)可靠的管理實踐,以處理日益龐大的數(shù)據(jù)量和隨之而來的大量模型,以便最終理解這些數(shù)據(jù)。
Michael Berthold博士是KNIME的創(chuàng)始人兼首席執(zhí)行官。他在數(shù)據(jù)分析、機器學(xué)習(xí)、人工智能和規(guī)則歸納方面有超過25年的研究和行業(yè)經(jīng)驗。作為康斯坦茨大學(xué)、卡內(nèi)基梅隆大學(xué)和加州大學(xué)伯克利分校的教授,以及英特爾、Utopy和Tripos的工業(yè)專家,Michael有著悠久的學(xué)術(shù)生涯。