自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何降低視覺(jué)Transformer計(jì)算成本?時(shí)間冗余方法讓人大吃一驚

人工智能 新聞
在為語(yǔ)言領(lǐng)域帶來(lái)變革之后,Transformer 正在進(jìn)軍視覺(jué)領(lǐng)域,但其也有著高計(jì)算成本的問(wèn)題。近日,威斯康星大學(xué)麥迪遜分校一個(gè)研究團(tuán)隊(duì)提出了 Eventful Transformer,可通過(guò)在視覺(jué) Transformer 中利用時(shí)間冗余來(lái)節(jié)省成本。

Transformer 一開始是為自然語(yǔ)言處理任務(wù)設(shè)計(jì)的,但現(xiàn)在卻已經(jīng)被廣泛用于視覺(jué)任務(wù)。視覺(jué) Transformer 在一系列視覺(jué)識(shí)別任務(wù)上實(shí)現(xiàn)了出色的準(zhǔn)確度,并在圖像分類、視頻分類和目標(biāo)檢測(cè)等任務(wù)上取得了當(dāng)前最優(yōu)的表現(xiàn)。

視覺(jué) Transformer 的一大缺點(diǎn)是計(jì)算成本高。典型的卷積網(wǎng)絡(luò)(CNN)處理每張圖像需要數(shù)十 GFlops,而視覺(jué) Transformer 所需的往往會(huì)多上一個(gè)數(shù)量級(jí),達(dá)到每張圖像數(shù)百 GFlops。在處理視頻時(shí),由于數(shù)據(jù)量巨大,這個(gè)問(wèn)題更為嚴(yán)重。高昂的計(jì)算成本讓視覺(jué) Transformer 難以被部署到資源有限或有嚴(yán)格延遲需求的設(shè)備上,這就限制了這項(xiàng)技術(shù)的應(yīng)用場(chǎng)景,否則我們已經(jīng)有一些激動(dòng)人心的應(yīng)用了。

在近期一篇論文中,威斯康星大學(xué)麥迪遜分校的三位研究者 Matthew Dutson、Yin Li 和 Mohit Gupta 首先提出可以在后續(xù)輸入之間使用時(shí)間冗余來(lái)降低視覺(jué) Transformer 在視頻應(yīng)用中的成本。他們也發(fā)布了模型代碼,其中包含用于構(gòu)建 Eventful Transformer 的 PyTorch 模塊。

圖片

  • 論文地址:https://arxiv.org/pdf/2308.13494.pdf
  • 項(xiàng)目地址:http://wisionlab.com/project/eventful-transformers

時(shí)間冗余:首先假設(shè)有一個(gè)視覺(jué) Transformer,其可以逐幀或逐視頻片段地處理視頻序列。這個(gè) Transformer 可能是簡(jiǎn)單的逐幀處理的模型(如目標(biāo)檢測(cè)器)或是某個(gè)時(shí)空模型的中間步驟(如 ViViT 的分解式模型的第一步)。不同于一個(gè)輸入就是一個(gè)完整序列的語(yǔ)言處理 Transformer,在這里,研究者的做法是隨時(shí)間為 Transformer 提供多個(gè)不同的輸入(幀或視頻片段)。

自然視頻包含顯著的時(shí)間冗余,即后續(xù)幀之間的差異很小。盡管如此,包括 Transformer 在內(nèi)的深度網(wǎng)絡(luò)通常都會(huì)「從頭開始」計(jì)算每一幀。該方法會(huì)丟棄之前推理獲得的潛在相關(guān)信息,浪費(fèi)極大。故而這三位研究者設(shè)想:是否可以復(fù)用之前計(jì)算步驟的中間計(jì)算結(jié)果來(lái)提升處理冗余序列的效率?

