機器學習模型部署都有哪些坑?劍橋研究者梳理了99篇相關研究



來源:機器之心

本文約2500字,建議閱讀6分鐘在生產環境中部署機器學習模型是一個複雜的過程,需要考慮諸多因素,也存在很多挑戰。近日,來自劍橋的研究者梳理了該流程常見的問題。

近年來,機器學習在學術研究領域和實際應用領域得到越來越多的關注。但是,在生產系統中部署機器學習模型存在許多問題和擔憂。近日,來自劍橋的研究者做了一項調查,綜述了在各個用例、行業和應用中部署機器學習解決方案的報告,並提取了機器學習部署工作流程各階段需要實際考量的因素。

論文地址:

https://arxiv.org/pdf/2011.09926.pdf

該調查表明,機器學習從業者在部署模型的每一個階段都面臨挑戰。該論文的意義是制定研究議程,以探索解決這些挑戰的方法。

該調查主要考慮了三種類型的論文:

  • 用例研究型論文:這類論文提供單個機器學習部署項目的經過,通常會深入討論作者面臨的每個挑戰以及克服方式。

  • 綜述文章:這類文章描述了機器學習在特定領域或行業中的應用,通常總結了在所涉及領域中部署機器學習解決方案最常遇到的挑戰。

  • 經驗總結型論文:作者通常會回顧他們在生產中部署機器學習模型的經驗。

爲確保本次調查聚焦當前挑戰,劍橋大學研究人員僅考慮近 5 年發表的論文,只有少數例外。此外,他們還引用了其他類型的論文,例如實踐指導報告、訪談研究、規則制度。需要注意的是,該論文沒有進行新的訪談。

機器學習部署流程

該論文使用 Ashmore 等人 [14] 提出的機器學習部署工作流程定義。根據該定義,在工業環境中開發 ML 解決方案的過程包含 4 個階段:

  • 數據管理:重點是準備構建機器學習模型所需的數據。

  • 模型學習:模型選擇和訓練。

  • 模型驗證:確保模型符合特定功能和性能要求。

  • 模型部署:將訓練好的模型集成到運行模型所需的軟件基礎架構中。此階段還涵蓋模型維護和更新的問題。

以上每個階段還可以進一步細分。但需要注意的是其順序與現實場景未必完全相符,這些階段並行執行或存在反饋循環是很正常的。

本文探討了每個階段會出現的常見問題,以及會對各階段帶來影響的跨領域問題,參見下表:

數據處理

數據是任何機器學習解決方案中不可或缺的部分,訓練和測試數據對解決方案整體效果的影響不比算法少。創建高質量數據集通常是生產級機器學習流程的第一步。該論文介紹了數據管理的四個步驟:數據收集、數據預處理、數據增強和數據分析。

數據收集

數據收集旨在發現和了解可用數據,以及組織數據的存儲結構。發現和尋找數據本身就是一項挑戰,特別是在大型生產環境中。查找數據源並瞭解其結構是主要任務,對於後續數據科學家開展實際應用開發具有重要作用。

數據預處理

預處理步驟通常涉及一系列數據清洗步驟:插補缺失值、將數據縮減爲有序且簡化的形式、從原始格式映射爲更便於處理的格式。

數據增強

數據增強的原因有多種,其中最重要的原因之一是數據缺少標籤。現實世界中的數據通常沒有標籤,缺少標註數據的可能因素有三個:專家訪問受限、缺乏高方差(high-variance)數據、數據量過大。

數據分析

數據分析旨在發現數據中的潛在偏差或意外分佈。高質量工具對於任何類型的數據分析都至關重要,其中數據剖析(data profiling)的可視化是極具挑戰性的。

模型學習

近年來,機器學習方法的研究傾向於在模型學習階段更好地選擇和使用各種模型和方法。六年來,機器學習頂會 NeurIPS 的論文提交量翻了兩番,從 2014 年的 1678 篇到 2019 年的 6743 篇。儘管如此,模型學習階段仍然受到許多實際因素的影響。本文主要闡明瞭與模型選擇、訓練和超參數選擇 3 個步驟有關的問題。

模型選擇

