18分鐘內,人人可訓練ImageNet

點擊上方「深度學習與神經網絡」,選擇「置頂公衆號」數組

重磅乾貨,第一時間送達服務器


在線深度學習課程fast.ai的創始人Jeremy Howard和本身的學生Andrew Shaw、以及國防創新部門DIU的Yaroslav Bulatov一塊兒,用租來的亞馬遜AWS的雲計算資源,18分鐘在ImageNet上將圖像分類模型訓練到了93%的準確率。微信


背景網絡

在四個月前,fast.ai 團隊在 DAWNBench 競賽中取得了巨大成功,他們使用一個機器實現了最快的 Imagenet 訓練速度。谷歌在競賽中的表現也很搶眼,其使用還沒有公開的 TPU Pod 集羣贏得了整個 Imagenet 速度類別的冠軍。fast.ai 團隊使用單個機器的訓練時間爲三小時,而谷歌的 「TPU Pod」 集羣僅用了約半小時。而在該比賽以前,在公有云(public cloud)上訓練 ImageNet 須要花費數天。架構

實驗架構ssh

快速迭代須要面臨諸多挑戰,好比:機器學習

  • 如何在沒有大量可持續運行的昂貴實例時,在多臺機器上輕鬆運行多個實驗?分佈式

  • 如何便捷地利用 AWS 的 EC2 Spot 實例(比通常實例便宜 70%)?每次使用該實例時都須要從零開始從新設置。oop

fast.ai 爲 DAWNBench 競賽構建了一個系統,包括用於啓動和配置新實例、運行實驗、收集結果和查看進展的 Python API。該系統還有一些更有趣的設計:學習

  • 未使用配置文件,而是利用 Python API 寫代碼來配置實驗。所以,該團隊可以使用循環(loop)、條件句(conditional)等來快速設計和運行結構化實驗,如超參數搜索。

  • 圍繞 tmux 和 ssh 寫一個 Python API 封裝,並啓動 tmux 會話中的全部設置和訓練任務。這方便後續登陸機器和鏈接 tmux 會話,以監控進展、修復問題等。

  • 一切「從簡」:避免 Docker 等容器技術或 Horovod 等分佈式計算系統。該團隊未使用複雜的集羣架構(這樣的架構須要單獨的參數服務器、存儲數組、集羣管理節點等),而是僅使用具有常規 EBS 存儲卷的單個實例類型。

單獨來看,DIU 面臨一系列挑戰,最終開發出一個具有類似動機和設計的集羣網絡,可以並行運行不少大規模訓練實驗。該 nexus-scheduler 解決方案受到 Yaroslav 在谷歌 Borg 系統上運行機器學習實驗的經驗啓發。


一種簡單的新訓練技巧:rectangles!


逐步調整圖像大小:fast.ai提出了在分類任務裏要漸進式地調整圖像大小(progressive image resizing),先用小圖片訓練,而後逐漸增大。

在驗證中使用長方形圖像:以往,人們在圖像識別中都須要把原圖剪成固定尺寸的正方形,而他們這一次所用的庫會自動將固定尺寸的模型轉換成動態尺寸模型,繞開了這一步。

以下圖所示,左上是原圖,右上是fast.ai使用的長方形圖像,左下是標準方法裁剪的正方形,而右下是屢次裁剪方法裁出的正方形。


結果


綜合以上種種,fast.ai 在 16 個 AWS 實例上用 18 分鐘的時間完成 Imagenet 訓練,計算總成本大約爲 40 美圓(包括機器配置時間的成本)。可以在超過 100 萬張圖像的數據集上進行訓練有不少好處。


更多內容,詳見原文:

http://www.fast.ai/2018/08/10/fastai-diu-imagenet/


若喜歡「深度學習與神經網絡」推送的文章,請掃描下方二維碼關注公衆號!



您好,歡迎關注深度學習與神經網絡。本公衆號會按期推送深度學習的教程以及人工智能最新發展狀況。感謝你們的支持!
回覆「教程」能夠看到最新的深度學習教程。
回覆「加羣」能夠加入深度學習交流羣。
投稿或合做請加微信:sdxxqbf

本文分享自微信公衆號 - AI MOOC人工智能平臺(AIMOOC_XLAB)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索