自適應(yīng)推理:對(duì)于視覺(jué) Transformer 以及一般意義上的深度網(wǎng)絡(luò)而言,推理成本通常由架構(gòu)決定。然而在現(xiàn)實(shí)應(yīng)用中,可用的資源可能會(huì)隨時(shí)間而變化,比如可能因?yàn)榇嬖谙喔?jìng)爭(zhēng)的進(jìn)程或電源發(fā)生變化。如此一來(lái),可能就存在運(yùn)行時(shí)修改模型計(jì)算成本的需求。在這項(xiàng)新成果中,研究者設(shè)定的一大主要設(shè)計(jì)目標(biāo)便是適應(yīng)性 —— 其方法可實(shí)現(xiàn)對(duì)計(jì)算成本的實(shí)時(shí)控制。下圖 1(底部)給出了在視頻處理過(guò)程中修改計(jì)算預(yù)算的示例。

圖片

Eventful Transformer:本文提出了 Eventful Transformer,這類 Transformer 能利用輸入之間的時(shí)間冗余來(lái)實(shí)現(xiàn)高效且自適應(yīng)的推理。Eventful 這一術(shù)語(yǔ)的靈感來(lái)自事件相機(jī)(event camera),這種傳感器能在場(chǎng)景變化時(shí)離散地記錄影像。Eventful Transformer 會(huì)跟蹤隨時(shí)間發(fā)生的 token 層面的變化情況,并在每個(gè)時(shí)間步驟有選擇性地更新 token 表征和自注意力映射圖。Eventful Transformer 的模塊中包含一種門控模塊,用于控制運(yùn)行時(shí)間被更新 token 的數(shù)量。

該方法可用于現(xiàn)成的模型(通常無(wú)需再訓(xùn)練)并且兼容許多視頻處理任務(wù)。研究者也進(jìn)行了實(shí)驗(yàn)論證,結(jié)果表明 Eventful Transformer 可用于現(xiàn)有的當(dāng)前最佳模型,在極大降低它們的計(jì)算成本的同時(shí)還能維持其原有的準(zhǔn)確度。

Eventful Transformer

這項(xiàng)研究的目標(biāo)加速用于視頻識(shí)別的視覺(jué) Transformer。在這個(gè)場(chǎng)景中,視覺(jué) Transformer 需要反復(fù)處理視頻幀或視頻片段,具體的任務(wù)包括視頻目標(biāo)檢測(cè)和視頻動(dòng)作識(shí)別等。這里提出的關(guān)鍵思想是利用時(shí)間冗余,即復(fù)用之前時(shí)間步驟的計(jì)算結(jié)果。下面將詳細(xì)描述如何通過(guò)修改 Transformer 模塊來(lái)使其具備感知時(shí)間冗余的能力。

token 門控:檢測(cè)冗余

這一小節(jié)將介紹研究者提出的兩種新模塊:token 門和 token 緩沖器。這些模塊讓模型可以識(shí)別和更新自上次更新后有明顯變化的 token。

門模塊:該門會(huì)從輸入 token N 中選擇一部分 M 發(fā)送給下游層執(zhí)行計(jì)算。其記憶中維護(hù)著一個(gè)參照 token 集,記為 u。這種參照向量包含每個(gè) token 在其最近一次更新時(shí)的值。在每個(gè)時(shí)間步驟,比較各個(gè) token 與其對(duì)應(yīng)的參照值,其中與參照值相差較大的 token 獲得更新。

現(xiàn)在將該門的當(dāng)前輸入記為 c。在每個(gè)時(shí)間步驟,按照以下流程更新門的狀態(tài)并決定其輸出(見(jiàn)下圖 2):

圖片

1. 計(jì)算總誤差 e = u ? c。

2. 對(duì)誤差 e 使用一個(gè)選取策略。選擇策略返回一個(gè)二元掩碼 m(相當(dāng)于一個(gè) token 索引列表),表示其中哪 M 個(gè) token 應(yīng)被更新。

3. 提取出上述策略選取的 token。圖 2 中將其描述為乘積 c×m;在實(shí)踐中則是通過(guò)沿 c 的第一個(gè)軸執(zhí)行「gather」操作來(lái)實(shí)現(xiàn)。這里將收集到的 token 記為圖片,這就是該門的輸出。