在許多實際例子中,模型選擇通常取決於模型的一個關鍵特性:複雜度。儘管深度學習和強化學習在研究界越來越受歡迎,但實際情況中往往會選擇比較簡單的模型。常用的模型包括:淺層網絡架構,基於 PCA 的簡單方法、決策樹、隨機森林。

訓練

模型訓練最受關注的問題之一是因計算資源導致的經濟成本。在自然語言處理(NLP)領域,儘管單個浮點運算的成本在降低,但訓練 NLP 模型的總成本卻在增長。Sharir 等人選擇 SOTA 模型之一 BERT 進行實驗,結果發現根據所選模型的大小,完整訓練過程的經濟成本可能在 5 萬到 160 萬美元不等,而這是大多數研究機構甚至企業無法承受的。此外,訓練數據集的大小、模型參數的數量和訓練過程中用到的操作數量都會對總成本產生影響。值得一提的是,模型參數量是尤其重要的影響因素:新的 NLP 模型已經達到了數十億的參數量,未來這一數字還可能進一步增加。

超參數選擇

除了在訓練過程中學習到的參數以外,許多機器學習模型還定義了一些超參數。超參數優化(HPO)是選擇這些超參數最佳集合的過程。大多數 HPO 技術涉及機器學習模型的多個訓練週期。此外,HPO 任務的規模隨着每個新的超參數呈指數式增長,因爲它爲搜索空間增加了新的維度。正如 Yang 和 Shami 所說,這些考慮因素使 HPO 技術在實踐中非常昂貴且耗費資源,尤其是對於深度學習的應用而言。即使 Hyperband 和貝葉斯優化這類專門設計用來最小化所需訓練週期的方法,由於模型複雜度和數據集大小等問題,有些問題仍然無法解決。

模型驗證

模型驗證階段的目標是多方面的,因爲機器學習模型應該很好地泛化到未見過的輸入,顯示出對邊緣情況的合理處理和整體魯棒性,並滿足所有的功能需求。該論文討論了與模型驗證中的三個步驟——需求編碼、形式驗證和基於測試的驗證有關的問題。

需求編碼

定義機器學習模型的需求是測試活動的關鍵前提,但實際情況中經常會發現模型性能提升並不能轉換爲商業價值的增益。

形式驗證

形式驗證是指驗證模型功能是否符合項目範圍內所定義的要求。這類驗證包括對其正確性的數學證明,也可以包括輸出誤差範圍的數值估計,但是這種情況實際上很少發生,往往是通過廣泛的監管框架形式化設置高質量標準。

基於測試的驗證

基於測試的驗證旨在確保模型能夠很好地泛化到未見過的數據。儘管收集驗證數據集通常不是問題,但對於生產部署而言這可能還不夠。

模型部署

在生產環境中運行的機器學習系統是複雜的軟件系統,需要根據時間的變化進行維護。這給開發人員帶來了新的挑戰。其中一些挑戰在運行常規軟件服務時也存在,而有些挑戰則是機器學習特有的。

模型集成

模型集成步驟包括兩個主要活動:構建運行模型的基礎架構,以可使用和支持的形式實現模型。前者幾乎是完全屬於系統工程的主題,後者則屬於機器學習領域,它揭示了機器學習與軟件工程交集中的重要問題。

模型監測

模型監測是維護機器學習系統方面的問題之一。社區正處於理解待監測數據和模型的關鍵指標以及如何啓動警報的早期階段。監測不斷變化的輸入數據、預測偏差和機器學習模型的整體性能是一個尚未解決的問題。

該論文強調的另一個維護問題與數據驅動決策有關,即反饋循環。生產級機器學習模型可以通過定期的再訓練影響自己的行爲。在確保模型保持最新狀態的同時,我們可以創建反饋循環,即調整模型的輸入以影響其行爲。

模型更新

模型完成初始部署後,通常還需要更改,以確保模型始終反映數據和環境的最新趨勢。有多種技術可以使模型適應新數據,包括按計劃定期再訓練和持續學習。但在生產環境中,模型更新會受到多種實際因素的影響。

編輯:於騰凱

校對:林亦霖


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章