1
| 本文作者: 楊曉凡 | 2017-08-10 09:15 |
雷鋒網 AI 科技評論按:IBM 研究院上傳了一篇論文到 arXiv,介紹了自己幾乎能夠達到理想性能的分布式深度學習軟件,它不僅帶來了優秀的溝通開銷,讓64臺IBM服務器上的256個英偉達GPU發揮出了95%的拓展效率,訓練時間和模型準確率也分別創下了新紀錄。完成這項研究的團隊負責人 IBM Fellow Hillery Hunter 也為此撰寫了一篇文章,介紹了這個軟件的更多信息。雷鋒網 AI 科技評論編譯如下。
深度學習是一種廣泛使用的人工智能方法,它可以讓計算機理解和提取畫面和聲音中的含義,人類世界對世界的大多數體驗也就是來自這兩種感官的。這樣的技術有潛力給生活中的方方面面帶來突破,小到手機上的app,大到醫學圖像診斷。但是如何提升深度學習的準確率和如何構建大規模的實用深度學習系統這兩個技術問題一直橫亙在人們面前,比如大型的、復雜的深度學習模型所需的訓練時間就需要幾天甚至幾周。
IBM 研究院中的一支團隊就一直專注于解決這樣的問題,他們的目標是降低用大規模數據集訓練大型模型所需的時間,最好能把訓練時間從幾天、幾小時,縮短到幾分鐘、幾秒,同時還要提高模型的準確率。這是非常宏大的挑戰,他們依靠在數量眾多的服務器和英偉達GPU上運行分布式深度學習來應對挑戰。
大多數熱門的深度學習框架都可以方便地從單個GPU拓展到同一個服務器內的多個GPU上,但是繼續拓展到多個服務器之間就不行了。IBM團隊(Minsik Cho, Uli Finkler, David Kung等人)就在這里施展拳腳,他們重新編寫了軟件和算法,讓大規模、復雜的計算任務可以在幾十個服務器中的上百個GPU之間自動并行并優化。