4. 將參照 token 更新成所選 token。圖 2 將這個(gè)過(guò)程描述為圖片;在實(shí)踐中使用的操作則是「scatter」。在第一個(gè)時(shí)間步驟,門會(huì)更新所有 token(初始化 u ← c 并返回 c? = c)。

緩沖器模塊:緩沖模塊維護(hù)著一個(gè)狀態(tài)張量圖片,其跟蹤的是每個(gè)輸入 token 

圖片時(shí),該緩沖器將來(lái)自 f (c?) 的 token 分散到其在 b 中對(duì)應(yīng)位置。然后它返回更新后的 b 作為其輸出,參見(jiàn)下圖 3。

圖片

研究者將每個(gè)門與其后的緩沖器組成一對(duì)。這里給出一種簡(jiǎn)單的使用模式:門的輸出

圖片被傳遞給一系列針對(duì)各個(gè) token 的運(yùn)算 f (c?);然后將所得到的張量圖片傳遞給一個(gè)緩沖器,其將恢復(fù)完整的形狀。

構(gòu)建可感知冗余的 Transformer

為了利用上述時(shí)間冗余,研究者提出了一種對(duì) Transformer 模塊的修改方案。下圖 4 展示了 Eventful Transformer 模塊的設(shè)計(jì)。該方法可以加速針對(duì)各個(gè) token 的運(yùn)算(如 MLP)以及查詢 - 鍵值和注意力 - 值乘法。

圖片

在針對(duì)各個(gè) token 的運(yùn)算 Transformer 模塊中,很多運(yùn)算都是針對(duì)各個(gè) token 的,也就是說(shuō)它們不涉及到 token 之間的信息交換,其中包括 MLP 和 MSA 中的線性變換。為了節(jié)省計(jì)算成本,研究者表示可以跳過(guò)未被門選取的 token 的面向 token 的運(yùn)算。由于 token 之間的獨(dú)立性,這不會(huì)改變對(duì)所選 token 的運(yùn)算結(jié)果。參見(jiàn)圖 3。

具體來(lái)說(shuō),針對(duì)各個(gè) token 的運(yùn)算(包括 W_qkv 變換、W_p 變換和 MLP)的連續(xù)序列,研究者使用了一對(duì)門 - 緩沖器。注意,他們還在 skip 連接之前添加了緩沖器以確保兩個(gè)加法操作數(shù)的 token 是正確對(duì)齊的。

針對(duì)各個(gè) token 的運(yùn)算的成本正比于 token 的數(shù)量。門可將這個(gè)數(shù)量從 N 降至 M,也就將下游的針對(duì)各個(gè) token 的運(yùn)算的計(jì)算成本降低了 N/M 倍。

查詢 - 鍵值的積:現(xiàn)在來(lái)看看查詢 - 鍵值積 B = q k^T。

下圖 5 展示了稀疏地更新查詢 - 鍵值積 B 中一部分元素的方法。

圖片

這些更新的總體成本為 2NMD,相較而言,從頭開始計(jì)算 B 的成本為 N^2D。注意,新方法的成本正比于 M,即門選取的 token 的數(shù)量。當(dāng) M < N/2 時(shí)(此時(shí)更新的 token 不到總量一半),可節(jié)省計(jì)算量。

注意力 - 值的積:研究者為此提出了一種基于增量 ? 的更新策略。

下圖 6 展示了新提出的高效計(jì)算三個(gè)增量項(xiàng)的方法。

圖片

同樣當(dāng) M < N/2 時(shí),可節(jié)省計(jì)算量。

token 選取策略

Eventful Transformer 的一大重要設(shè)計(jì)是其 token 選取策略。給定一個(gè)門誤差張量 e,這樣一個(gè)策略的目標(biāo)是生成一個(gè)掩碼 m,其中指示了應(yīng)當(dāng)被更新的 token。具體的策略包括:

