全文共1459字,預計學習時長3分鐘
本文包含了以下重點內容:
• 一種新的8-Bit浮點格式,結合了DNN(深度神經網絡)訓練的見解,實現了一般矩陣算法(GEMM)在深度學習中模型精度的零損耗。
• 一種叫作「基塊計算」的新技術。在分層應用中,僅使用了8-bit乘法和16-bit加法(代替了16-bit和32-bit的獨立計算)進行矩陣和卷積計算。
• 在權重更新過程中應用了浮點隨機捨入,實現了用16-bit精度進行更新(而不是32-bit)。
• 從綜合效果來看,這項技術廣泛適用於整套深度學習模型和數據集,同時完全保證精度。
這種方法的根基是近似計算。研究人員嘗試在硬體中進行調整,使模型更牢固,同時通過專有架構獲得高效收益。
CDC1604是第二代48-bit計算機,用於美國海軍飛彈自動控制系統,每秒運行可超10萬次。但是,如果用CDC1604運行蘋果手機,它甚至無法提高自拍像素。因此,掌上機(手機)本有能力運行多個飛彈系統,否則這些系統將需要房間大小的處理器。
計算機結構體系最初專門用於串行處理,隨後使用DRAMs (動態隨機存取存儲器)優化高密度存儲。但是,晶片表面處理區域價格高昂,且不適宜大量增加內存容量。神經網絡存儲器,必須存儲輸入數據、激活參數和權重參數等信息。
在一篇題為「使用8-bit浮點數訓練深度神經網絡算法」的論文中,作者Naigang Wang, Jungwook Choi, Daniel Brand, Chia-Yu Chen以及Kailash Gopalakrishnan,均來自IBM沃森研究中心。他們介紹了能使用8-bit浮動數(FP8)成功訓練DNN(深度神經網絡)並能同時保證精度的一項新技術。
這項突破的研究人員表示:「以往來說,高性能計算依賴於高精度的64-bit和32-bit浮點運算。但這種新方法保證了準確性,對一些科學任務的計算至關重要,比如模擬人類心臟,計算太空飛船軌跡等」。
但是,對於圖像分類、語音識別等一類任務,近似計算比64-bit或32-bit提供的高精度計算更重要。
浮點的限制越低,驅動器也隨之越小。比如,16-bit精度驅動器通常比32-bit高精度同類塊小4倍。這種區域效率的提高直接有利於AI培訓效果和工作負載性能的顯著提升。
因此,高精度可以增強計算能力。在本文中,研究人員展示了全新的訓練技術,並且最終將壓縮方法加速了40-200倍。
早在2015年,IBM研究就已經展示了如何在32-bit到16-bit的推理過程中完全保證模型精度。
現在,16-bit訓練和8-bit推理系統已經作為一項標準灌輸至行業中。儘管有關8-bit和4-bit的精度推理工作還在進行,但最終也將成為行業標準。
與16-bit訓練網絡相關的主要挑戰有:
• 在反向傳播期間,是否該保持梯度計算和權重更新的保真度。
• 當矩陣乘法中的權重、誤差和梯度降低到8-bit時,深度神經網絡會遭受影響,最終精度明顯下降。
• 此外,網絡訓練對算法收斂性有顯著影響。
• 如今使用的32-bit權重更新系統,需要存儲高精度權重和梯度的額外副本,價格高昂。
如何解決8-Bit浮點問題:
有一種新技術叫作「基塊計算」,應用於卷積計算的時候,這種技術允許用8
-bit乘法和16-bit加法,去代替16-bit和32-bit的獨立計算。並且,在權重更新中,浮點可隨機捨入。
在「基塊計算」中,累積計算被分解成塊,由各深度學習點產品構成。研究人員已經做過測試,採用尺寸14nm的晶片檢驗這種技術,並用於訓練ResNet50模型。結果表明,基塊計算驅動器可以和降低精度的數據流驅動器一起使用,並且不會增加硬體開銷。
作為基線,32-bit浮點的累積量會隨向量長度呈線性增加趨勢。在最接近捨入值的時候(比如:塊=1),典型的16-bit浮點累積量將會面臨極大的誤差。(當長度 ≥ 4096時,累積停滯)。
這時,可以使用基塊累積計算來填補誤差,因為積累量的有效長度被「塊」的大小所削減,以免被淹沒。隨機捨入的有效性如下:儘管由於捨入誤差導致了在總體積累長度中存在輕微偏差,但是隨機捨入值會遵循32-bit浮點結果。
這一成功實踐為硬體培訓平臺進入新時代鋪平了道路,該平臺的性能是當前系統的兩倍。
留言 點讚 發個朋友圈
我們一起分享AI學習與發展的乾貨
編譯組:姚宇歌、胡婷
相關連結:
https://www.analyticsindiamag.com/ibm-8-bit-ai-breakthrough-to-supercharge-computational-efficiency/
如需轉載,請後臺留言,遵守轉載規範
推薦文章閱讀
長按識別二維碼可添加關注
讀芯君愛你