一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

tansformer的量化實現(xiàn)方案

454398 ? 來源:AI加速微信公眾號 ? 作者:AI加速微信公眾號 ? 2020-11-03 15:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

理論介紹

相比于訓練后量化方法,將量化過程插入到訓練中可以彌補量化產生的誤差,但是帶來的問題可能是增加了訓練的時間。在tansformer的量化實現(xiàn)中,我們采用了訓練中量化的方法,在網絡前向傳輸中,對權重等參數(shù)進行線性量化。反向傳播中,對scale和權重參數(shù)的求導采用Hinton的strait-through estimator的方式。在CPU上訓練花費了10天的時間,在這期間又review了最近的量化方法的文章。所以先總結一下,然后再分析一下transformer量化的結果。

1) PACT

這是一種實現(xiàn)對activation量化的方法,基本思想是通過訓練來獲得ReLU的一個clip參數(shù)a。a的動態(tài)調整能夠在減少量化誤差和保證反向傳播有效進行之間獲得平衡。PACT重新定義了ReLU過程如下:

參數(shù)a限定了activation的范圍為[0, a]。然后獲得的激活值y在進行線性映射到k bit的表示空間,如下:

在這里[0, a]是y值的一個限定,a>=y。所以其范圍比y值的實際范圍要大,這可以對y的量化誤差有一些彌補。采用strait-through estimator方法計算其相對于a的梯度為:

當a趨向于無窮大的時候,就接近于ReLU函數(shù),所以訓練過程一定是往a增大方向移動。通過在loss中增加a的L2 規(guī)范化可以尋求一個合適的a值。

2) quantization-aware training

谷歌采用量化和訓練分離的方法,在前向計算使用量化數(shù)據(jù),而在訓練的時候還是浮點訓練。量化方法為如下公式:

其中S為scale參數(shù),z是零點偏移,q是量化后參數(shù)。Z值的存在會導致矩陣或者卷積運算中有交叉項。這會增加一部分加法和乘法項。這在CPU等通用處理器上容易實現(xiàn),只是一個時間復雜度的問題,但是實際上不利于在FPGA等硬件上實現(xiàn)。所以FPGA等平臺的量化一般都讓z值為0。消除交叉項計算。對于一個矩陣乘法,量化導致了scale的組合,比如:




在這里M是浮點數(shù)據(jù),在這里作者對其又做了一次量化,首先將M數(shù)據(jù)映射到[0.5, 1)空間,然后在使用32bit數(shù)據(jù)來表達為整數(shù)。

32bit的表達能夠降低量化精度。

在量化整個網絡的過程中,作者也提供了一些處理技巧。在進行線性量化的時候,采用了對稱的量化區(qū)間,比如8bit量化,正常取值范圍在[-128, 127],作者取了對稱空間[-127, 127]。這樣做的目的和實現(xiàn)的平臺有關。在量化activation的時候,使用EMA來處理收集到的數(shù)值范圍,這樣做可以在初始訓練中,完全屏蔽掉對activation的量化,使得訓練進入到一個比較穩(wěn)定的狀態(tài)后在進行量化。BN是一個復雜的計算,但是可以將其折疊到之前的卷積層和FC層中,如下圖所示:



3) 訓練后量化,基于KL發(fā)散性。

基于訓練后的量化方法的優(yōu)勢就是量化花費時間短。在tensorRT中使用了KL發(fā)散性來描述量化后的數(shù)據(jù)和浮點數(shù)據(jù)之間的信息損失程度。通過最小化這個值來達到量化后數(shù)據(jù)包含的信息接近浮點數(shù)據(jù)的信息。這種方法的出發(fā)點是,為了保證量化后模型的精度損失較小,應該讓量化后的數(shù)據(jù)和原始浮點數(shù)據(jù)表達的信息最一致。具體的做法是:

對每層網絡,先收集activation的數(shù)值區(qū)間,這樣就生成一個activation值的分布;采用不同的量化區(qū)間[a,b]來對activation進行線性映射,這樣就形成了針對參數(shù)a和b的多種不同分布,然后找到和原始數(shù)據(jù)分布KL最小的分布,這個時候得到的a和b的值就是量化activation時所采用的threshold值。

Transformer量化結果

還是決定由簡入難,先進行16bit的量化,量化內容包括transformer中的dense層,F(xiàn)C層。對權重和數(shù)據(jù)都進行16bit的量化,即將量化節(jié)點插入到計算圖中。梯度采用strait-through estimator來估計。對于embedding,softmax,layer normalization還是使用浮點值。因為擔心對這些的量化可能會導致精度降低。選擇batch size為256,epoch為20,數(shù)據(jù)集使用英語德語翻譯數(shù)據(jù)集。這個數(shù)據(jù)集有460萬個句子。在服務器上使用CPU跑了10天,以下是結果:

對比一下github上作者浮點模型的訓練結果:


發(fā)現(xiàn)存在以下問題:

1 loss下降很慢,浮點模型在訓練到達5k次的時候,loss已經下降到4了,但是量化的訓練loss在5k次的時候才到5.4。經歷了前幾次快速下降之后,后邊更加緩慢。

2 BLEU得分很低,訓練了10K次后得分才有0.11。得分低的原因也是loss值很低。

第一次做沒有什么經驗,猜測可能有以下幾種原因:

1 對所有的scale我都使用了常數(shù)2作為初始值,為什么選擇2,并沒有什么原因,就是隨便選擇的?;蛟S初始值的不當導致了loss訓練很慢。設想通過以下方式來改進,先進行warmup,通過計算參數(shù)的范圍來計算出一個scale值。進行了幾輪warmup之后再進行量化訓練。

2 因為看到loss也一直是下降的趨勢,那么猜測可能是量化訓練是比正常訓練收斂慢。因為量化參數(shù)的梯度在參數(shù)超過閾值會為0,這個可能導致梯度更新較慢。

