OpML 2019提前看:模型表現預測與分散式機器學習

zhangsushen發表於2019-05-20
OpML 2019 全稱是 2019 USENIX Conference on Operational Machine Learning,將於 2019 年 5 月 20 號在美國加州的 Santa Clara 舉辦。會議旨在提供科研人員和產業從業者一個交流合作的平臺,為機器學習生產生命週期管理的普遍挑戰開發並帶來有影響力的研究進展和前沿解決方案。

本文從 OpML2019 中選擇了兩篇提前釋出在 arXiv 上面的文章進行分析。由於會議限制只有在會議開辦(5 月 20 號)以後才公佈文章,所以目前公開的只有這兩篇文章。本文將著重討論這兩篇文章:

  1. MPP:Model Performance Prediction

  2. TonY:An Orchestrator for Distributed Machine Learning Jobs

論文 1:MPP:Model Performance Prediction

連結:https://arxiv.org/pdf/1902.08638.pdf

1)作者簡介:

本篇文章的作者皆來自 ParallelM。ParallelM(https://www.parallelm.com)是一家幫助工業界在生產環境使用機器學習演算法的公司。其突出產品 MCenter 是一個幫助工業界使用、管理生產過程中機器學習演算法的軟體。MCenter 可以直接匯入寫好的機器學習演算法,將資料連結,即可在演算法可能出現問題的時候進行預警。內建的管理系統可允許演算法迭代並且根據管理規定篩選演算法。因此,工業界亟需能夠判別機器學習系統工作效能的演算法,而本文正是介紹了這一演算法。由於是公司產品,所以文章並沒有給出原始碼的連結。

2)文章背景介紹:

機器學習模型在工業界有著廣泛的應用。一般來說,研發者會針對一個工業問題使用許多的模型進行預測,並將表現最優秀的模型用於生產。然而,機器學習模型的表現好壞多由訓練資料與生產過程中收到的資料決定,模型的泛化力不同,根據收到的資料不同,預測效果也好壞不一。因此,如何選擇適合的模型、如何預測模型是否會失效、模型的準確度如何,都是工業生產過程中遇到的問題。

同時,生產中的資料多根據外界環境的變化而有敏銳的改變,因此最適合某一刻工業生產的機器學習模型也需要不斷更新。而這一過程如果由人力來操作是複雜的、笨重的、遲緩的,因此最好是由自動化的演算法實現。工業生產中的資料往往沒有標註,因此傳統的將預測結果和標註對比的方式並不能預測生產過程中機器學習模型的準確度。而本文推崇的 MPP(Model Performance Prediction)演算法,可以解決這一生產中的實際問題。

3)文章概述:

文章提出了 MPP 演算法用於跟蹤產業中使用的機器學習模型演算法的準確度,並將預測的準確度打分。預測的過程包括分類和迴歸,主要的打分目標為準確度和 RMSE 誤差。演算法將原機器學習演算法的誤差值作為訓練目標,用於預測生產過程中使用的機器學習演算法是否還有準確的效能。結果顯示 MPP 演算法有較好的預測能力。因此,MPP 演算法有潛力防止災難性預測值的出現並幫助資料科學家們對生產資料進行深度解析。

4)文章詳解:

使用一個模型來預測另一個模型的準確度在 2013 年已由 Sheridan [1] 提出,Sheridan 使用了一個隨機森林來預測另一個隨機森林在特定場景下的符合度。2014 年 Balasubramanian et. al. [2] 在書中提出使用共型預測因子(Conformal Predictions)框架測量機器學習演算法的置信度。2019 年,Ghanta et. al. [3] 發明了指標來測量了訓練數集和測試數集之間資料規律的差異。這些工作都為本文的 MPP 演算法的奠定基礎。

工作原理:

