去年,TVM開發(fā)團隊Chen Tianqi等人創(chuàng)建了它,以“使機器學(xué)習(xí)能夠部署在所有硬件上”。 不久前,該公司推出了首款軟件即服務(wù)產(chǎn)品,該產(chǎn)品可以幫助開發(fā)人員更輕松
是由TVM開發(fā)團隊Chen Tianqi等人于去年創(chuàng)建的,旨在“使機器學(xué)習(xí)能夠部署在所有硬件上”。 不久前,該公司推出了首款軟件即服務(wù)產(chǎn)品,該產(chǎn)品可以幫助開發(fā)人員更輕松,更快速地將ml模型部署到設(shè)備上。 最近,該公司的官方博客Riptide推出了一種快速的端到端二進制神經(jīng)網(wǎng)絡(luò),當(dāng)使用TVM進行優(yōu)化時,它可以實現(xiàn)多達12倍的端到端加速。 該公司的機器學(xué)習(xí)系統(tǒng)工程師Josh Fromm在他的博客中詳細介紹了Riptide。
Riptide是一種新的模型量化方法,可以將模型量化為1或2位。 研究團隊于今年3月在mlsys上介紹了Riptide。 本文重點介紹了為何應(yīng)構(gòu)建Riptide及其在幕后的工作方式。 該團隊計劃明年在octomizer中添加自動超低位功能。 在此之前,讀者可以使用開源Riptide項目和mlsys論文中的信息來優(yōu)化模型。
論文鏈接:https://proceedings.mlsys.org/static/paper_files/mlsys/2020/155-paper.pdf GitHub項目:https://github.com/jwfromm/riptide動機和背景
機器學(xué)習(xí)發(fā)展 迅速。 幾乎每個月,這些出色的新模型都會極大地改善視覺或語言任務(wù)的SOTA。 其中一些改進是由新算法和體系結(jié)構(gòu)創(chuàng)新推動的,但對于深度學(xué)習(xí)任務(wù),不斷擴展的計算能力和內(nèi)存也取得了長足的進步。
隨著ML準(zhǔn)確性的提高而擴展了全文本,模型所需的計算能力和內(nèi)存也在增加。
早在2016年,我們就可以看到模型規(guī)模與準(zhǔn)確性之間的關(guān)系。 目前,許多SOTA模型只能在最新的NVIDIA GPU(或GPU集群)上有效運行。 許多用戶無法在高端GPU上花費數(shù)千美元,這限制了模型部署的范圍。 由于各種網(wǎng)絡(luò)可能只需要訓(xùn)練一次,因此開發(fā)人員可能能夠證明訓(xùn)練成本是合理且有效的。 但是,一旦部署了模型,它將由大量用戶長時間運行。 為了以這種規(guī)模部署最新模型,通常需要將輸入數(shù)據(jù)流傳輸?shù)皆撇㈩A(yù)測返回給用戶設(shè)備。 現(xiàn)在,許多應(yīng)用程序都依賴此方法,但是它具有一些缺點,這體現(xiàn)在網(wǎng)絡(luò)連接,延遲,隱私問題以及龐大而復(fù)雜的基礎(chǔ)結(jié)構(gòu)中。 為了避免這些缺點,許多團隊探索了如何直接在低成本最終用戶硬件(例如手機或IOT設(shè)備)上運行最新模型。 這是一個巨大的挑戰(zhàn),因為此類設(shè)備沒有足夠的計算能力或內(nèi)存。 例如,樹莓派3比NVIDIA Titan GPU慢4000倍。 為了使高精度模型適應(yīng)這種平臺,最近的研究方向已經(jīng)開始探索如何使這種網(wǎng)絡(luò)運行得更快并且占用更少的內(nèi)存。 在更高級別上,這些技術(shù)遵循兩種策略:體系結(jié)構(gòu)優(yōu)化和近似優(yōu)化。 架構(gòu)優(yōu)化涉及尋找連接層的新方法,以減少延遲或提高參數(shù)有效性。 Mobilenet和squeezenet是專注于移動端的兩種體系結(jié)構(gòu)。 與創(chuàng)建新的移動設(shè)備友好模型相反,近似優(yōu)化旨在通過在保持足夠準(zhǔn)確性的同時加快操作速度來提高現(xiàn)有模型的速度。
兩種流行的近似優(yōu)化方法。 在最近流行的近似優(yōu)化中,知識蒸餾和修剪是兩種代表性方法(如上圖所示)。 前者試圖使用大型教師網(wǎng)絡(luò)來更好地培訓(xùn)學(xué)生,而后者則消除了對網(wǎng)絡(luò)影響較小的權(quán)重和激活功能。 本文將重點介紹另一種方法,即二進制神經(jīng)網(wǎng)絡(luò),該方法在泛化性能,加速潛力,內(nèi)存壓縮等方面具有出色的性能。 為了提高性能并減少內(nèi)存需求,研究團隊在部署模型時越來越多地量化激活功能和權(quán)重。 例如,在推理過程中,工程師可以將模型轉(zhuǎn)換為可以執(zhí)行int8(8位整數(shù))運算的方式,而不是通常在培訓(xùn)中使用的float32(IEEE 754單精度浮點數(shù)) 處理。 小整數(shù)運算不僅比浮點運算快,而且占用的位數(shù)更少,因此它們可以通過充分利用可用的內(nèi)存帶寬來提高吞吐量。 在實踐中,對許多模型進行了量化而沒有明顯的準(zhǔn)確性損失,因此該技術(shù)非常受歡迎。
二值化使量化達到極限,將網(wǎng)絡(luò)權(quán)重和激活函數(shù)降低到僅一位,這將帶來一些新的優(yōu)化。 考慮兩個1位值之間的所有可能的乘法(如下圖所示),這與“和門”的邏輯真值表非常相似。
如果值為0的位表示-1,則上表將成為相同或門的真值表。
此等價關(guān)系使我們可以用更有效的二進制運算代替浮點運算。
比較浮點數(shù)乘積(上)和二進制點乘積(下)。
用于計算上圖中點積的內(nèi)部循環(huán)中的運算次數(shù)。 可以發(fā)現(xiàn),二值化可以將第一層中的操作數(shù)減少到原始層的1/43,并將參數(shù)大小減少到1/32。當(dāng)如此大的體積的優(yōu)化效果首次由courbarioux等人提出時 ,二進制網(wǎng)絡(luò)研究的興起于2016年開始。當(dāng)然,用1位值近似32位浮點數(shù)是有損的近似值。 與相應(yīng)的全精度相比,二元網(wǎng)絡(luò)通常具有顯著的精度損失,并且top-1精度損失接近20%。 因此,二進制網(wǎng)絡(luò)的研究重點一直放在如何減少精度損失上。
盡管許多研究團隊在提??高二進制網(wǎng)絡(luò)的準(zhǔn)確性方面取得了長足的進步,但他們并未以可測量端到端加速度的方式來實現(xiàn)網(wǎng)絡(luò)。 這種缺乏實現(xiàn)的方式不僅使人們難以知道二進制網(wǎng)絡(luò)的實際速度,而且使二進制網(wǎng)絡(luò)無法在許多實際環(huán)境中應(yīng)用。 缺少實現(xiàn)
的原因是要編寫一個簡單的二進制矩陣乘法,盡管運算的數(shù)量相對較少,但它仍然比大多數(shù)全精度乘法慢得多。 函數(shù)的運行時間不取決于其運行的次數(shù),并且內(nèi)存的訪問模式也起著重要的作用。 任何二進制網(wǎng)絡(luò)的實現(xiàn)都必須與諸如openblas和mkldnn之類的庫競爭。 這些庫在大型工程團隊中經(jīng)歷了多年的手動優(yōu)化,其難度是可行的。 對于大多數(shù)研究機構(gòu)而言,不可能花費大量時間和精力來構(gòu)建具有競爭力的Kugen。 取而代之的是,他們假設(shè)可以根據(jù)操作次數(shù)預(yù)測加速度,從而在訓(xùn)練過程中模擬二值化。 為了解決這些問題,octoml研究人員提出了Riptide,這是一種發(fā)現(xiàn)并解決端到端二進制網(wǎng)絡(luò)瓶頸的方法。 Riptide基于TVM,它是一種深度學(xué)習(xí)系統(tǒng)編譯器,可以幫助我們自動生成優(yōu)化的高性能二進制運算符。 到目前為止,二進制網(wǎng)絡(luò)的優(yōu)化僅關(guān)注有效實現(xiàn)低位卷積層的不同策略。 這種觀點是基于這樣的假設(shè),即二進制網(wǎng)絡(luò)的性能可以反映高精度網(wǎng)絡(luò)的行為:如果核心卷積可以使用盡可能少的位達到足夠高的精度,則整個網(wǎng)絡(luò)將變得非常快。 但是,沒有二進制網(wǎng)絡(luò)僅由卷積組成。 卷積之間有許多關(guān)鍵的中間操作,需要使用這些中間操作來處理下一層數(shù)據(jù)。 在高精度網(wǎng)絡(luò)中,可以忽略這些層的延遲,但是在二進制網(wǎng)絡(luò)中,卷積可以實現(xiàn)43倍的加速,中間的“膠層”變得非常重要。
的兩個卷積之間的“綁定層”及其計算復(fù)雜性。 H和W代表輸入尺寸,f代表過濾器數(shù)量。
當(dāng)前的大多數(shù)二進制網(wǎng)絡(luò)在上圖中至少包含四個藍色層(在qconv和量化之間)。 首先,從左到右,將qconv的輸出從整數(shù)形式量化為等效的浮點數(shù)。 然后,權(quán)重縮放(傳播實值權(quán)重的大。┖团鷼w一化(保持活動分布可預(yù)測)用于縮放。 然后,通過使用諸如relu之類的非線性激活函數(shù),將結(jié)果重新量化為單個位,并打包用于下一個量化卷積。 為了了解
的重要性,可以想到squeezenet(一種更高效的移動部署體系結(jié)構(gòu))。 假設(shè)典型的輸入大小約為200x200像素,并且二進制卷積的實現(xiàn)速度是全精度的43倍,則可以估計網(wǎng)絡(luò)在綁定層中的總執(zhí)行時間。
假設(shè)二值化可以將卷積速度提高近43倍。 可以進一步估計,粘合層的較高精度將消耗總推理時間的約70%。 這是一個相當(dāng)大的瓶頸! 即使以較低的卷積速度(例如20和10倍),膠合層仍會消耗大約一半的推理時間。 因此,研究人員認(rèn)為,為了實現(xiàn)二進制網(wǎng)絡(luò)所承諾的加速,綁定層也必須是二進制的!
引入了融合膠操作,僅需兩條指令即可完全取代粘合層。 有關(guān)詳細信息,請參見本文。 關(guān)鍵思想是用移位運算代替乘法,將縮放項近似為2的冪,并用定點量化近似代替浮點加法和減法。 定點量化近似值可以直接添加到二進制卷積輸出中。 綜上所述,可獲得以下等式:
其中n是用于量化網(wǎng)絡(luò)激活的位數(shù)。 最后一行求解Q(a),給出完整的熔合方程。 通過替換此融合和綁定操作,可以創(chuàng)建一個完全二進制的網(wǎng)絡(luò):
研究人員還對Imagenet數(shù)據(jù)集進行了廣泛的精度掃描,發(fā)現(xiàn)與其他SOTA二進制網(wǎng)絡(luò)相比,上述內(nèi)容中的融合和綁定操作將 不會造成任何精度損失。
這是個好消息,因為在體系結(jié)構(gòu)級別消除了膠合瓶頸之后,您現(xiàn)在就可以開始
美國國家航空航天局已發(fā)出近10億 Dell的新款Precision 7000系列移 蘇寧中華第一店的“倒退”顯示出 Microsoft Surface go 2已通過En 如何連接裝修工人的訂單接收平臺 這21個應(yīng)用程序是非法的! 您可 YouTube每分鐘產(chǎn)生32000美元的廣 頻頻挖角高管抱怨午夜,魅族的應(yīng) 當(dāng)場推翻原版! AI不承認(rèn)上帝, 數(shù)字基礎(chǔ)共享視頻介紹了VRS可變 北通云企業(yè)照明站,3分鐘發(fā)布一 100智能大廈 新聞:2020年13英寸Macbook Pro 閱讀對最近查詢的回應(yīng):全面推動 餐飲業(yè)的創(chuàng)新,變革和利潤保證 國家緊急響應(yīng)為2級或以下; 特斯 巴菲特:尚未找到感興趣的公司 Apple的新消息專利:重新編輯發(fā) 沒有贏得原始的跑步成績,并且沒 長鑫家用DDR4內(nèi)存芯片/顆粒處理 在原始的win10中搜索其他瀏覽器 巴菲特的Alpha:使用機器學(xué)習(xí)量 圖片預(yù)覽界面中的新增長焦點圖片 巴菲特:麝香做得很棒,但不會投 閱讀:作家座談會于5月6日啟動, 原始IOS 13.5 beta 3帶來了有關(guān) 中國人民銀行:恢復(fù)生產(chǎn)的狀況正 原裝國內(nèi)最差的手機系統(tǒng):華為的 比亞迪與華為合作! 趙長江:特 經(jīng)典gal“ MUV luv”將發(fā)布在Ste