您的位置:首頁>正文

斯坦福推出新型DAWNBench基準套件,用於對不同優化策略量化比較

圖源:unsplash

作者:Cody Coleman、Deepak Narayanan、Daniel Kang、Tian Zhao、Jian Zhang、Luigi Nardi、Peter Bailis、Kunle Olukotun、Chris Ré、Matei Zaharia

「雷克世界」編譯:嗯~是阿童木呀、KABUDA、EVA

導語:一直以來, 計算時間和成本是構建深度模型的關鍵資源, 但現有的許多基準只關注模型的精確度。

最近, 斯坦福大學提出了Dawnbench, 它是一種用於端到端深度學習訓練和推理的基準套件, 它提供了一組常見的深度學習工作負載, 用於在不同的優化策略、模型架構、軟體框架、雲和硬體上量化訓練時間、訓練成本、推理延遲和推理成本。

在人工智慧技術領域的研究中, 儘管研究人員對系統、演算法和硬體進行了大量的研究, 以加速深度學習的工作負載, 但是卻沒有標準的方法以評估端到端深度學習(end-to-end deep learning)性能。 現有的基準對代理伺服器度量指標進行測量, 比如處理一個小批量資料的時間, 但這些指標無法表明該系統作為一個整體是否會產生高品質的結果。 在本研究中, 我們引入了DAWNBench, 這是一種基準和競爭套件,

聚焦於測試為了達到最先進的精確度所需的端到端訓練時間, 以及達到該精確度所需的推理時間。 以達到一定精確度所需的時間作為目標度量指標, 我們探索了不同的優化, 包括優化器的選擇、隨機深度和多GPU訓練, 是如何影響端到端訓練性能的。 我們的結果表明, 優化可以在聯合使用時以非凡的方式進行交互, 從而產生更低的加速和更不精確的模型。 我們認為, DAWNBench 將為評估深度學習系統中的許多折衷權衡提供一種有用的、可重現的方法。

深度學習方法是有效的, 但計算成本很高, 這導致需要大量的工作來優化其計算性能。 研究人員提出了新的軟體系統、訓練演算法、通信方法和硬體以降低該成本。 然而,

儘管取得了這些顯著的進展, 但由於缺乏標準的評估標準, 難以衡量或比較這些結果的效用。 大多數現有的深度學習性能基準僅僅測量代理伺服器度量指標, 例如處理一個小批量資料的時間。 實際上, 深度學習性能要複雜得多。 在一些設置中, 諸如使用更大的批量大小、降低精度和非同步更新等技術會使演算法無法收斂到一個好的結果, 或者需要增加時間來完成。 此外, 這些方法以非凡的方式進行交互, 可能需要更新基礎優化演算法, 從而進一步影響端到端性能。

圖1:小批量(Minibatch)大小對P100上ResNet56 CIFAR10模型的收斂速度、輸送量和端到端訓練時間的所帶來的影響。 學習率按照每次實驗進行調整

缺乏標準的評估標準會導致一系列不太容易理解的折折衷權衡。 例如, 最小努力反向傳播(Minimal effort back propagation)比MNIST上的反向傳播速度提高了3.1倍。 而使用8位元精度使MNIST上的速度提高了3倍。 那麼將最小努力反向傳播與8位精度相結合, 能否達到一個9.3倍的速度提升?為了在7分鐘內訓練一個ImageNet模型, 這種速度是否會轉化為像ImageNet這種資料集上的更大的模型,

與精確的、大型的小批量SGD相結合呢?目前, 這些問題只能通過繁瑣而耗時的實驗來回答。 此外, 在評估新優化方法的效率時, 應該依靠哪些先前的技術?

為了提供一種量化端到端深度學習性能的客觀方法, 我們引入了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

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示