MLSys 2020提前看:多面瞭解機器學習系統標準、加速方法和應用場景

機器之心分析師發表於2020-03-30

機器學習本質上是一系列的數值計算。當需要計算的資料量很大或者計算模型很大時,就需要設計一個合適的平臺來進行這種計算。機器學習系統就是針對此方面的研究,目的在於開發一類特殊的系統,用於支援和部署機器學習模型。MLSys 會議正是來解決機器學習和計算機系統之間的交叉問題。首屆會議於 2018 年在史丹佛舉辦,吸引了學界和業界的廣泛關注,會議主要研究(1)設計支援機器學習的軟體系統;(2)設計硬體系統;(3)設計系統以滿足精度以外的其他需求,諸如隱私,安全,公平性等。

在本篇提前看中,我們從不同的角度選擇三篇文章。其中,第一篇文章對機器學習系統制定了一套具備一般性的工業衡量標準,第二篇文章從模型部署層面對機器學習模型進行加速,主要解決瓶頸是特徵計算的問題,第三篇文章則針對一個特定應用場景——大量依賴隱私資料的機器學習任務設計了一個權衡隱私傳輸與模型效果的系統。

論文列表:

  1. MLPerf Training Benchmark
  2. WILLUMP: A Statistically-Aware End-To-End Optimizer ForMachine Learning Inference
  3. Privacy-Preserving Bandits

MLPerf Training Benchmark

論文連結:https://arxiv.org/pdf/1910.01500.pdf

Github 連結:https://github.com/mlperf/training

引言

日趨複雜的機器學習演算法和龐大的資料量對真正執行模型的系統提出了一系列的挑戰,在這篇文章的工作之前,業界尚未存在一套針對機器學習系統具備工業級別的衡量標準。然而,縱觀各個領域的發展,這樣的一套標準不僅能起到具有說服力的比較效果,更能促進創新,推動科研和工業界的發展。由此,來自谷歌,百度,史丹佛大學,哈佛大學等眾多業界和學界的研究人員共同合作,克服了在衡量機器學習系統的各種獨特難題,定義了一套衡量基準 MLPerf。

該論文總結分析了衡量訓練機器學習的系統的各種挑戰,針對各種機器學習任務(如:影像分類目標檢測機器翻譯強化學習等)給出不同的衡量標準,並附有詳細的使用指南。

設計難點

一個訓練機器學習的系統的工作流程抽象而言就是:系統輸入端接受選定的資料集,優化器,模型,然後在系統上執行該模型直到模型質量(比如:圖片分類的精確度)達到預期水平。選擇一個系統,便要在訓練後的模型質量和系統各方面的表現之間做出權衡。

那麼,衡量訓練機器學習的系統相較於一般的計算機系統,有哪些獨特的挑戰呢?

  1. 系統優化對系統表現與模型質量的不同影響。系統層面的優化可能在短期提高系統的表現效能,卻會最終傷害到訓練的模型的質量。這就要求,系統必須執行完整個訓練過程才能判斷模型是否達標,而不能只根據短時間的吞吐量進行優劣評估。
  2. 並行化訓練規模的雙重影響。在大型分散式計算場景中,為了增加資料並行度和系統利用率,常常使用大的批量規模(batchsize)。這反過來要求調整模型的優化引數來保證模型效能,比如學習率(learning rate)。而這些引數的調整卻可能對模型訓練時間帶來負面影響。簡言之就是,大批量規模減少了每次訓練的時間,卻增加了所需的訓練次數。
  3. 模型中的隨機性引起的系統表現的差異。即使是相同的模型和超引數,在不同的訓練會話(session)中也可能需要不同的迭代次數以達到相同的準確度。這些差異為可信地比較系統表現帶來了挑戰。
  4. 不同的軟體環境的影響。不同軟體框架,不同的數學計算表達,程式設計介面等諸多因素都可能影響一個系統的表現。

相關文章