📢 Gate廣場 #MBG任务挑战# 發帖贏大獎活動火熱開啓!
想要瓜分1,000枚MBG?現在就來參與,展示你的洞察與實操,成爲MBG推廣達人!
💰️ 本期將評選出20位優質發帖用戶,每人可輕鬆獲得50枚MBG!
如何參與:
1️⃣ 調研MBG項目
對MBG的基本面、社區治理、發展目標、代幣經濟模型等方面進行研究,分享你對項目的深度研究。
2️⃣ 參與並分享真實體驗
參與MBG相關活動(包括CandyDrop、Launchpool或現貨交易),並曬出你的參與截圖、收益圖或實用教程。可以是收益展示、簡明易懂的新手攻略、小竅門,也可以是現貨行情點位分析,內容詳實優先。
3️⃣ 鼓勵帶新互動
如果你的帖子吸引到他人參與活動,或者有好友評論“已參與/已交易”,將大幅提升你的獲獎概率!
MBG熱門活動(帖文需附下列活動連結):
Gate第287期Launchpool:MBG — 質押ETH、MBG即可免費瓜分112,500 MBG,每小時領取獎勵!參與攻略見公告:https://www.gate.com/announcements/article/46230
Gate CandyDrop第55期:CandyDrop x MBG — 通過首次交易、交易MBG、邀請好友註冊交易即可分187,500 MBG!參與攻略見公告:https://www.gate.com/announcements
如何降低視覺Transformer運算成本?時間冗餘方法讓人大吃一驚
Transformer 一開始是為自然語言處理任務設計的,但現在卻被廣泛用於視覺任務。視覺Transformer 在一系列視覺辨識任務上實現了出色的準確度,並在影像分類、影片分類和目標偵測等任務上取得了目前最優的表現。
視覺Transformer 的一大缺點是運算成本高。典型的捲積網路(CNN)處理每張影像需要數十GFlops,而視覺Transformer 所需的往往會多上一個數量級,達到每張影像數百GFlops。在處理影片時,由於資料量龐大,這個問題更為嚴重。高昂的運算成本讓視覺Transformer 難以部署到資源有限或有嚴格延遲需求的裝置上,這就限制了這項技術的應用場景,否則我們已經有一些令人興奮的應用了。
在近期一篇論文中,威斯康辛大學麥迪遜分校的三位研究者Matthew Dutson、Yin Li 和Mohit Gupta 首先提出可以在後續輸入之間使用時間冗餘來降低視覺Transformer 在視訊應用中的成本。他們也發布了模型程式碼,其中包含用於建立Eventful Transformer 的PyTorch 模組。
時間冗餘:首先假設有一個視覺Transformer,其可以逐幀或逐視頻片段地處理視訊序列。這個Transformer 可能是簡單的逐幀處理的模型(如目標偵測器)或是某個時空模型的中間步驟(如ViViT 的分解式模型的第一步)。不同於一個輸入就是一個完整序列的語言處理Transformer,在這裡,研究者的做法是隨時間為Transformer 提供多個不同的輸入(幀或視訊片段)。
自然视频包含显著的时间冗余,即后续帧之间的差异很小。尽管如此,包括 Transformer 在内的深度网络通常都会「从头开始」计算每一帧。该方法会丢弃之前推理获得的潜在相关信息,浪费极大。故而这三位研究者设想:是否可以复用之前计算步骤的中间计算结果来提升处理冗余序列的效率?
自適應推理:對於視覺Transformer 以及一般意義上的深度網路而言,推理成本通常由架構決定。然而在現實應用中,可用的資源可能會隨時間而變化,例如可能因為存在相競爭的進程或電源變化。如此一來,可能就存在運行時修改模型計算成本的需求。在這項新成果中,研究者設定的一大主要設計目標便是適應性- 其方法可實現對計算成本的即時控制。下圖1(底部)給出了在視訊處理過程中修改計算預算的範例。
此方法可用於現成的模型(通常無需再訓練)並且與許多視訊處理任務相容。研究者也進行了實驗論證,結果顯示Eventful Transformer 可用於現有的當前最佳模型,在極大降低它們的計算成本的同時也能維持其原有的準確度。
多事變壓器
這項研究的目標加速用於視頻識別的視覺Transformer。在這個場景中,視覺Transformer 需要反覆處理視訊畫面或影片片段,具體的任務包括影片目標偵測和影片動作辨識等。這裡提出的關鍵想法是利用時間冗餘,即重複使用之前時間步驟的計算結果。以下將詳細描述如何透過修改Transformer 模組來使其具備感知時間冗餘的能力。
token 門控:偵測冗餘
這一小節將介紹研究者提出的兩種新模組:token 閘和token 緩衝器。這些模組讓模型可以識別和更新自上次更新後有明顯變化的token。
閘模組:該閘會從輸入token N 中選擇一部分M 傳送給下下層執行計算。其記憶中維護著一個參考token 集,記為u。這種參照向量包含每個token 在其最近一次更新時的值。在每個時間步驟,比較各個token 與其對應的參考值,其中與參考值相差較大的token 獲得更新。
現在將該閘的目前輸入記為c。在每個時間步驟,依照下列流程更新閘的狀態並決定其輸出(見下圖2):
對誤差e 使用一個選取策略。選擇策略傳回一個二元掩碼m(相當於一個token 索引清單),表示其中哪M 個token 應該被更新。
提取出上述策略所選取的token。圖2 中將其描述為乘積c×m;在實務上則是透過沿著c 的第一個軸執行「gather」操作來實現。這裡將收集到的token 記為
緩衝器模組:緩衝模組維護著一個狀態張量
建構可感知冗餘的Transformer
為了利用上述時間冗餘,研究者提出了Transformer 模組的修改方案。下圖4 展示了Eventful Transformer 模組的設計。此方法可以加速針對各個token 的運算(如MLP)以及查詢- 鍵值和注意力- 值乘法。
具體來說,針對各個token 的運算(包括W_qkv 變換、W_p 變換和MLP)的連續序列,研究者使用了一對門- 緩衝器。請注意,他們還在skip 連接之前添加了緩衝器以確保兩個加法操作數的token 是正確對齊的。
針對各個token 的運算的成本正比於token 的數量。門可將這個數量從N 降至M,也就將下游的針對各個token 的運算的計算成本降低了N/M 倍。
查詢- 鍵值的積:現在來看看查詢- 鍵值積B = qk^T。
下圖5 展示了稀疏地更新查詢- 鍵值積B 中一部分元素的方法。
注意力- 值的積:研究者為此提出了一種基於增量∆ 的更新策略。
下圖6 展示了新提出的高效計算三個增量項的方法。
token 選取政策
Eventful Transformer 的一大重要設計是其token 選取策略。給定一個閘誤差張量e,這樣一個策略的目標是產生一個遮罩m,其中指示了應當被更新的token。具體的策略包括:
Top-r 策略:此策略選取r 個誤差e 有最大範數的token(這裡使用的是L2 範數)。
閾值策略:此策略選取誤差e 的範數超過一個閾值h 的所有token。
其它策略:更複雜精細的token 選取策略可實現更好的準確度- 成本權衡,例如可以使用一個輕量級策略網路來學習一個策略。但是,訓練策略的決策機制的難度可能很大,因為二元掩碼m 一般是不可微分的。另一個想法是使用重要度分數作為選取的參考資訊。但這些想法都還有待未來研究。
實驗
研究者用實驗評估了新提出的方法,具體使用的任務是視訊目標偵測和視訊動作辨識。
下图 7 展示了视频目标检测的实验结果。其中正轴是计算节省率,负轴是新方法的 mAP50 分数的相对减少量。可以看到,新方法用少量的准确度牺牲换来了显著的计算量节省。