MPP 演算法的訓練資料集由原機器學習演算法的預測誤差資料組成。原機器學習演算法在訓練資料集上進行訓練,在測試資料集上進行原演算法的預測,併產生與標籤值的誤差,此誤差將輸入 MPP 演算法作為標籤,MPP 演算法的特徵可包括但不限於原機器學習演算法的特徵、原演算法輸出的概率、或原機器學習模型的特徵值(例如隨機森林的樹的個數)等。MPP 模型對兩種問題進行了預測,分類問題和迴歸問題。對於分類問題,MPP 將輸出二分類的答案,即分類準確(1)和不準確(0)。對於迴歸問題,演算法定義了一個閥值,凡是在原機器學習演算法的標籤值±ε 之內即為準確(1),反之輸出不準確(0)。閥值通過 Null model 計算,Null model 是一個由隨機生成樣本組成的模型,模型一些樣本是由樣本分佈決定,另一些是包含了隨機生成變數的樣本,用來在引數不確定的情況下模擬一個隨機的過程。

演算法效果:

文章使用了多個資料集對 MPP 演算法的效能進行測試,測試結果展示在表 1 和表 2 中。表 1 展示的是在分類問題上 MPP 的效能,第一列 Primary Algorithm Error 顯示的是原本的機器學習演算法分類得出的錯誤率,第二列是由 MPP 演算法預測出的錯誤率,第三列是兩者之間的誤差。從表中我們可以看出,MPP 演算法在一些資料集上有很強的預測性,可以較為準確的測量出機器學習演算法的錯誤率。

本文用到的資料集由以下幾個組成:Samsung、Yelp、Census、Forest、Letter。Samsung 的資料集來自文獻 [4],資料來自 30 位 19-48 歲腕式智慧手機使用者的日常活動,由手機內部的慣性探測器記錄。資料記錄的活動包括站立、坐、躺、行走、上樓梯、下樓梯等組成。原始資料記錄的內容包括重力加速度、身體加速度、身體角速度等,資料集將原始資料進行特徵對映從而分類出人類活動的內容。Yelp 的資料集來自 [5],是一個公開給機器學習社群實驗的資料集。資料集包括 Yelp 上面的圖片以及使用者的評價的文字資訊,原文沒有詳解分類資訊的內容是圖片還是評價。Census 資料集來自 [6],資料是由 Barry Becker 在 1996 年從 1994 年的人口普查資料中提取出來關於 16 到 100 歲之間的人口的年齡、工作型別、受教育程度等資訊,目標是預測某人年薪是否在 50k 以上。Forest 資料集來自 [7],資料集採集了北科羅拉多州的盧瑟福國家公園的森林覆蓋種類,此處的森林有較少的人為入侵。資料集將森林 30x30 米的塊狀區域,覆蓋種類由美國森林服務部(USFS)的資源資訊系統(RIS)決定,特徵變數包括是否野生區域、土壤種類等組成,資料來自美國地理普查(USGS)和美國美國森林服務部。Letter 資料來自 [8],資料集包括英語 26 個大寫字母的黑白圖片,圖片包括 20 種不同的字型,並將 20 種字型隨機扭曲,形成 20000 個獨特的圖片資料,特徵資料以 1-15 衡量圖片的統計動量、邊的個數等,目標是辨識圖片是哪個英文字母。

OpML 2019提前看:模型表現預測與分散式機器學習

表 1:MPP 在分類問題上的效能(摘自原文)

同樣在迴歸問題的效能上,文章也做了分析,結果在表 2 中可見。對於大部分資料集(除 Turbine 外),MPP 演算法都有較好的預測功能。迴歸問題使用了不同的資料集,包括 Facebook、Songs、Blog、Turbine、和 Video。Facebook 資料集由 [9] 獲取,資料集包括了使用者在 Facebook 上評論的資訊,目標是預測在 Facebook 狀態發出後的 H 小時之內,會收到多少的評論資訊。Songs 資料集由 [10] 獲取,資料包括自 1922 年至 2011 年的商業歌曲的音訊特徵,目標是預測歌曲是在那一年釋出的。Blog 資料集來自 [11],資料集通過部落格的文字資料預測會有多少條評論資料。Turbine 資料集來自 [12],資料集通過軟體模擬的渦輪資料預測渦輪所需的維修程度。Video 資料集來自 [13],資料集使用視訊的特徵資料用來推斷視訊所需的轉碼時間,且預測不需要輸入解碼器的種類。

