<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Google AI與Deepmind強(qiáng)強(qiáng)聯(lián)合,推出新工具加速神經(jīng)網(wǎng)絡(luò)稀疏化進(jìn)程

          共 3217字,需瀏覽 7分鐘

           ·

          2021-03-16 13:06



            新智元報(bào)道  

          來源:Google AI Blog
          編輯:keyu
          【新智元導(dǎo)讀】優(yōu)化神經(jīng)網(wǎng)絡(luò)的一個(gè)方法是稀疏化,然而,受到支持不足和工具缺乏的限制,該技術(shù)在生產(chǎn)中的使用仍然受限。為了解決這一問題,近日,Google聯(lián)合Deepmind開發(fā)出了在TensorFlow Lite和XNNPACK ML中的新特性和工具庫。

          神經(jīng)網(wǎng)絡(luò)具有的推理功能,使得許許多多實(shí)時(shí)應(yīng)用變?yōu)榭赡堋热缱藨B(tài)估計(jì)和背景模糊。這些應(yīng)用通常擁有低延遲的特點(diǎn),并且還具有隱私意識(shí)。
           
          通過使用像TensorFlow Lite這樣的ML推理框架和XNNPACK ML加速庫,工程師得以在模型大小、推理速度和預(yù)測質(zhì)量之間找到一個(gè)最佳點(diǎn)來優(yōu)化他們的模型,以便在各種設(shè)備上運(yùn)行。
           
          優(yōu)化模型的一種方法是使用稀疏神經(jīng)網(wǎng)絡(luò),這些網(wǎng)絡(luò)的很大一部分權(quán)值都設(shè)置為零:
           

          一般來說,這是一種理想的特性,因?yàn)樗粌H通過壓縮減少了模型的大小,而且可以跳過相當(dāng)一部分的乘加操作,從而加速推理。
           
          此外,我們還可以增加模型中的參數(shù)數(shù)量,然后簡化它,以匹配原始模型的質(zhì)量,這仍然受益于加速推理。
           
          然而,該技術(shù)在生產(chǎn)中的使用仍然有限,這主要是由于缺乏簡化流行卷積架構(gòu)的工具,此外,對在設(shè)備上運(yùn)行這些操作的支持也是不足的。
           
          針對此問題,近日,Google宣布了一系列XNNPACK加速庫和TensorFlow Lite上的新特性:
           
          這些特性旨在幫助研究人員開發(fā)自己的稀疏設(shè)備模型,可以支持稀疏網(wǎng)絡(luò)的有效推斷,還包括了教會(huì)開發(fā)人員如何稀疏化神經(jīng)網(wǎng)絡(luò)的指導(dǎo)。
           
          這些新的工具是與DeepMind合作開發(fā)出來的,它們提供了新一代的實(shí)時(shí)感知體驗(yàn),包括MediaPipe中的手部跟蹤和谷歌Meet中的背景功能,并將推理速度從1.2倍提高到2.4倍,同時(shí)將模型尺寸減少一半。
           
          圖:針對Google Meet背景功能,稠密(左)和稀疏(右)模型處理時(shí)間的對比。
           
          下文主要提供了稀疏神經(jīng)網(wǎng)絡(luò)的技術(shù)部分的概述,并對研究人員如何創(chuàng)建自己的稀疏模型問題提供了一些啟發(fā)。
           
          主要包括:
          • 將一個(gè)神經(jīng)網(wǎng)絡(luò)稀疏化
          • 訓(xùn)練稀疏神經(jīng)網(wǎng)絡(luò)
          • 實(shí)際應(yīng)用
           

          將一個(gè)神經(jīng)網(wǎng)絡(luò)稀疏化

          許多現(xiàn)代深度學(xué)習(xí)架構(gòu),如MobileNet和EfficientNetLite,主要是由具有小卷積核的深度卷積和從輸入圖像線性組合特征的1x1卷積組成。
           
          雖然這樣的架構(gòu)有許多潛在的精簡目標(biāo),包括在許多網(wǎng)絡(luò)開始時(shí)經(jīng)常出現(xiàn)的完整2D卷積或者是深度卷積,但從推斷時(shí)間來看,1x1卷積的運(yùn)算是最昂貴的,因?yàn)樗鼈冋伎傆?jì)算量的65%以上,因此,它們是稀疏化的最佳目標(biāo)。
           
          圖:現(xiàn)代移動(dòng)架構(gòu)中1x1卷積的推斷時(shí)間對比
           
          在現(xiàn)代的推理設(shè)備中(如XNNPACK),深度學(xué)習(xí)模型中1x1卷積的實(shí)現(xiàn)以及其他操作都依賴于HWC張量布局,其中張量的維數(shù)對應(yīng)于輸入圖像的高度、寬度和通道(如紅色、綠色或藍(lán)色)。
           
          這個(gè)張量配置,允許推理引擎并行地處理對應(yīng)于每個(gè)空間位置(即圖像的每個(gè)像素)的通道。
           
          然而,張量的這種排序并不適合于稀疏推理,因?yàn)樗鼘⑼ǖ涝O(shè)置為張量的最內(nèi)層維,并使訪問它的計(jì)算成本更高。
           
          而Google對XNNPACK的更新,就使它具有了檢測模型是否稀疏的能力:
           
          過程將從標(biāo)準(zhǔn)的密集推理模式切換到稀疏推理模式,在稀疏推理模式中,XNNPACK使用CHW (channel, height, width)的張量布局。
           
          張量的這種重新排序,可以允許加速實(shí)現(xiàn)稀疏的1x1卷積核,原因有兩個(gè):
           
          1)在單個(gè)條件檢查之后,當(dāng)對應(yīng)的通道權(quán)值為零時(shí),可以跳過張量的整個(gè)空間切片,而不是逐像素測試;
           
          2)當(dāng)信道權(quán)值為非零時(shí),可以通過將相鄰的像素加載到同一存儲(chǔ)單元來提高計(jì)算效率。
           
          這使使用者能夠同時(shí)處理多個(gè)像素,同時(shí)也可以在多個(gè)線程中并行執(zhí)行每個(gè)操作。
           
          當(dāng)至少80%的權(quán)重為零時(shí),這些變化將會(huì)一起導(dǎo)致1.8倍到2.3倍的加速。
           
          為了避免每次操作后在稀疏推理最優(yōu)的CHW張量布局和標(biāo)準(zhǔn)的HWC張量布局之間來回轉(zhuǎn)換,XNNPACK提供了幾種在CHW布局中CNN算子的高效實(shí)現(xiàn)。

          訓(xùn)練稀疏神經(jīng)網(wǎng)絡(luò)指南

          為了創(chuàng)建稀疏神經(jīng)網(wǎng)絡(luò),這個(gè)版本包含的指南建議從稠密版本開始,然后在訓(xùn)練過程中逐漸將其權(quán)重的一部分設(shè)置為零——這個(gè)過程叫做剪枝。
           
          在許多可用的修剪技術(shù)中,Google的開發(fā)者建議使用量級(jí)修剪(可在TF模型優(yōu)化工具包中獲得)或最近引入的RigL方法。
           
          只要適當(dāng)增加訓(xùn)練時(shí)間,這兩種方法都可以在不降低深度學(xué)習(xí)模型質(zhì)量的前提下,成功地簡化深度學(xué)習(xí)模型。
           
          得到的稀疏模型可以有效地存儲(chǔ)在壓縮格式中,與稠密模型相比,壓縮格式的大小減少了1 / 2。
           
          稀疏網(wǎng)絡(luò)的質(zhì)量受幾個(gè)超參數(shù)的影響,包括訓(xùn)練時(shí)間、學(xué)習(xí)速率和剪枝計(jì)劃。TF Pruning API提供了一個(gè)如何選擇這些模型的優(yōu)秀示例,以及一些訓(xùn)練這類模型的技巧。
           
          官方的建議是運(yùn)行超參數(shù)搜索來找到應(yīng)用程序的最佳位置。
           
          實(shí)際應(yīng)用
           
          Google的開發(fā)者證明了將分類任務(wù)、密集分割(例如背景模糊)和回歸問題(mediapihands)稀疏化都是可能的,這為用戶提供了切實(shí)的好處。
           
          例如,在Google Meet中,稀疏化將模型的推斷時(shí)間降低了30%,這為更多的用戶提供了訪問更高質(zhì)量模型的機(jī)會(huì)。
           
           
          這里描述的稀疏性方法最適合基于反向殘余塊(Inverted Residual Blocks)的架構(gòu),如MobileNetV2、MobileNetV3和EfficientNetLite。
           
          此外,網(wǎng)絡(luò)的稀疏程度影響著推理的速度和質(zhì)量——
           
          從一個(gè)固定容量的稠密網(wǎng)絡(luò)開始,Google研究者發(fā)現(xiàn),即使在30%的稀疏度下,性能也會(huì)有適度的提高。隨著稀疏度的增加,模型的質(zhì)量仍然相對接近密度基線,直到達(dá)到70%的稀疏度,超過70%的精度會(huì)有更明顯的下降。
           
          然而,開發(fā)者可以通過將基本網(wǎng)絡(luò)的大小增加20%來補(bǔ)償稀疏度為70%時(shí)的精度降低,從而在不降低模型質(zhì)量的情況下縮短推理時(shí)間。
           
          運(yùn)行稀疏化模型不需要做進(jìn)一步的更改,因?yàn)閄NNPACK可以識(shí)別并自動(dòng)啟用稀疏推理。
           

          最后,Google表示,他們將繼續(xù)擴(kuò)展XNNPACK,對CHW布局的操作提供更廣泛的支持,并探索如何將其與其他優(yōu)化技術(shù)(如量化)結(jié)合起來。

          小結(jié)

          稀疏化是一種簡單而強(qiáng)大的改進(jìn)神經(jīng)網(wǎng)絡(luò)CPU推理的技術(shù)。它允許工程師運(yùn)行更大的模型,而不會(huì)引起顯著的性能或尺寸開銷,這也為研究提供了一個(gè)有前途的新方向。
           
          感興趣的小伙伴可以去Github自行探索:
          https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/delegates/xnnpack/README.md#sparse-inference
           
          參考資料:
          https://ai.googleblog.com/2021/03/accelerating-neural-networks-on-mobile.html

          還有什么值得看?
          波士頓動(dòng)力一只48.8萬,美女沙灘遛「狗」,網(wǎng)友直呼:壕!
          慘烈!特斯拉再次撞上白色卡車,兩名乘客急送ICU

          瀏覽 72
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美乱伦图片 | 91久久精品夜夜躁日日躁欧美 | 日韩免费视频 | 黄色一级网址 | 麻豆操逼毛片视频 |