12倍端到端加速,陳天奇創業公司OctoML提克服二值網絡瓶頸新方法

2020-12-04 機器之心Pro

選自medium

作者:Josh Fromm

機器之心編譯

機器之心編輯部

去年,TVM 開發團隊陳天奇等人創建了 OctoML 公司,旨在「讓機器學習可以部署在所有硬體上」。前段時間,該公司推出了第一個軟體即服務產品 Octimizer,可以幫助開發者更方便、快捷地將 ML 模型部署到設備上。近日,該公司官方博客又介紹了一種快速端到端二值神經網絡——Riptide,使用 TVM 進行優化時可以實現最高 12 倍的端到端加速。該公司機器學習系統工程師 Josh Fromm 在博客中介紹了 Riptide 的細節。

Riptide 是一種新的模型量化方法,可以將模型量化至 1、2 位。研究團隊今年三月在 MLSys 上介紹了 Riptide,這篇文章主要講一下為什麼要構建 Riptide,並快速了解它的幕後工作原理。團隊計劃來年將 Automatic ultra low-bit 功能添加到 Octomizer 中。在此之前,讀者可以使用開源 Riptide 項目和 MLSys 論文中的信息來進行模型優化。

論文連結:https://proceedings.mlsys.org/static/paper_files/mlsys/2020/155-Paper.pdf

GitHub 項目:https://github.com/jwfromm/Riptide

動機及背景

機器學習發展迅速。幾乎每個月,那些優秀的新模型都會大大提高一些視覺或語言任務方面的 SOTA。這些改進一部分是由新的算法和架構創新所推動的,但對於深度學習任務來說,不斷擴展的算力和內存也使其取得了重大進展。

隨著 ML 準確率的提升,模型所需要的算力和內存也不斷增加。

早在 2016 年,我們就可以看出模型大小和準確率之間的關係了。當下,許多 SOTA 模型只能在最新的 NVIDIA GPU(或 GPU 集群)上才能有效運行。而許多用戶無法花費數千美元在高端 GPU 上,所以就限制了模型部署的範圍。

由於各類網絡可能只需要訓練一次,開發人員也許可以證明這種訓練費用是合理的、有效的。但是,一旦模型進行了部署,將長時間被大量用戶不斷運行。要以這種規模部署最新的模型,通常需要將輸入數據流傳輸到雲上,並將預測返回到用戶設備。現在許多應用程式都依賴這種方法,但它有一些缺點,體現在網絡連接性、延遲、隱私問題以及龐大複雜的基礎架構上。

為了避免這些缺點,許多團隊探索如何在低成本的終端用戶硬體(如手機或 IoT 設備)上直接運行最新模型。這是一個巨大的挑戰,因為此類設備沒有足夠的算力或內存。例如,樹莓派 3 比 NVIDIA Titan GPU 慢了大約 4000 倍。

為了使高精度模型適應此類平臺,最近的研究方向已經開始探索如何使這類網絡運行更快,同時佔用更少的內存。從較高的層面來說,這些技術遵循兩種策略:體系架構優化和近似優化。架構優化涉及尋找連接層的新方法,以減少延遲或提高參數有效性。MobileNet 和 SqueezeNet 是兩個以移動端為重點的體系架構。與創建新的行動裝置友好型模型相反,近似優化旨通過加快運算速度提高現有模型的速度,同時保持足夠的準確率。

兩種流行的近似優化方法。

在最近流行的幾種近似優化中,知識蒸餾和剪枝是兩種有代表性的方法(如上圖所示)。前者嘗試使用大型教師網絡來更好地訓練學生網絡;後者則刪除了網絡中影響較小的權重和激活函數。本文將重點介紹另外一種方法——二值神經網絡,這種網絡在泛化性能、加速潛力、內存壓縮等方面都有優秀的表現。

二值網絡

為了提高性能並減少內存需求,研究團隊在部署模型時越來越多地量化激活函數和權重。例如,在推理過程中,工程師可能將模型轉換為能夠對 int8(8 位整數)進行運算的方式,而不是在訓練過程中經常使用的 float32(IEEE 754 單精度浮點數)。小型整數運算不僅比浮點運算速度快,更因為它們佔用的位數更少,所以可以通過充分利用可用內存帶寬來提高吞吐量。在實踐中,很多模型被量化後都不會有顯著的準確度損失,因此這項技術大受歡迎。