OpML 2019提前看:模型表現預測與分散式機器學習

表 2: MPP 在迴歸問題上的效能(摘自原文)

5)文章亮點:

  • 文章提供了一種非常新穎的機器學習的應用,即使用機器學習模型預測原機器學習模型的準確度。雖然在演算法層面上並沒有新的技術,僅僅是將標籤資料集更改為原機器學習演算法的誤差,但是在思路上還是非常原創的、新穎的。

  • 文章所提出的內容有潛力解決生產中的實際問題。雖然現在有大量的文獻在發明使用新的機器學習演算法,但是如何將這些演算法落地實用至工業界,在從學術成果轉化到實操上,還有很多問題。其中演算法能否保持在測試資料上的準確度就是一個問題。本文的 MPP 演算法為機器學習演算法的應用上了雙保險,保證了機器學習演算法在資料變化的時候可以提前預知,從而幫助使用機器學習的公司進行更加精確的資料管理

  • 文章非常切合 ParallelM 公司的運營目標,即為正在執行中的機器學習演算法提供管理維護的服務。通過新的機器學習演算法 MPP 預測的值,可以幫助執行機器學習的公司更好地掌控自己演算法的準確度。

6)分析師見解:

其一,文章雖然給出了關於原演算法錯誤率與 MPP 預測錯誤率之間的絕對誤差,但是沒有詳細地解釋絕對誤差的大小對一個工業系統所造成的影響是什麼,多大的誤差會影響一個工業流程的正常執行。例,在表 1 中的分類問題的誤差中,使用 Census 資料集,誤差已經達到 0.15,這個誤差是否太大文中沒有具體討論,只是給了相應的數字。當然,如果要判別多大的誤差是可以接受的,則需要很詳細的內容擴充,也需要很強大的理論支援,文章由於篇幅的限制沒有深入討論也是可以理解的。

其二,文章對訓練資料的規模大小沒有詳細的說明。因為工業界的資料有可能規模也不小,MPP 演算法對規模大小的敏銳度文章並沒有說明。

其三,文章所提出的演算法在工業界的應用是一個預警系統的前身,所謂的預警系統,即是能夠在原機器學習演算法計算出錯誤的預測前提出警告。如果要實現這一功能,演算法的速度非常重要,MPP 演算法能否在原機器學習演算法給出錯誤預測前即給出預警還是不知道的,從訓練的複雜度來看,MPP 演算法的複雜度也許和原機器學習演算法是相當的,如果不能在速度上佔優,則很難成為預警器。

其四,如何選擇 MPP 演算法的輸入特徵文中並沒有詳細的討論,僅僅是提出了一些可能被用作特徵的值,對於 MPP 演算法使用了哪些特徵而得到較好的結果文中並沒有討論。

可以理解的是,由於文章是會議文章,有篇幅限制,且在研究這個想法的初級階段,所以沒有進行詳細討論。如果由更多論文在以上四個層面進行分析,將更有助於理解這一新穎的技術。

論文 2:TonY:An Orchestrator for Distributed Machine Learning Jobs

連結:https://arxiv.org/pdf/1904.01631.pdf

1)作者簡介:

所有的作者均來自於領英(LinkedIn)公司。領英是世界上最大的職業網路平臺,功能包括人脈連結、工作匹配、資訊釋出等。領英擁有 6.1 億的使用者,使用者橫跨世界上 200 多個國家,因此,領英的資料庫是巨大的,處理起資料是困難的,並且需要平行計算。

2)文章背景介紹:

