圖源:unsplash
作者:Cody Coleman、Deepak Narayanan、Daniel Kang、Tian Zhao、Jian Zhang、Luigi Nardi、Peter Bailis、Kunle Olukotun、Chris Ré、Matei Zaharia
「雷克世界」編譯:嗯~是阿童木呀、KABUDA、EVA
導語:一直以來, 計算時間和成本是構建深度模型的關鍵資源, 但現有的許多基準只關注模型的精確度。
在人工智慧技術領域的研究中, 儘管研究人員對系統、演算法和硬體進行了大量的研究, 以加速深度學習的工作負載, 但是卻沒有標準的方法以評估端到端深度學習(end-to-end deep learning)性能。 現有的基準對代理伺服器度量指標進行測量, 比如處理一個小批量資料的時間, 但這些指標無法表明該系統作為一個整體是否會產生高品質的結果。 在本研究中, 我們引入了DAWNBench, 這是一種基準和競爭套件,
深度學習方法是有效的, 但計算成本很高, 這導致需要大量的工作來優化其計算性能。 研究人員提出了新的軟體系統、訓練演算法、通信方法和硬體以降低該成本。 然而,
圖1:小批量(Minibatch)大小對P100上ResNet56 CIFAR10模型的收斂速度、輸送量和端到端訓練時間的所帶來的影響。 學習率按照每次實驗進行調整
缺乏標準的評估標準會導致一系列不太容易理解的折折衷權衡。 例如, 最小努力反向傳播(Minimal effort back propagation)比MNIST上的反向傳播速度提高了3.1倍。 而使用8位元精度使MNIST上的速度提高了3倍。 那麼將最小努力反向傳播與8位精度相結合, 能否達到一個9.3倍的速度提升?為了在7分鐘內訓練一個ImageNet模型, 這種速度是否會轉化為像ImageNet這種資料集上的更大的模型,
為了提供一種量化端到端深度學習性能的客觀方法, 我們引入了DAWNBench, 這是一個開放的用於端到端深度學習訓練和推理的基準測試和競爭套件。 DAWNBench不是簡單地測量每次反覆運算或輸送量的時間, 而是在指定的精度級別上測量了訓練(例如, 時間、成本)和推理(例如, 延遲、成本)的端到端性能表現。 這為計算框架、硬體、優化演算法、超參數設置, 以及其他影響實際性能的因素之間差異的歸一化提供了客觀方法。 我們最初發佈的DAWNBench提供了端到端的學習和推理任務, 包括CIFAR10和ImageNet中的圖像分類,SQUAD中的問題回答以及每個任務中的推理實現。
表1:在第一版DAWNBench中度評估得到的維度。所有指標都接近于最先進的精確度
在本文中,我們將介紹DAWNBench的基準規範和目標,並說明我們該如何使用DAWNBench來執行簡單的性能研究,以評估優化器選擇、批量大小、多GPU訓練和隨機深度所帶來的影響。隨著時間的推移以及社區的投入,我們計畫擴大DAWNBench的範疇,使其能夠包含附加的基準任務(例如分割、機器翻譯、視頻分類)和度量(例如能量,樣本複雜度)。
基準概述和目標
DAWNBench使用多個資料集,基於多個指標在不同任務上對深度學習系統進行評估。基準測試使得系統能夠在軟體、演算法、通信方法等方面進行創新。僅通過指定任務,DAWNBench還允許對新的模型架構和硬體進行試驗。在最初的版本中,我們為兩項任務提供了種子條目:CIFAR10和ImageNet上的圖像分類以及SQUAD上的問題回答,並評估了四個度量指標:達到特定驗證準確度的訓練時間、使用公共雲實例達到特定驗證準確度的訓練成本(以美元為單位)、對單個專案(圖像或問題)執行推理時的平均延遲時間,以及10,000個項目中的平均推理成本(見表1)。我們還提供參考實現和種子條目,這是在兩個通用的深度學習框架——PyTorch和TensorFlow中實施的。這些參考實現是從Github的官方存儲中進行收集和改編的,並且與原始研究論文中所提供的精確度數據相一致,同時也符合這些框架中所發佈的各種性能建議。
圖2:當在CIFAR10上訓練ResNet56模型時,不同優化器所帶來的影響
在標準任務上,DAWNBench不是第一個比較和評估深度學習系統的基準,在此之前還有百度DeepBench、Fathom和TensorFlow Benchmark等。但我們的基準在兩個關鍵方面與之有所不同。首先,DAWNBench關注端到端性能。以往的很多基準大都採集將在單個小批量資料上進行訓練所需的時間作為關鍵指標,而忽視了經過訓練後模型結果的精准度。另一些基準的側重點則在於,對深度學習計算中使用到的單個低級操作(例如:卷積、矩陣乘法)進行計時。與這些基準不同,DAWNBench在確保測量達到預期精准度所需時間的同時,兼顧了硬體和統計性能。
其次,我們認為DAWNBench是開放和不斷發展的。以往的基準通常是使用固定的模型架構和任務,在時間的快照上進行定義的。然而,深度學習的不斷發展使得這種體系架構很快失效。例如,在近期,使用迴圈層進行的機器翻譯方法,很快就被使用卷積層和注意力層的機器翻譯方法所取代。機器學習是一個快速發展的領域,因此基準需要不斷完善,以與之相適應。我們希望能夠不斷發展和完善DAWNBench,並圍繞這一領域的進展進行探索(包括新任務),搭建溝通和交流的社區。
DAWNBench是一種衡量基準,可用於測量訓練一個具有最高精確度的模型所需的端到端時間。通過聚焦於達到特定精准度的時間,我們展示了不同優化方式之間的相互作用,通過將不同的優化方式結合使用,可以有效防止模型收斂或訓練時間的延長。用這一方式對深度學習系統進行推理,能夠揭示出訓練時間、訓練成本、推算時間有價值的折衷權衡。我們希望能夠讓DAWNBench同新任務和新目標保持同步,以促進圍繞深度學習系統的進展展開溝通與交流。
原文連結:http://dawn.cs.stanford.edu/benchmark/papers/nips17-dawnbench.pdf
包括CIFAR10和ImageNet中的圖像分類,SQUAD中的問題回答以及每個任務中的推理實現。表1:在第一版DAWNBench中度評估得到的維度。所有指標都接近于最先進的精確度
在本文中,我們將介紹DAWNBench的基準規範和目標,並說明我們該如何使用DAWNBench來執行簡單的性能研究,以評估優化器選擇、批量大小、多GPU訓練和隨機深度所帶來的影響。隨著時間的推移以及社區的投入,我們計畫擴大DAWNBench的範疇,使其能夠包含附加的基準任務(例如分割、機器翻譯、視頻分類)和度量(例如能量,樣本複雜度)。
基準概述和目標
DAWNBench使用多個資料集,基於多個指標在不同任務上對深度學習系統進行評估。基準測試使得系統能夠在軟體、演算法、通信方法等方面進行創新。僅通過指定任務,DAWNBench還允許對新的模型架構和硬體進行試驗。在最初的版本中,我們為兩項任務提供了種子條目:CIFAR10和ImageNet上的圖像分類以及SQUAD上的問題回答,並評估了四個度量指標:達到特定驗證準確度的訓練時間、使用公共雲實例達到特定驗證準確度的訓練成本(以美元為單位)、對單個專案(圖像或問題)執行推理時的平均延遲時間,以及10,000個項目中的平均推理成本(見表1)。我們還提供參考實現和種子條目,這是在兩個通用的深度學習框架——PyTorch和TensorFlow中實施的。這些參考實現是從Github的官方存儲中進行收集和改編的,並且與原始研究論文中所提供的精確度數據相一致,同時也符合這些框架中所發佈的各種性能建議。
圖2:當在CIFAR10上訓練ResNet56模型時,不同優化器所帶來的影響
在標準任務上,DAWNBench不是第一個比較和評估深度學習系統的基準,在此之前還有百度DeepBench、Fathom和TensorFlow Benchmark等。但我們的基準在兩個關鍵方面與之有所不同。首先,DAWNBench關注端到端性能。以往的很多基準大都採集將在單個小批量資料上進行訓練所需的時間作為關鍵指標,而忽視了經過訓練後模型結果的精准度。另一些基準的側重點則在於,對深度學習計算中使用到的單個低級操作(例如:卷積、矩陣乘法)進行計時。與這些基準不同,DAWNBench在確保測量達到預期精准度所需時間的同時,兼顧了硬體和統計性能。
其次,我們認為DAWNBench是開放和不斷發展的。以往的基準通常是使用固定的模型架構和任務,在時間的快照上進行定義的。然而,深度學習的不斷發展使得這種體系架構很快失效。例如,在近期,使用迴圈層進行的機器翻譯方法,很快就被使用卷積層和注意力層的機器翻譯方法所取代。機器學習是一個快速發展的領域,因此基準需要不斷完善,以與之相適應。我們希望能夠不斷發展和完善DAWNBench,並圍繞這一領域的進展進行探索(包括新任務),搭建溝通和交流的社區。
DAWNBench是一種衡量基準,可用於測量訓練一個具有最高精確度的模型所需的端到端時間。通過聚焦於達到特定精准度的時間,我們展示了不同優化方式之間的相互作用,通過將不同的優化方式結合使用,可以有效防止模型收斂或訓練時間的延長。用這一方式對深度學習系統進行推理,能夠揭示出訓練時間、訓練成本、推算時間有價值的折衷權衡。我們希望能夠讓DAWNBench同新任務和新目標保持同步,以促進圍繞深度學習系統的進展展開溝通與交流。
原文連結:http://dawn.cs.stanford.edu/benchmark/papers/nips17-dawnbench.pdf