IBM 的軟件除了能夠讓不同服務器之間的訓練過程完全同步之外,它們的溝通開銷也非常小。從結果上看,當深度學習算法拓展到了超過100個英偉達GPU上以后,它在具有750萬圖像的 ImageNet-22K 數據集的圖像識別測試中創造了33.8%準確率的新紀錄,這項測試此前的最好結果是來自微軟的29.8%。在這項測試中得到4%的準確率提升是非常難得的,以往的各項研究所能帶來的提升往往都不到1%。IBM 開發出的分布式深度學習(distributed deep learning,DDL)方法不僅讓他們在準確率上得到了驚人的提升,在裝著上百個英偉達GPU的幾十臺服務器上訓練一個 ResNet-101 神經網絡需要的時間也只需要不到7個小時;微軟訓練同一個模型花了10天。正是靠著 DDL 代碼和算法解決了本來強大的深度學習框架在拓展性方面的諸多問題,IBM 才能夠達成這樣的成果。
模型訓練之后的測試就是在極限狀況下考察模型的表現,即便 33.8% 的準確率乍一聽不是很誘人,它也比以往的結果有著顯著提高。對于任意一張測試圖像,這個訓練后的人工智能模型從在2萬2千個物體種類中選出它判斷的可能性最高的類別,所選結果的準確率就是這個33.8%。IBM 的這項技術可以讓其它用來執行具體任務的人工智能模型,比如醫學圖像的癌細胞檢測,擁有更精確的診斷,而且可以在短短幾個小時內重新訓練完畢。
Facebook 2017年6月的一篇論文中介紹了他們用較小的模型(ResNet 50)在較小的數據集(ImageNet-1k)上取得的優異成績。文中他們也這樣描述了所遇到的問題:“深度學習需要大規模的神經網絡和大規模的數據集。然而它們帶來的結果是更長的訓練時間,這就對研究和開發過程都造成了很大阻礙。”
但是滑稽的是,在多個服務器上對深度學習問題做協作計算和優化,隨著GPU越來越快變得越來越難。這種現象給深度學習系統帶來的功能損失就推動著 IBM 團隊開發新的 DDL 軟件,來讓熱門開源軟件 Tensorflow、Caffe、Torch、Chainer 上的大規模神經網絡也可以高速、高準確率地處理大規模數據集。
IBM 的研究員用盲人摸象的故事來形容他們要解決的問題:“每個盲人都摸到了大象身上的一小部分,但只能摸到一個部分,比如肚子或者象牙。然后他們就根據自己那一小部分的經驗來描述整個大象,他們的意見也就完全統一不起來”。現在,在最初的意見沖突之后,如果給他們足夠的時間,他們其實可以互相之間分享信息,足夠多的小塊信息拼起來就可以對整個大象有不錯的整體感知。
并行訓練就跟這個類似,如果用一組 GPU 分別處理深度學習訓練問題中的一部分,目前來講整個并行訓練過程還是要花幾天或者幾個星期,那么把這些訓練結果同步起來并不算難。但是隨著 GPU 變得越來越快,它們學習的速度也快多了,每個GPU和其它GPU分享學習結果的所需的速度已經不是傳統軟件可以提供的了。這就對系統網絡帶來了很大的壓力,同時也是一個麻煩的技術問題。簡單點說,更聰明、更快的學習者(GPU們)需要更好的溝通方式,不然它們之間無法同步,大多數的時間就會浪費在等待別人的學習結果中——這樣一來更多、更快的GPU可能就不會帶來更高的性能,性能降低都是有可能的。
IBM 通過 DDL 軟件近乎完美地解決了這種拓展帶來的性能損失問題,最顯著的體現指標就是拓展效率,換句話說就是隨著GPU數目的增加,實際系統和理想系統之間的差距有多大。這個指標也從側面反映了學習過程中這256個GPU之間互相溝通得到底好不好。
此前256個GPU協作的最好結果是 Facebook AI 研究院中的一支團隊達成的,他們用了一個較小的深度學習模型 ResNet 50,用到的數據集也是較小的 ImageNet-1K,其中有大概一百三十萬張圖像;更小的模型和更少的數據都可以降低計算復雜度。選擇了較大的8192的batch size之后,在一個具有256塊英偉達P100 GPU的服務器集群上通過Caffe2深度學習軟件達到了89%的拓展效率。IBM 用同樣的數據集也訓練了一個 ResNet 50 模型,通過 DDL 軟件,他們用 Caffe 獲得了高達95%的拓展效率,如下圖。它運行在一個有64臺“Minsky” Power S822LC服務器的集群上,每個服務器上有4塊P100 GPU。

在大模型、大數據集的 ImageNet-22K 中的750萬張圖像訓練 ResNet 101模型任務中,在選擇了 5120的batch size以后,IBM 也達到了88%的拓展效率。
IBM 的團隊還創造了一項新紀錄,此前 Facebook 保持了用 ImageNet-1K 數據集訓練 ResNet 50 模型只需要1個小時的記錄,IBM 借助 DDL 把基于 Torch 的模型拓展到了256塊GPU上,訓練所需時間隨之刷新到了50分鐘。Facebook 的模型是基于 Caffe2的。
對開發者和數據科學家來說,IBM 研究團隊的 DDL 軟件提供了整套的 API 可供各種深度學習框架調用,以便拓展到多臺服務器上。在 PowerAI 企業級深度學習軟件第4版中就會帶有一個 DDL 的技術預覽版,從而給任何需要訓練深度學習模型的企業提供這樣的集群拓展特性。在給人工智能大家庭提供了這樣的 DDL特性以后,IBM 的研究團隊希望更多的人在掌握了計算機集群的力量以后也可以達成更高的模型準確率。
論文地址:https://arxiv.org/abs/1708.02188
via IBM Research Blog,雷鋒網 AI 科技評論編譯
相關文章:
IBM Watson 視覺識別新高度,采用 GPUs 分布式網絡看懂圖片內涵
分布式機器學習時代即將來臨?谷歌推出“Federated Learning”
Keras 之父講解 Keras:幾行代碼就能在分布式環境訓練模型 | Google I/O 2017
騰訊正式開源高性能分布式計算平臺Angel1.0,追趕同行腳步
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。