對數據科學家來說,給數據打上標簽并開發出一個準確的機器學習模型是很困難的,而且在生產中管理模型也可能會更加令人生畏。識別模型漂移、通過更新數據集來對模型進行再訓練、提高性能以及維護底層技術平臺都是重要的數據科學實踐。如果沒有這些規程,模型就可能會產生嚴重影響業務的錯誤結果。
開發出一個可用于生產的模型并非易事。根據一項機器學習的研究,55%的公司沒有將模型部署到生產當中,40%或更多的公司需要30天以上才能部署一個模型。而即使成功也會帶來新的挑戰,41%的受訪者承認了機器學習模型的版本控制和再現性的困難。
這里的教訓是,一旦機器學習模型被部署到生產中并在業務流程中被使用,新的障礙就又會出現。
模型管理和操作曾經是更先進的數據科學團隊的挑戰?,F在的任務則還包括了監控生產機器學習模型的漂移,自動再訓練模型,當漂移顯著時發出警報,以及識別模型何時需要被升級。隨著越來越多的組織投資于機器學習,建立模型管理和操作的意識就變得越來越有必要了。
好消息是,諸如開源的MLFlow和DVC等平臺和庫,以及來自Alteryx、Databricks、Dataiku、SAS、DataRobot、ModelOp等的商業工具,正在使數據科學團隊的模型管理和操作變得更加容易。公共云提供商也分享了一些實踐,比如Azure Machine Learning所提供的MLops。
模型管理和devops之間有一些相似之處。許多人將模型管理和操作稱為MLops,并將其定義為開發和維護機器學習模型所需的文化、實踐和技術。
理解模型管理和操作
為了更好地理解模型管理和操作,需要考慮軟件開發實踐與科學方法的結合。
作為一名軟件開發人員,你知道完成應用程序的版本并將其部署到生產環境中并非是一件易事。而且,一旦應用程序進入生產環境,一個更大的挑戰就開始了。最終用戶希望定期進行增強,底層基礎設施、平臺和庫也需要打補丁和維護。
現在讓我們轉向科學的世界,在那里,其問題也會導致多種假設和重復實驗。你在科學課上學會了維護這些實驗的日志,并能夠跟蹤從一個實驗到下一個實驗調整不同變量的過程。試驗會帶來更好的結果,記錄過程則有助于讓同事相信你已經探索了所有的變量,并且結果是可重復的。
使用機器學習模型進行實驗的數據科學家必須結合來自軟件開發和科學研究的學科。機器學習模型是用Python和R等語言開發的軟件代碼,使用TensorFlow、PyTorch或其他機器學習庫進行構建,運行在Apache Spark等平臺上,并被部署到了云基礎設施上面。機器學習模型的開發和支持需要大量的實驗和優化,數據科學家必須證明他們的模型的準確性。
像軟件開發一樣,機器學習模型也需要不斷的維護和增強。其中的一些可能來自維護代碼、庫、平臺和基礎設施,但是數據科學家還必須關注模型漂移的問題。簡單地說,當新的數據可用,而機器學習模型所提供的預測、聚類、分割和建議又偏離預期結果時,模型漂移就發生了。
成功的模型管理始于開發最佳模型
我與Alteryx的首席數據和分析官Alan Jacobson就組織如何成功地進行機器學習模型開發進行了交談。“為了簡化模型開發,大多數數據科學家所面臨的第一個挑戰是如何確保擁有一個強有力的問題表述。許多復雜的業務問題可以通過非常簡單的分析來解決,但這首先需要以數據和分析能夠有助于回答問題的方式來構建問題。即使使用了最復雜的模型,在這個過程中最困難的部分也通常是如何構建數據,并確保使用的正確輸入處于正常的質量水平。”
我同意Jacobson的觀點。太多的數據和技術實現是從糟糕的或沒有問題的陳述開始的,而且沒有足夠的時間、工具和專業知識來確保足夠的數據質量。組織必須首先從提出一個關于大數據的聰明的問題開始,投資于數據操作,然后使用數據科學中的敏捷方法來迭代解決方案。
監控機器學習模型的模型漂移
獲得一個精確的問題定義對于生產中的模型的持續管理和監控是至關重要的。Jacobson繼續解釋道:“監控模型是一個重要的過程,但想要正確地進行監控就需要對需要監控的目標和潛在的不利影響有深刻的理解。雖然大多數人討論的是監測模型的性能以及隨時間的變化,但在這個領域,更重要和更具挑戰性的是對意外結果的分析。”
理解模型漂移和意外結果的一個簡單方法就是考慮COVID-19對那些使用了大流行前的訓練數據所開發的機器學習模型的影響?;谌祟愋袨榈臋C器學習模型、自然語言處理、消費者需求模型或欺詐模式都受到了大流行期間不斷變化的行為的影響,而這些變化擾亂了人工智能模型。
隨著越來越多的組織開始獲得價值并使數據科學程序日趨成熟,技術提供商也正在發布新的MLops功能。例如,SAS引入了一個特征貢獻指數,能夠幫助數據科學家在沒有目標變量的情況下評估模型。Cloudera則于最近宣布了一項ML監控服務,它可以捕獲技術性能指標和跟蹤模型預測。
MLops還解決了自動化和協作的問題
在開發一個機器學習模型和在生產中監控它之間,還有一些額外的工具、流程、協作和使數據科學實踐能夠得以擴展的能力。一些自動化和基礎設施就像是devops,包括了適用于機器學習模型的基礎設施即代碼和CI/CD(持續集成/持續部署)。還有一些其他的開發人員的能力,例如使用底層培訓數據來對模型進行版本控制,以及搜索模型存儲庫。
MLops更有趣的一面是為數據科學團隊帶來了科學的方法和協作。例如,DataRobot啟用了一個冠軍-挑戰者模型,該模型可以并行運行多個實驗模型,以挑戰生產版本的準確性。SAS希望幫助數據科學家提高進入市場的速度和數據質量。Alteryx則于最近引入了Analytics Hub,以幫助數據科學團隊之間的協作和共享。
所有這些都表明,管理和擴展機器學習需要更多的紀律和實踐,而不是簡單地去要求數據科學家使用Python編寫和測試一個隨機森林、k均值或卷積神經網絡。
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。