Top-r 策略:該策略選取 r 個(gè)誤差 e 有最大范數(shù)的 token(這里使用的是 L2 范數(shù))。

閾值策略:該策略選取誤差 e 的范數(shù)超過(guò)一個(gè)閾值 h 的所有 token。

其它策略:更復(fù)雜精細(xì)的 token 選取策略可實(shí)現(xiàn)更好的準(zhǔn)確度 - 成本權(quán)衡,比如可以使用一個(gè)輕量級(jí)策略網(wǎng)絡(luò)來(lái)學(xué)習(xí)一個(gè)策略。但是,訓(xùn)練策略的決策機(jī)制的難度可能很大,因?yàn)槎诖a m 一般是不可微分的。另一個(gè)思路是使用重要度分?jǐn)?shù)作為選取的參考信息。但這些想法都還有待未來(lái)研究。

實(shí)驗(yàn)

研究者用實(shí)驗(yàn)評(píng)估了新提出的方法,具體使用的任務(wù)是視頻目標(biāo)檢測(cè)和視頻動(dòng)作識(shí)別。

下圖 7 展示了視頻目標(biāo)檢測(cè)的實(shí)驗(yàn)結(jié)果。其中正軸是計(jì)算節(jié)省率,負(fù)軸是新方法的 mAP50 分?jǐn)?shù)的相對(duì)減少量??梢钥吹?,新方法用少量的準(zhǔn)確度犧牲換來(lái)了顯著的計(jì)算量節(jié)省。

圖片

下圖 8 給出了在視頻目標(biāo)檢測(cè)任務(wù)上的方法比較和消融實(shí)驗(yàn)結(jié)果。

圖片

下圖 9 給出了視頻動(dòng)作識(shí)別的實(shí)驗(yàn)結(jié)果。

圖片

下表 2 給出了在一臺(tái) CPU(Xeon Silver 4214, 2.2 GHz)和一臺(tái) GPU(NVIDIA RTX3090)上運(yùn)行時(shí)間(毫秒)結(jié)果,可以看到時(shí)間冗余在 GPU 上帶來(lái)的速度提升可達(dá) 1.74 倍,在 CPU 上帶來(lái)的提升可達(dá) 2.47 倍。

圖片

更多技術(shù)細(xì)節(jié)與實(shí)驗(yàn)結(jié)果參見(jiàn)原論文。

責(zé)任編輯:張燕妮 來(lái)源: 機(jī)器之心
相關(guān)推薦

2024-05-10 15:41:22

字符串TypeScrip

2019-03-15 16:16:15

蘋果ARVR

2022-07-08 09:53:51

JavaScript單行代碼

2020-09-10 09:39:56

大數(shù)據(jù)大數(shù)據(jù)統(tǒng)計(jì)數(shù)據(jù)

2022-07-12 10:18:05

JavaScript單行代碼

2021-09-27 11:13:12

比特幣加密貨幣貨幣

2011-03-29 09:34:38

APP應(yīng)用程序LBS

2021-06-11 13:20:41

Vivaldi 4.0Linux瀏覽器

2024-04-03 14:17:47

VR虛擬現(xiàn)實(shí)增強(qiáng)現(xiàn)實(shí)

2024-10-29 08:30:29

2023-10-08 14:35:08

2022-05-23 14:55:40

云計(jì)算工具成本

2010-11-29 15:35:36

云計(jì)算經(jīng)濟(jì)學(xué)

2015-02-11 10:21:07

JavaScript

2010-04-15 14:46:17

服務(wù)器

2010-05-14 09:02:03

云計(jì)算成本

2020-06-09 11:16:42

云計(jì)算云平臺(tái)工具

2022-02-18 13:46:05

云計(jì)算混合云技巧

2011-01-24 09:30:37

云計(jì)算

2021-03-19 10:52:55

數(shù)據(jù)隱私安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)