編輯:hfy


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11080

    瀏覽量

    217085
  • Transformer
    +關注

    關注

    0

    文章

    151

    瀏覽量

    6520
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    解讀大模型FP量化的解決方案

    63.1 的分數(shù),只比完整精度模型低了 5.8 分,且比之前的 SOTA 方法平滑量高出了 12.7,這是目前少數(shù)已知可行的 4-bit 量化方案了。
    發(fā)表于 11-24 11:15 ?1228次閱讀
    解讀大模型FP<b class='flag-5'>量化</b>的解決<b class='flag-5'>方案</b>

    實現(xiàn)量化生產線性恒流驅動IC方案

    變壓器和電感,可實現(xiàn)量化生產。SM2082B支持單顆應用,也支持并聯(lián)應用,同時還支持可控硅調光應用,適用于T8/T5、平板燈、吸頂燈等LED照明領域,易過3C、UL、CE等認證標準
    發(fā)表于 11-20 15:00

    怎么在GUI中如何實現(xiàn)量化

    在GUI中如何實現(xiàn)均勻量化和非均勻量化,可以達到等距輸入?yún)?shù)得到相應變化,謝謝幫助,最好給個程序
    發(fā)表于 05-26 18:23

    碳纖維為何能實現(xiàn)汽車輕量化

    碳纖維是一種與人造絲、合成纖維絲一樣的纖維狀碳材料,是目前世界高科技領域中十分重要的新型工業(yè)材料,提高汽車的綠色化性能。 節(jié)約不可再生能源和提高燃料效率的汽車輕量化解決方案正推動碳纖維應用快速增長
    發(fā)表于 01-25 16:52

    怎樣分析量化過程及Verilog實現(xiàn)方法?

    編碼語法等。由于采用了整數(shù)變換,計算不會出現(xiàn)浮點數(shù),而且精度高等。這些措施使得H.264算法具有很高的編碼效率。在量化方面,量化步長采用52個,下面將主要分析量化。在此,提出量化的Ve
    發(fā)表于 07-05 08:16

    請問怎樣實現(xiàn)H.264的量化?

    量化的功能有哪些?量化的算法是什么?怎樣用Verilog語言實現(xiàn)H.264的量化?如何運用Modelsim對H.264進行仿真?
    發(fā)表于 04-28 06:12

    INT8量化常見問題的解決方案

    一、int8的輸出和fp32模型輸出差異比較大 解決方案: 檢查前后處理是否有問題,int8網絡輸入輸出一般需要做scale處理,看看是否遺漏? 通過量化可視化工具分析int8的輸出和fp32
    發(fā)表于 09-19 06:09

    基于模糊規(guī)則的服裝風格的區(qū)域量化實現(xiàn)

    服裝風格的概念和影響因素十分復雜,是款式CAD 實現(xiàn)智能化的難點所在。本文根據(jù)模糊規(guī)則,采用劃分風格區(qū)域的方法對款式風格進行初步的量化。通過對具體款式的量化分析,對
    發(fā)表于 08-15 09:06 ?17次下載

    數(shù)字馬達控制系統(tǒng)的量化誤差設計方案

    數(shù)字馬達控制系統(tǒng)的量化誤差設計方案 量化誤差的產生 數(shù)字控制系統(tǒng)能夠為設計人員提供多種優(yōu)勢,如更易于實現(xiàn)高級算法功能、成本更低且性能更穩(wěn)定等
    發(fā)表于 03-12 15:49 ?795次閱讀
    數(shù)字馬達控制系統(tǒng)的<b class='flag-5'>量化</b>誤差設計<b class='flag-5'>方案</b>

    非線性量化的模擬實現(xiàn)方法

    本內容詳細介紹了非線性量化的模擬實現(xiàn)方法
    發(fā)表于 06-22 15:54 ?26次下載
    非線性<b class='flag-5'>量化</b>的模擬<b class='flag-5'>實現(xiàn)</b>方法

    如何使用FPGA實現(xiàn)微型SAR成像的量化顯示

    針對微型合成孔徑雷達(SAR)實時成像處理機高性能、小體積、低功耗的特點和要求,提出了一種基于FPGA實現(xiàn)微型SAR成像灰度量化、顯示驅動的設計方案。采用StratixⅡEP2S180開發(fā)板為
    發(fā)表于 01-26 15:30 ?12次下載

    深度解析MegEngine 4 bits量化開源實現(xiàn)

    因此量化模型被廣泛使用在推理側,量化也成為了一個重要且非?;钴S的研究領域。近期,MegEngine 開源了 4 bits 的量化的相關內容,通過 MegEngine 4 bits 量化
    的頭像 發(fā)表于 09-23 15:08 ?1264次閱讀

    淺談輕量化設計:材料、創(chuàng)新技術及未來解決方案

    量化的材料就是可以用來減輕產品自重且可以提高產品綜合性能的材料。材料輕量化,指的是在滿足機械性能要求的前提下,通過采用輕量化的金屬和非金屬材料實現(xiàn)重量減輕的方法。在當前汽車制造領域,
    的頭像 發(fā)表于 01-29 10:43 ?2066次閱讀

    量化5G核心網的實現(xiàn)方式

    5G核心網分離架構明確了各網元間的分工,為輕量化5GC的實現(xiàn)提供了保障。輕量化5GC設備是一種利用較少資源實現(xiàn)核心網主要功能的技術產品,通常在單個硬件服務器上就能
    發(fā)表于 06-20 10:35 ?1384次閱讀
    輕<b class='flag-5'>量化</b>5G核心網的<b class='flag-5'>實現(xiàn)</b>方式

    基于MacroBenchmark的性能測試量化指標方案

    基于Benchmark的性能測試量化指標方案是一種用于評估和量化系統(tǒng)性能的方法。通過使用Benchmark測試工具,該方案旨在提供可靠的性能數(shù)據(jù),并使用具體的指標來衡量系統(tǒng)在各個方面的
    的頭像 發(fā)表于 10-17 10:15 ?1237次閱讀