二值化(binarization)將量化進行到了極致,將網絡的權重和激活函數降低到只剩一位,這會帶來一些新的優化。考慮兩個 1 位值之間所有可能的乘法(如下圖),這類方程式和「與門」的邏輯真值表極為相似。

如果認為值為 0 的位代表-1,則上表將成為「同或門」的真值表。

這種等效可以讓我們用更高效的二值運算代替浮點運算。

浮點點積(上)和二值點積(下)的比較。

對上圖點積內循環中的運算次數進行統計可以發現,二值化可以將一層中的運算次數減少到原來的 1/43,將參數大小減少至 1/32。當這樣大體量的優化效果首次由 Courbarioux 等人提出時,2016 年便掀起了二值網絡研究的熱潮。當然,用 1 位值近似 32 位浮點數是一種有損近似。與對應的全精度相比,二值網絡通常會有明顯的精度損失,top-1 準確率通常會損失近 20%。因此,二值網絡的研究重點一直聚焦於如何減少精度損失。

儘管多個研究團隊在提高二值網絡準確率方面取得了巨大進步,但他們都沒有以一種可以衡量端到端加速的方式實現該網絡。這種實現的缺乏不僅讓我們很難知道二值網絡的實際速度,而且還阻止了二值網絡在許多實際環境中的應用

而缺乏實現的原因是,要編寫一個簡單的二值矩陣乘法,儘管運算次數比較少,但它依然會比大多數的全精度乘法慢得多。函數的運行時間並不完全取決於其運行次數,內存的訪問方式也起著重要作用。任何二值網絡的實現都必須與 OpenBLAS 和 MKLDNN 這樣的庫競爭,而這些庫經歷了大型工程團隊多年的手工優化,難度可行而知。而對於大多數研究機構來說,花大量的時間和精力來建立具有競爭力的庫根本不可能。取而代之的是,他們在訓練期間模擬二值化,並假設根據運算次數可以預測加速。

Riptide 的突圍

為了解決這些問題,OctoML 的研究者提出了 Riptide,這是一種找出並解決端到端二值網絡瓶頸的方法。Riptide 基於 TVM,後者是一種深度學習系統編譯器,可以幫助我們自動生成經過調優的高性能二值化算子

迄今為止,二值網絡優化僅僅著眼於高效實現核心低位(low-bit)卷積層的不同策略。這一著眼點基於以下假設,即二值網絡性能可以反映高精度網絡的行為:如果核心卷積可以利用儘可能少的位數實現足夠高的準確率,那麼整個網絡將變得非常快。然而,沒有哪個二值網絡是單純地由卷積構成。在卷積之間有許多關鍵的中間運算,需要用它們來處理下一層的數據。在高精度網絡中,這些層的延遲可以忽略不計,但在二值網絡中,卷積可以實現 43 倍的加速,這些中間「粘合層(glue layers)」就變得非常重要。

二值卷積之間的「粘合層」及其計算複雜度。H 和 W 表示輸入維度,F 表示濾波器的數量。

當前多數的二值網絡至少包含 4 個上圖中的藍色層(QConv 和 Quantize 之間)。從左到右來看,首先將 QConv 的輸出從整數形式去量化為等效的浮點數,接下來,使用權重縮放(傳播實值權重的大小)和批歸一化(保持激活的分布可預測)進行縮放。然後應用 ReLU 等非線性激活函數,結果被重新量化為單個位,並打包為下一個量化卷積做準備。

為了理解粘合層的重要性,可以聯想一下 SqueezeNet(一種更高效的移動端部署架構)。假設典型的輸入大小約為 200x200 像素,並且二值卷積的完美 roofline 實現運行速度是全精度的 43 倍,那麼可以估計出網絡在粘合層中花費的總執行時間。

假設二值化可以使卷積的速度提高近 43 倍,可以進一步估計,更高精度的粘合層將消耗大約 70% 的總推理時間。這是一個相當大的瓶頸!即使在較低的卷積速度(如 20 倍和 10 倍),粘合層仍然會消耗大約一半的推理時間。因此,研究者認為,要真正實現二值網絡所承諾的加速,粘合層也必須是二值化的!

前面已經介紹過融合粘合運算(fused glue operation),它只用兩個指令就完全替代了粘合層。細節可以參見論文。其關鍵思想是用移位運算代替乘法,將縮放項近似為 2 的近似冪,用定點量化近似(fixed point quantized approximations)代替浮點加法和減法。定點量化近似可以直接添加到二值卷積輸出中。綜上所述,得到如下方程組:

其中,N 是用來量化網絡激活的位數,最後一行求解 q(a) 給出了融合粘合的完整方程。通過替換這種融合粘合運算,可以創建一個完全二值化的網絡:

研究者還在 ImageNet 數據集上進行了廣泛的準確度掃描,發現與其他 SOTA 二值網絡相比,上文中的融合粘合運算不會造成任何準確度損失。

這是一個好消息,因為在體系架構層次上消除了粘合瓶頸之後,現在已經可以著手生成快速的二值卷積並度量端到端性能。

端到端加速

早期,研究者將二值網絡作為一種近似技術,幫助我們在移動和 IoT 設備上部署高效的模型。先來看一下 Riptide 在樹莓派 3b 上的表現如何。樹莓派 3b 基於 ARM Cortex-A53 處理器,是資源受限環境的二值目標的典型代表。

首先,將基於 for 循環的簡單網絡實現與使用 MKLDNN 來加速其浮點運算的完整精度基線進行比較。

使用 MKLDNN 的完整精度 ResNet18 運行時間 vs. 未優化的完全二值網絡。

在沒有優化的情況下,研究者獲得了 ResNet18 的一個完全二值網絡(FBN)版本,其速度大約相當於對應高精度網絡的 1/5。為了真正利用二值網絡,現在還需要生成一個經過調優的執行 schedule。研究者通過在 TVM 中實現二值算子並利用其強大的調度、優化能力來得到這種 schedule。

TVM 提供了以下可以用於優化函數的 schedule 特性:

Tiling 將一個計算分解成多個塊,以改善負載的內存局部性。

Vectorization 利用硬體 SIMD 指令來實現更高效的運算執行。

Parallelization 利用多核等 MIMD 設施。

Loop Unrolling 複製循環體來減少開銷。

此外,研究者還利用了《Automating Generation of Low Precision Deep Learning Operators》論文中提到的 fast popcount 算子。最後,他們還介紹了一種名為 bitpack fusion 的新優化方法。

Bitpack fusion 將 bitpacking 摺疊成卷積,以減少激活內存消耗。

在高級層次上,bitpack fusion 儘可能將 bitpacking 摺疊到前面的卷積核中。這可以將中間內存需求減少到原來的 1/16,使得複製策略更加高效,從而提供進一步的加速。

那麼,這一堆優化究竟哪些更重要呢?

為了解答這一問題,研究者在 SqueezeNet 上進行了控制變量研究,結果如上圖所示。

他們發現,與更高精度的浮點基線相比,每種優化都對加速有顯著影響。如果將各種優化方法一起應用,可以在真實模型上看到 10 倍的加速。雖然 10 倍的加速遠小於論文中所期望的 43 倍加速,但這也是一個數量級的提升,可以顯著擴展能夠高效運行 SOTA 模型的設備範圍。當然,這種加速只有在保證準確率的前提下才有價值。

上表顯示了幾種流行二值模型在 1、2、3 位激活條件下的準確率與運行時間權衡。總體來看,可以發現在提供更多加速的同時,Riptide FBN 和其他 SOTA 二值技術一樣穩定,甚至比後者更加準確。Riptide FBN 可以提供準確的激活位寬和量化極性(quantization polarity),提供 4~12 倍的加速,使得它很容易滿足所有應用的準確性需求。

原文連結:https://medium.com/octoml/riptide-fast-full-binarization-in-tvm-ae2afd2104bb