最近的幾十年中,由於網路資料的大規模累計,計算機科技已經進入大資料時代,傳統的大資料處理系統,包括 MapReduce、Hadoop、Spark,已經可以允許 PB 級別的資料被儲存並使用與機器學習。LinkedIn 公司的許多網站功能都是由機器學習演算法支援的,包括朋友推薦(People You May Know),求職推薦(Job Recommendations),新聞(News Feed),和學習建議(Learning Recommendations)。這些演算法背後的資料已經累計到非常大的規模。最簡單地,在一個機器上處理資料會受到單臺機器容量的限制,因此單機很難運算 PB 級別的資料。如果要大規模化訓練資料,需要將資料分散到幾個機器上,即並行運算。

大多數機器學習框架提供並行運算的 API,但需要在每個主機上覆製程式、設定環境變數,然後在每個主機上開啟訓練程式。這個雜亂的過程會帶來一些挑戰:

  • 資源競爭:當機器學習演算法工程師競爭一個管理不善的計算機池中的機器時,他們會爭奪同一個記憶體、CPU、GPU。在分配算力和記憶體不當的時候,會產生執行錯誤,導致專案失敗。

  • 配置繁瑣且易出錯:設定分散式訓練需要將配置複製到所有主機,驗證配置成功、更新配置是個繁瑣艱難的過程。

  • 缺乏監控:程式執行時,由於分配在不同的主機上,很難監控全域性進展。

  • 缺乏容錯能力:瞬態錯誤很難除錯,需要手動啟動

本文針對這些挑戰與缺陷設計了開源系統 TonY,這是一個與叢集排程器互動以啟動和管理分散式訓練作業的協調器。

3)文章概述:

TonY(distributed Tensorflow on Hadoop YARN)是一款由 LinkedIn 開發的分散式機器學習排程處理器,很好地解決了在分散式運算中常見的如資源分配不合理、配置困難等問題。

4)文章詳解:

TonY 架構:

TonY 由用於向排程程式提交作業的客戶端和在排程程式中執行的應用程式組成。使用者使用客戶端提交他們的機器學習專案,然後由 TonY 的排程程式分配資源、設定配置,並以分散式方式啟動機器學習專案。客戶端介面是通用的,因此可支援向多個排程程式提交專案。在無需使用者更新演算法或向客戶端提交程式碼的情況下,排程程式可以自行更改配置並實現資源重新分配。作為初級的演算法實現,本文使用了 Hadoop YARN、分散式 Tensorflow 執行此專案,這些是 LinkedIn 常用的資料處理工具。圖一展示了 TonY 程式的架構。

OpML 2019提前看:模型表現預測與分散式機器學習

圖 1: TonY 的架構

TonY 客戶端:

客戶端是 TonY 提供的調配分散式機器學習專案的庫,使用者將所需要用到的資源寫進 XML 檔案,例如 Tensorflow 使用者可以寫引數伺服器例項數量、每例項所需記憶體和 GPU 數量。使用者也可以改變基礎調配程式的配置、提供機器學習程式的路徑、Docker 映象、叢集上執行的虛擬環境等。

TonY 叢集應用:

TonY 客戶端會將使用者輸入的配置、程式、虛擬環境進行打包提交給叢集排程器。排程器會根據不同的需要配置 GPU 或 CPU 容器。在每個容器裡面由任務執行器分配埠與排程器互動,排程器收到所有任務執行器的資訊後將設定全域性叢集引數、傳送給各個執行器,並開始執行任務。執行器將監督任務程式並在結束時候向排程器報告。整個過程中 UI 會將進度報告給使用者。如果出現任務失敗,TonY 系統可以自動停止剩下的任務,並重新設定容器,還原配置,然後自失敗的節點開始繼續訓練模型。

5)文章亮點:

  • 文章是領英公司在分散式資料處理系統上的一個新產品,作為例子使用了公司內部常使用的 Tensorflow 以及 Hadoop YARN 進行調配。此產品在資源分配上是先進的,處理了很多分散式執行機器學習演算法時所遇到的問題。

  • 此產品在使用上是簡潔的,使用者只需一次性輸入配置要求,TonY 會自行和排程器互動保證分配到合適的資源。

  • 文章所描述的程式的另一優點是它是開源的,所以其他的機器學習專案也可以使用此程式進行分散式運算時候的管理,希望在開源的情況下,系統能夠進一步被完善。

