如何管理機器學習模型

dicksonjyl560101發表於2019-01-12

https://www.toutiao.com/a6645460362621616644/


在當今快節奏的分析開發環境中,資料科學家的任務通常不僅僅是構建機器學習模型並將其部署到生產中。現在,他們負責定期監控,微調,更新,重新培訓,更換和啟動模型 - 在某些情況下,還有數百甚至數千個模型。

結果,出現了不同級別的模型管理。在下文中,我嘗試突出每個,從單一模型管理到構建整個模型工廠。

機器學習流程基礎知識 您可能想知道,如何使用我的培訓程式的結果來獲取新的傳入資料?有很多選項,例如在用於培訓和以標準化格式匯出模型的同一系統中進行評分。或者,您可以將模型推送到其他系統,例如將模型評分為資料庫中的SQL語句,或將容器化模型用於在完全不同的執行時環境中進行處理。從模型管理的角度來看,您只需要能夠支援所有必需的選項。

標準流程如下所示:

如何管理機器學習模型

注意:實際上,除非至少部分資料處理(轉換/整合)是生產中“模型”的一部分,否則模型本身通常不是非常有用。這是許多部署選項顯示出令人驚訝的弱點的地方,因為它們僅支援單獨部署預測模型。

機器學習模型評估和監控

模型管理的一個重要部分是確保模型保持正常執行。定期從過去收集資料 - 正如許多資料科學家被迫做的那樣 - 只能保證模型不會突然改變。持續監控允許您測量模型是否開始“漂移”,即由於現實變化而變得過時。有時,建議手動註釋資料以測試邊界情況,或者只是確保模型沒有出現重大錯誤。

最終,模型評估應該導致測量某種形式的模型質量的分數,例如分類準確性。有時,您需要更多依賴於應用程式的度量,例如預期成本或風險度量。然而,你用這個分數做的是另一個故事。

更新和再培訓機器學習模型

在下一階段,我們超越監控,實際管理某些事情。假設您的監控解決方案開始報告越來越多的錯誤。您可以觸發自動模型更新,再培訓,甚至完成模型的更換。

一些模型管理設定只是訓練一個新模型然後部署它。但是,由於培訓可能需要大量資源和時間,因此更明智的方法是使此開關依賴於效能。效能閾值確保實際上值得替換現有模型。執行評估程式以採用先前的模型(通常稱為冠軍)和新的(重新)訓練模型(挑戰者); 對它們進行評分並決定是應該部署新模型還是保留舊模型。在某些情況下,當新模型明顯優於舊模型時,您可能只想解決模型部署的麻煩。

即使有連續的監控,再培訓和更換,如果您不在管理系統的其他地方採取預防措施,機器學習模型仍然可能會遇到季節性問題。例如,如果模型預測服裝的銷售配額,季節將顯著影響這些預測。如果您按月監控和重新培訓,年復一年,您可以有效地訓練模型以適應當前季節。您還可以根據季節手動設定不同加權季節模型的組合。

有時模型需要保證某些情況下的特定行為。將專家知識注入模型學習是實現這一目標的一種方法,但是具有可以覆蓋訓練模型的輸出的單獨規則模型是更透明的解決方案。

雖然某些模型可以更新,但許多演算法都可以健忘。很久以前的資料在確定模型引數方面的作用越來越小。這有時是可取的,但很難適當調整遺忘率。

另一種方法是重新訓練模型,從頭開始構建新模型。這使您可以使用適當的資料取樣(和評分)策略,以確保新模型在過去和最近資料的正確組合上進行培訓。

現在,管理過程看起來更像這樣:

如何管理機器學習模型

管理多個機器學習模型

假設您現在想要連續監視和更新/重新訓練整組模型。您可以採用與單模型案例相同的方式處理此問題,但如果使用多個模型,則會出現與介面和實際管理相關的問題。如何將許多模型的狀態傳達給使用者並讓她與他們互動,誰控制所有這些流程的執行?必須有所有模型的儀表板檢視,這些模型具有管理和控制單個模型的功能。

大多數工作流工具允許將其內部作為服務公開,因此您可以設想一個單獨的程式,以確保正確呼叫您的個人模型管理過程。您可以構建單獨的應用程式,也可以使用現有的開源軟體來協調建模工作流程,監督這些流程並總結其輸出。

當您將它們分組到不同的模型系列中時,管理大量機器學習模型會變得更加有趣。您可以類似地處理預測非常相似行為的模型。如果您經常需要新模型,這將特別有用。當模型相似時,您可以通過從系列中的現有模型初始化新模型來節省時間和精力,而不是從頭開始或僅在隔離的過去資料上訓練新模型。您可以使用最相似的模型(由物件的某些相似性度量確定)或混合模型進行初始化。

模型管理設定現在看起來像這樣:

如何管理機器學習模型

如果您充分抽象模型系列之間的介面,您應該能夠隨意混合和匹配。這允許新模型重用負載,轉換,(重新)培訓,評估和部署策略,並以任意方式組合它們。對於每個模型,您只需要定義在此通用模型管理管道的每個階段中使用哪些特定的流程步驟。

看一看:

如何管理機器學習模型

部署模型可能只有兩種不同的方式,但有十幾種不同的方式來訪問資料。如果您必須將其拆分為不同的模型流程系列,那麼最終會有超過一百種變體。

機器學習模型工廠

機器學習模型管理的最後一步是跳轉到建立模型工廠。例如,這可以通過僅從上面定義各個部分(處理步驟)並以在配置檔案中定義的靈活方式組合它們來完成。然後,每當有人想要稍後更改資料訪問或首選模型部署時,您只需要調整該特定流程步驟,而不必修復使用它的所有程式。這是一個夢幻般的節省時間。

在這個階段,將評估步驟分為兩部分是有意義的,即計算模型得分的部分和決定如何處理該部分的部分。後者可以包括處理冠軍/挑戰者場景的不同策略,並且與您計算實際得分的方式無關。

然後,將模型工廠投入使用實際上很簡單。配置設定定義每個模型管道使用每個過程步驟的化身。對於每個型號,您可以自動比較過去和當前的效能並觸發重新訓練和更新。本白皮書中詳細介紹了有關企業擴充套件模型流程的內容。

這是很多資訊,但資料科學家可以掌握每個級別,因為他們必須。今天的大量資訊很快就會顯得微不足道。我們現在必須開發出可靠,可靠的管理實踐,以處理日益龐大的資料量和隨之而來的大量模型,以最終理解它。

如何管理機器學習模型

本文摘自資訊世界,作者Michael Berthold,KNIME創始人,由碼上打卡團隊編譯,如有錯誤,請聯絡修改。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2386131/,如需轉載,請註明出處,否則將追究法律責任。

相關文章