在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

tansformer的量化實現方案

454398 ? 來源:AI加速微信公眾號 ? 作者:AI加速微信公眾號 ? 2020-11-03 15:21 ? 次閱讀

理論介紹

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

1) PACT

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

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

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

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

2) quantization-aware training

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

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




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

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

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



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

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

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

Transformer量化結果

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

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


發現存在以下問題:

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

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

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

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

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

編輯:hfy


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

    關注

    68

    文章

    10863

    瀏覽量

    211765
  • Transformer
    +關注

    關注

    0

    文章

    143

    瀏覽量

    6006
收藏 人收藏

    評論

    相關推薦

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

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

    實現量化生產線性恒流驅動IC方案

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

    怎么在GUI中如何實現量化

    在GUI中如何實現均勻量化和非均勻量化,可以達到等距輸入參數得到相應變化,謝謝幫助,最好給個程序
    發表于 05-26 18:23

    碳纖維為何能實現汽車輕量化

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

    怎樣分析量化過程及Verilog實現方法?

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

    請問怎樣實現H.264的量化

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

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

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

    基于模糊規則的服裝風格的區域量化實現

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

    數字馬達控制系統的量化誤差設計方案

    數字馬達控制系統的量化誤差設計方案 量化誤差的產生 數字控制系統能夠為設計人員提供多種優勢,如更易于實現高級算法功能、成本更低且性能更穩定等
    發表于 03-12 15:49 ?736次閱讀
    數字馬達控制系統的<b class='flag-5'>量化</b>誤差設計<b class='flag-5'>方案</b>

    非線性量化的模擬實現方法

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

    如何使用FPGA實現微型SAR成像的量化顯示

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

    深度解析MegEngine 4 bits量化開源實現

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

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

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

    量化5G核心網的實現方式

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

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

    基于Benchmark的性能測試量化指標方案是一種用于評估和量化系統性能的方法。通過使用Benchmark測試工具,該方案旨在提供可靠的性能數據,并使用具體的指標來衡量系統在各個方面的
    的頭像 發表于 10-17 10:15 ?794次閱讀
    主站蜘蛛池模板: 久久国产美女免费观看精品| 亚洲人在线| 婷婷综合久久中文字幕| 免费看欧美一级特黄a大片一| 伊人狼人在线| 欧美一区色| 日韩一区二区三区免费| 成人欧美一区二区三区黑人免费| 酒色网址| 一二三区电影| 国产做a爰片久久毛片a| 深夜偷偷看视频在线观看| 国产一区二区三区 韩国女主播| 青青热久久国产久精品秒播| 性过程很黄的小说男男| 人与牲动交bbbbxxxx| 午夜视频观看| 午夜女同影院| 美女黄色在线看| 久久免| 在线 你懂| 国产精品永久免费| 天天摸天天碰成人免费视频| 亚洲系列中文字幕一区二区| 日本黄色一级网站| 日本wwwxx| 永久黄网站色视频免费| 国产网站免费| 美国一区二区三区| 日本黄色影片在线观看| 天堂在线bt| 一 级 黄 色 片生活片| 国产精品久久久久久久久免费hd| 性欧美处| 拍真实国产伦偷精品| 神马午夜影院| 亚欧美色| 天天爽夜夜爽夜夜爽| 刺激一区| 2018国产一级天天弄| 中文一区在线|