6)分析師見解:

因為文章沒有給出程式碼連結,所以在演算法的實現上沒有太多點評,我們完全可以假設由 LinkedIn 這樣的大公司開發出的程式碼是高效的。關於實操起來這個系統是否好用,需要推廣後由各個使用者來反饋。

這個系統目前還在進一步的更新中,新的系統將能夠收集有關專案效能和資源利用率的指標,並在 UI 中進行彙總分析,並提出提高效能及資源利用率的新配置。如果這一功能達成,我們可以期待會有更多的使用者開始使用 TonY 進行專案管理。然而,這個排程系統是否能夠被廣泛的商業化還依賴於更多的宣傳和效能的提高。

分析師簡介:劍橋大學人工智慧領域在讀博士生,主要攻克方向為人工智慧的優化演算法。是一位在人工智慧領域的探索者,希望永遠保持小隊長的心態,對世界好奇,對人工智慧樂觀,帶領大家一起探索人工智慧這個蓬勃發展的領域。

第一篇論文引用:

[1.]Robert P. Sheridan. Using random forest to model the domain applicability of another random forest model. Journal of Chemical Information and Modeling, 53(11):2837–2850, 2013.

[2.]Vineeth Balasubramanian, Shen-Shyang Ho, and Vladimir Vovk. Conformal Prediction for Reliable Ma- chine Learning: Theory, Adaptations and Applications. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1st edition, 2014.

[3.]Sindhu Ghanta, Sriram Subramanian, Lior Khermosh, Swaminathan Sundararaman, Harshil Shah, Yakov Gold- berg, Drew Roselli, and Nisha Talagala. Ml health: Fit- ness tracking for production models. arXiv:1902.02808, 2019.

[4.]Davide Anguita, Alessandro Ghio, Luca Oneto, Xavier Parra, and Jorge L. Reyes-Ortiz. A public domain dataset for human activity recognition using smart- phones. 21th European Symposium on Artificial Neu- ral Networks, Computational Intelligence and Machine Learning, ESANN, pages 1–15, 2013.

[5.]Yelp Dataset. https://www.yelp.com/dataset_ challenge/, 2013.

[6.]Ronny Kohavi and Barry Becker. UCI machine learn- ing repository. "https://archive.ics.uci.edu/ ml/datasets/Census+Income, 1996.

[7.]Jock A. Blackard, Denis J. Dean, and Charles W. Anderson. UCI machine learning repository. https:// archive.ics.uci.edu/ml/datasets/Covertype (http://archive.ics.uci.edu/ml/datasets/Covertype), 1998.

[8.]David J. Slate. UCI machine learning repository. https://archive.ics.uci.edu/ml/datasets/Letter+Recognition, 1991.

[9.]Kamaljot Singh. Facebook comment volume prediction. International Journal of Simulation- Systems, Science and Technology- IJSSST V16, January 2016.

[10.]T. Bertin-Mahieux. UCI machine learning repository. http://archive.ics.uci.edu/ml/datasets/ YearPredictionMSD, 2011.

[11.]K. Buza. Feedback prediction for blogs. in data analysis, machine learning and knowledge discovery. Springer International Publishing, pages 145–152, 2014.

[12.]Andrea Coraddu, Luca Oneto, Alessandro Ghio, Stefano Savio, Davide Anguita, and Massimo Figari. Machine learning approaches for improving condition based maintenance of naval propulsion plants. Journal of En- gineering for the Maritime Environment, –(–):–, 2014.

[13.]T. Deneke, H. Haile, S. Lafond, and J. Lilius. Video transcoding time prediction for proactive load balancing. In Multimedia and Expo (ICME), 2014 IEEE Interna- tional Conference on, pages 1–6, July 2014.

相關文章