如何管理機器學習模型
在當今快節奏的分析開發環境中,資料科學家的任務通常不僅僅是構建機器學習模型並將其部署到生產中。現在,他們負責定期監控,微調,更新,重新培訓,更換和啟動模型 - 在某些情況下,還有數百甚至數千個模型。
結果,出現了不同級別的模型管理。在下文中,我嘗試突出每個,從單一模型管理到構建整個模型工廠。
機器學習流程基礎知識 您可能想知道,如何使用我的培訓程式的結果來獲取新的傳入資料?有很多選項,例如在用於培訓和以標準化格式匯出模型的同一系統中進行評分。或者,您可以將模型推送到其他系統,例如將模型評分為資料庫中的SQL語句,或將容器化模型用於在完全不同的執行時環境中進行處理。從模型管理的角度來看,您只需要能夠支援所有必需的選項。
標準流程如下所示:
注意:實際上,除非至少部分資料處理(轉換/整合)是生產中“模型”的一部分,否則模型本身通常不是非常有用。這是許多部署選項顯示出令人驚訝的弱點的地方,因為它們僅支援單獨部署預測模型。
機器學習模型評估和監控
模型管理的一個重要部分是確保模型保持正常執行。定期從過去收集資料 - 正如許多資料科學家被迫做的那樣 - 只能保證模型不會突然改變。持續監控允許您測量模型是否開始“漂移”,即由於現實變化而變得過時。有時,建議手動註釋資料以測試邊界情況,或者只是確保模型沒有出現重大錯誤。
最終,模型評估應該導致測量某種形式的模型質量的分數,例如分類準確性。有時,您需要更多依賴於應用程式的度量,例如預期成本或風險度量。然而,你用這個分數做的是另一個故事。
更新和再培訓機器學習模型
在下一階段,我們超越監控,實際管理某些事情。假設您的監控解決方案開始報告越來越多的錯誤。您可以觸發自動模型更新,再培訓,甚至完成模型的更換。
一些模型管理設定只是訓練一個新模型然後部署它。但是,由於培訓可能需要大量資源和時間,因此更明智的方法是使此開關依賴於效能。效能閾值確保實際上值得替換現有模型。執行評估程式以採用先前的模型(通常稱為冠軍)和新的(重新)訓練模型(挑戰者); 對它們進行評分並決定是應該部署新模型還是保留舊模型。在某些情況下,當新模型明顯優於舊模型時,您可能只想解決模型部署的麻煩。
即使有連續的監控,再培訓和更換,如果您不在管理系統的其他地方採取預防措施,機器學習模型仍然可能會遇到季節性問題。例如,如果模型預測服裝的銷售配額,季節將顯著影響這些預測。如果您按月監控和重新培訓,年復一年,您可以有效地訓練模型以適應當前季節。您還可以根據季節手動設定不同加權季節模型的組合。
有時模型需要保證某些情況下的特定行為。將專家知識注入模型學習是實現這一目標的一種方法,但是具有可以覆蓋訓練模型的輸出的單獨規則模型是更透明的解決方案。
雖然某些模型可以更新,但許多演算法都可以健忘。很久以前的資料在確定模型引數方面的作用越來越小。這有時是可取的,但很難適當調整遺忘率。
另一種方法是重新訓練模型,從頭開始構建新模型。這使您可以使用適當的資料取樣(和評分)策略,以確保新模型在過去和最近資料的正確組合上進行培訓。
現在,管理過程看起來更像這樣:
管理多個機器學習模型
假設您現在想要連續監視和更新/重新訓練整組模型。您可以採用與單模型案例相同的方式處理此問題,但如果使用多個模型,則會出現與介面和實際管理相關的問題。如何將許多模型的狀態傳達給使用者並讓她與他們互動,誰控制所有這些流程的執行?必須有所有模型的儀表板檢視,這些模型具有管理和控制單個模型的功能。
大多數工作流工具允許將其內部作為服務公開,因此您可以設想一個單獨的程式,以確保正確呼叫您的個人模型管理過程。您可以構建單獨的應用程式,也可以使用現有的開源軟體來協調建模工作流程,監督這些流程並總結其輸出。
當您將它們分組到不同的模型系列中時,管理大量機器學習模型會變得更加有趣。您可以類似地處理預測非常相似行為的模型。如果您經常需要新模型,這將特別有用。當模型相似時,您可以透過從系列中的現有模型初始化新模型來節省時間和精力,而不是從頭開始或僅在隔離的過去資料上訓練新模型。您可以使用最相似的模型(由物件的某些相似性度量確定)或混合模型進行初始化。
模型管理設定現在看起來像這樣:
如果您充分抽象模型系列之間的介面,您應該能夠隨意混合和匹配。這允許新模型重用負載,轉換,(重新)培訓,評估和部署策略,並以任意方式組合它們。對於每個模型,您只需要定義在此通用模型管理管道的每個階段中使用哪些特定的流程步驟。
看一看:
部署模型可能只有兩種不同的方式,但有十幾種不同的方式來訪問資料。如果您必須將其拆分為不同的模型流程系列,那麼最終會有超過一百種變體。
機器學習模型工廠
機器學習模型管理的最後一步是跳轉到建立模型工廠。例如,這可以透過僅從上面定義各個部分(處理步驟)並以在配置檔案中定義的靈活方式組合它們來完成。然後,每當有人想要稍後更改資料訪問或首選模型部署時,您只需要調整該特定流程步驟,而不必修復使用它的所有程式。這是一個夢幻般的節省時間。
在這個階段,將評估步驟分為兩部分是有意義的,即計算模型得分的部分和決定如何處理該部分的部分。後者可以包括處理冠軍/挑戰者場景的不同策略,並且與您計算實際得分的方式無關。
然後,將模型工廠投入使用實際上很簡單。配置設定定義每個模型管道使用每個過程步驟的化身。對於每個型號,您可以自動比較過去和當前的效能並觸發重新訓練和更新。本白皮書中詳細介紹了有關企業擴充套件模型流程的內容。
這是很多資訊,但資料科學家可以掌握每個級別,因為他們必須。今天的大量資訊很快就會顯得微不足道。我們現在必須開發出可靠,可靠的管理實踐,以處理日益龐大的資料量和隨之而來的大量模型,以最終理解它。
本文摘自資訊世界,作者Michael Berthold,KNIME創始人,由碼上打卡團隊編譯,如有錯誤,請聯絡修改。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2386131/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何改進手上的機器學習模型機器學習模型
- 機器學習模型機器學習模型
- 欺騙機器學習模型機器學習模型
- 機器學習導圖系列(5):機器學習模型及神經網路模型機器學習模型神經網路
- 如何管理資料模型與業務模型之間對映?模型
- 機器學習之模型選擇機器學習模型
- 機器學習之模型診斷機器學習模型
- 機器學習之模型評估機器學習模型
- 機器學習——決策樹模型機器學習模型
- 【機器學習】--隱語義模型機器學習模型
- 《機器學習_05_線性模型_最大熵模型》機器學習模型熵
- 如何解決機器學習樹整合模型的解釋性問題機器學習模型
- 從預處理到部署:如何使用Lore快速構建機器學習模型機器學習模型
- 如何使用Swift在iOS 11中加入原生機器學習視覺模型SwiftiOS機器學習視覺模型
- 機器學習模型的特性總結機器學習模型
- 機器學習引數模型與非引數模型/生成模型與判別模型機器學習模型
- 如何建立企業級別的機器學習模型伺服器?- kdnuggets機器學習模型伺服器
- 分散式機器學習中的模型聚合分散式機器學習模型
- 機器學習中的模型和資料機器學習模型
- 機器學習和統計模型的差異機器學習模型
- 如何對SAP Leonardo上的機器學習模型進行重新訓練機器學習模型
- 如何用Python和機器學習訓練中文文字情感分類模型?Python機器學習模型
- 從模型到部署,教你如何用Python構建機器學習API服務模型Python機器學習API
- 如何為機器學習進行資料標籤、版本控制和管理機器學習
- 機器學習之隱馬爾可夫模型機器學習隱馬爾可夫模型
- 機器學習 第6篇:線性模型概述機器學習模型
- 6分鐘瞭解所有機器學習模型機器學習模型
- 分散式機器學習中的模型架構分散式機器學習模型架構
- 機器學習 基本概念,常用經典模型機器學習模型
- 如何使用網路圖構造進度管理模型(轉)模型
- 一文講述如何將預測正規化引入到機器學習模型中機器學習模型
- 如何學習機器學習機器學習
- 機器學習之使用sklearn構建據類模型,並且評價模型機器學習模型
- 機器學習 | 深入SVM原理及模型推導(一)機器學習模型
- 機器學習之邏輯迴歸:模型訓練機器學習邏輯迴歸模型
- 談談機器學習模型的可解釋性機器學習模型
- 機器學習入門(二) — 迴歸模型 (理論)機器學習模型
- 機器學習——決策樹模型:Python實現機器學習模型Python