相關焦點

  • 陳天奇創業公司首個SaaS產品:快速構建部署ML應用,跨平臺優化
    去年,知名人工智慧青年學者、華盛頓大學博士陳天奇參與創建了 ML 創業公司 OctoML。該公司致力於打造一個可擴展、開放、中立的端到端棧,用於深度學習模型的優化和部署。這不,他們推出了首個 SaaS 產品 Octomizer,其能夠幫助開發者或數據科學家更方便、更省事省力地將 ML 模型部署到設備上。
  • 陳天奇任 CTO,華盛頓大學TVM團隊創業,獲390萬美元種子輪融資
    OctoML ,陳天奇擔任 CTO。作為機器學習領域知名的青年華人學者,陳天奇加入創業公司的消息引起了業內極大的關注。今日,OctoML 宣布完成 390 萬美元種子輪融資,主要面向缺少源或知識來構建優化深度學習模型的群體。 本輪融資由麥德羅納風險投資集團領投,Amplify Partners 參投。
  • 依圖團隊提出新一代移動端網絡架構MobileNeXt
    ,但是大型神經網絡在移動端的性能制約了AI在移動端的推廣。最近,依圖團隊發表在ECCV的一篇論文,提出了新一代移動端神經網絡架構MobileNeXt,大大優於谷歌的MobileNet、何愷明團隊提出的ResNet等使用倒殘差結構的模型,為移動端算力帶來了新的突破。
  • 語音識別新範式:完全的「端到端」模型,優勢在哪裡?
    語音識別新範式以自然語言處理的子領域「語音識別」為例,從 2012 年引入深度學習技術開始,語音識別的研究熱點經歷了三個階段:2011年前後,基於 DNN+HMM(深度神經網絡+隱馬爾科夫模型)的語音識別 2014年前後,基於 LSTM+CTC(長短時記憶網絡+連接時序分類)的不完全端到端語音識別
  • 端到端+預訓練,自然語言突破性進展的原因 | 青年科學家論壇
    以及你們個人和公司的研究計劃是怎麼樣的?孫劍:之前,我們也討論過這個問題。這波AI能夠起來是靠深度學習。今天將很多東西積攢在一起,能夠讓深度學習系統訓練起來,所有人都可以用。只要有足夠多的數據就可以做,這是這波AI能夠繁榮的源動力。同時也有人會說,前兩年的研究進展非常快,每天都有顛覆性的新東西發布,在性能、方法各方面。
  • TPAMI | 從虛擬到現實,一種基於強化學習的端到端主動目標跟蹤方法
    為了解決上述問題,本文提出一種基於深度強化學習的端到端的解決方案,即用一個 Conv-LSTM 神經網絡直接將圖像序列輸入映射成控制信號輸出(如前進、左轉等)。為了避免人工標記數據和在真實環境試錯,我們使用仿真環境進行訓練。我們進一步提出了一種環境增強技術和自定義的獎賞函數,以保證訓練得到一個魯棒的端到端主動跟蹤器。
  • 華盛頓大學成立SAML實驗室:陳天奇參與,探索跨系統堆棧多層問題
    安妮 發自 凹非寺量子位 出品 | 公眾號 QbitAI△ 陳天奇昨天,TVM、XGBoost、cxxnet等機器學習工具的作者陳天奇宣布,自己所在的華盛頓大學新成立了一個實驗室我們想解決調度、網絡、存儲和編程抽象方面的新挑戰,構建可從新興硬體體系中受益的可擴展系統,處理不斷增長的可用數據。重要的是,未來的模型和算法需要與硬體共同設計,系統級的要素需要告知硬體軟體棧的設計。我們需要建立通用、可復用的基礎設施,並製造更智能的系統。目前,這些挑戰和研究問題涉及計算機科學的多個領域。
  • 紐約大學提出端到端優化圖像壓縮方法,全面超越JPEG 2000 | ICLR...
    在ICLR 2017會議上,來自紐約大學的Johannes Balle 等研究者提出了一種端到端優化的圖像壓縮方法,並發表了論文:《End-to-End Optimized Image Compression》。這種方法包含了三個過程,分別是:非線性分析變換,均勻量化器,以及非線性合成變換。這些變換是在卷積線性濾波器和非線性激活函數的三個連續階段中構建的。
  • 圖鴨科技獲CVPR 2018圖像壓縮挑戰賽單項冠軍,技術解讀端到端圖像...
    機器之心報導   參與:曉坤、路   CHALLENGE ON LEARNED IMAGE COMPRESSION 挑戰賽由 Google、Twitter、Amazon 等公司聯合贊助,是第一個由計算機視覺領域的會議發起的圖像壓縮挑戰賽,旨在將神經網絡
  • 紐約大學提出端到端優化圖像壓縮方法,全面超越JPEG2000|ICLR2017
    在ICLR 2017會議上,來自紐約大學的Johannes Balle 等研究者提出了一種端到端優化的圖像壓縮方法,並發表了論文:《End-to-End Optimized Image Compression》。這種方法包含了三個過程,分別是:非線性分析變換,均勻量化器,以及非線性合成變換。這些變換是在卷積線性濾波器和非線性激活函數的三個連續階段中構建的。
  • 綿陽創新創業大賽科研院所端「金點子」
    綿陽創新創業大賽科研院所端「金點子」     本報訊 (記者 鄒俊川)8月28日,第二屆中國科技城·綿陽「科創杯」創新創業大賽科研院所專賽舉行。
  • 5G 網絡切片如何賦能?中通院 41 頁報告詳述 5G 端到端 SLA 行業...
    與歷屆移動通信技術主要滿足「人人互聯」通信需求相比,5G 更重視人與物、物與物的通信需求,更多聚焦於為垂直行業賦能賦智,加速開啟「萬物互聯」新時代。5G 網絡切片將共享的物理基礎設施切割成了多個獨立的虛擬網絡,為不同業務提供獨立運行、相互隔離的定製化專用網絡服務,是 5G 服務垂直行業的關鍵切入點。
  • 深度學習預測RNA二級結構,螞蟻金服提出端到端模型E2Efold
    本文將介紹一種用於預測 RNA 二級結構的端到端深度學習模型 E2Efold,在結構預測方面具有顯著更優表現,同時大大縮短新冠病毒 RNA 二級結構預測時間,為病毒研究、藥物篩選、疫苗研製等工作提供更多助力。這項成果來自螞蟻金服的研究團隊,目前這篇論文已被 ICLR 2020 接收為 Talk 論文。
  • 百度ICML論文:端對端中英文語音識別
    一個簡單但有效的替代解決方案是訓練出端對端語音自動識別模式,使用深度學習的方法用一個模型來代替大多數模式。如同Hannun et al., 2014a and Graves & Jaitly, 2014b在他們的論文所提及一樣。這種端到端的訓練方法簡化了訓練過程,因為它省去了人工引導/校準/集群/ HMM 機械裝置,而這些用於建立先進的自動語音識別(ASR)模式。
  • 以C端產品思維和方法做B端產品?
    以C端產品經理的思維和方法來做B端產品。要理解本文的一些內容,需要一定的行業經驗。所以,這裡也沒必要介紹什麼是C端和B端了吧。為什麼這一論調今年比較火那?一是由於近兩年,C端產品增長放緩,B端產品迎來了幾輪利好。所以,很多C端產品經理轉型到B端產品經理。為B端產品帶來了新的知識、思維和方法。
  • 2017中國AI英雄風雲榜技術創新人物候選人之陳天奇
    陳天奇陳天奇,華盛頓大學計算機系博士生,此前畢業於上海交通大學ACM班,研究方向為大規模機器學習。
  • 端到端聲源分離研究:現狀、進展和未來
    本文是由哥倫比亞大學博士生羅藝主講的『端到端聲源分離研究進展』整理而來。內容主要覆蓋了單通道和多通道上端到端音源分離的現狀和進展以及未來的研究方向。-本文約5580字,閱讀約需20min-端到端音源分離定義與進展什麼是端到端音源分離呢?羅藝老師首先介紹了端到端音源分離的定義。
  • 愛立信順利完成中國IMT-2020(5G)推進組5G端到端網絡切片技術試驗
    2020年12月25日,愛立信順利完成了IMT-2020(5G)推進組5G端到端網絡切片技術試驗的異廠家測試。本次技術試驗主要依據IMT-2020(5G)推進組制定的測試規範,該規範遵循CCSA 5G網絡端到端切片特設項目組制訂的《5G網絡切片端到端總體技術要求》、《5G網絡切片基於切片分組網(SPN)承載的端到端切片對接技術要求》兩個行標,同時也遵循3GPP制訂的5G相關標準。
  • 天翼智慧家庭五智全方位升級,打造端到端智家體系
    家是幸福的港灣,隨著信息通信技術的加速發展,以及人民群眾對美好生活的嚮往,我們正進入智慧家庭時代。今年的新冠疫情衝擊著全行業,但疫情成為一把「雙刃劍」,它也在一定程度上加速了經濟社會數位化進程,雲生活場景在不斷湧現,為智慧家庭市場帶來了巨大的增值空間。
  • 光通信與5G不斷結合 打造端到端網絡
    在承載網,為加速5G業務部署,諾基亞貝爾展示了基於IP與光傳輸Anyhaul方案、可完整涵蓋5G各個網絡層面的承載需求的「5G業務感知承載」方案,將為5G保駕護航。在骨幹網方面,網絡容量不斷增長成為重要趨勢,為應對未來400G時代來臨的要求,中興通信展示了E-OTN解決方案,將構建高帶寬、大容量、快速響應的全光網。