Don’t look twice! 把連續(xù)相同的圖像塊合并成一個(gè)token,就能讓Transformer的視頻處理速度大幅提升。 卡內(nèi)基梅隆大學(xué)提出了視頻大模型加速方法Run-Length Tokenization(RLT),被NeurIPS 2024選為Spotlight論文。 在精度幾乎沒(méi)有損失的前提下,RLT可以讓模型訓(xùn)練和推理速度雙雙提升。 一般情況下,利用RLT,Transformer視頻識(shí)別模型的訓(xùn)練時(shí)間可縮短30%,推理階段提速率提升更是可達(dá)67%。 對(duì)于高幀率和長(zhǎng)視頻,RLT的效果更加明顯,30fps視頻的訓(xùn)練速度可提升1倍,長(zhǎng)視頻訓(xùn)練token減少80%。 相比于傳統(tǒng)的剪枝方法,RLT能用更小的精度損失實(shí)現(xiàn)更好的加速效果。 有人想到了電視劇中的評(píng)論,認(rèn)為這項(xiàng)研究找到了在壓縮空間中進(jìn)行搜索的方法。 DeepMind科學(xué)家Sander Dieleman則評(píng)價(jià)稱,這項(xiàng)研究是一種“非主流”(Off-the-grid)的創(chuàng)新方法,但比起其他復(fù)雜的非主流研究,又顯得非常簡(jiǎn)潔。 重復(fù)圖像塊合為一個(gè)token RLT的核心原理,是利用視頻中存在大量時(shí)間上重復(fù)的圖像塊這一特點(diǎn),將重復(fù)的圖像塊合并為一個(gè)token表示。 這種情況下,還需要用一個(gè)位置編碼來(lái)表示這個(gè)token的長(zhǎng)度,但RLT總體上減少了輸入的token數(shù)量。 要想完成重復(fù)token的修剪,首先要對(duì)視頻進(jìn)行分塊。 具體來(lái)說(shuō),視頻在空間和時(shí)間維度上會(huì)被劃分成固定大小的圖像塊,每個(gè)圖像塊的大小為C×D_x×D_y×D_t,每個(gè)圖像塊都對(duì)應(yīng)一個(gè)空間-時(shí)間位置。 (其中C是通道數(shù),D_x和D_y是空間維度大小,D_t是時(shí)間維度大小。) 劃分完成之后,需要比較時(shí)間上相鄰的圖像塊,判斷它們是否相似,也就是是否需要合并。 對(duì)于時(shí)間位置相差1的兩個(gè)圖像塊P_1和P_2,取P_1的第一幀和P_2的最后一幀,計(jì)算它們的L1距離。 如果距離小于一個(gè)預(yù)設(shè)的閾值τ,就認(rèn)為P_1和P_2是靜態(tài)重復(fù)的(閾值τ表示允許多大程度的相似性,設(shè)置與具體數(shù)據(jù)集無(wú)關(guān))。 完成判別之后,重復(fù)的圖像塊會(huì)被移除。 對(duì)于一串連續(xù)的、兩兩之間都是靜態(tài)重復(fù)的圖像塊,RLT只保留第一個(gè)塊對(duì)應(yīng)的token。 這一步是在patch embedding之前完成的,因此移除token不需要改動(dòng)模型結(jié)構(gòu)。 經(jīng)過(guò)這一步,輸入的token數(shù)量從N_P降低到了N_P’(N_P’≤N_P)。 為了讓合并后的token仍然能夠反映完整的視頻信息,接下來(lái)要給每個(gè)token加上長(zhǎng)度編碼。 對(duì)于一個(gè)保留下來(lái)的token,系統(tǒng)會(huì)計(jì)算它所代表的原始token的長(zhǎng)度l_i,也就是它到下一個(gè)沒(méi)有被移除的token的距離。 長(zhǎng)度信息l_i與token的空間-時(shí)間位置(x,y,t)一起,用一個(gè)可學(xué)習(xí)的長(zhǎng)度編碼矩陣映射成一個(gè)d維的embedding向量,與patch embedding相加,作為輸入token的最終表示。 最后只需要將處理后的token序列輸入到視頻Transformer中,進(jìn)行常規(guī)的訓(xùn)練或推理過(guò)程。 不過(guò)需要注意的是,由于每個(gè)視頻樣本計(jì)算出的token數(shù)量N_P’不盡相同,樣本之間可能有較大差異。 然而標(biāo)準(zhǔn)的Transformer是按批次處理固定長(zhǎng)度的序列的。 為了能在一個(gè)批次中處理多個(gè)長(zhǎng)度不一的視頻,RLT采用了一種稱為“example packing”的方法,將這一批中所有視頻樣本的token序列首尾相連,拼成一個(gè)超長(zhǎng)的序列,作為Transformer的輸入。 這樣的話,Transformer實(shí)際上是在處理一個(gè)批次大小為1、長(zhǎng)度為所有樣本token數(shù)量之和的序列。 通過(guò)以上步驟,RLT能夠去除視頻中的許多冗余token,在幾乎不損失精度的情況下,大幅降低內(nèi)存占用和計(jì)算量,加速視頻Transformer的訓(xùn)練和推理。 訓(xùn)練時(shí)長(zhǎng)下降30% 在訓(xùn)練階段,RLT對(duì)ViT-B和ViT-L兩種規(guī)模的模型都有很好的加速效果。 在Kinetics-400上,ViT-BRLT和ViT-L訓(xùn)練時(shí)間分別從14.4小時(shí)和21.6小時(shí),降低到10.2小時(shí)和15.4小時(shí),降幅均接近30%左右,精度損失不超過(guò)0.1個(gè)百分點(diǎn); 在SSv2上,兩者的訓(xùn)練時(shí)間分別從10.1和15.2小時(shí),降低到7.2和10.8小時(shí),降幅也接近30%,精度同樣僅下降0.1個(gè)百分點(diǎn)。 相比之下,傳統(tǒng)的剪枝方法Token Merging在精度下降0.1-0.5個(gè)百分點(diǎn)的情況下,加速只有10-20%。 在推理階段,也不需要額外的訓(xùn)練,就可以將RLT作為現(xiàn)成的tokenizer,達(dá)到很好的加速效果。 具體來(lái)說(shuō),RLT能在幾乎不犧牲精度的情況下(不超過(guò)0.5個(gè)百分點(diǎn)),將推理階段的計(jì)算量和延遲降低30-60%。 同樣在Kinetics-400和SSv2上,對(duì)于ViT-B和ViT-L,RLT都能帶來(lái)60%以上的推理加速。 對(duì)于更大的ViT-H,在Kinetics-400上,RLT也能實(shí)現(xiàn)45%的加速效果。 特別地,作者還針對(duì)高幀率和長(zhǎng)時(shí)長(zhǎng)視頻數(shù)據(jù)集進(jìn)行了測(cè)試,發(fā)現(xiàn)RLT帶來(lái)的token下降幅度比在普通數(shù)據(jù)集中更高。 同時(shí)在高幀率數(shù)據(jù)集當(dāng)中,RLT能夠在精度損失同樣低的情況下,實(shí)現(xiàn)更好的加速效果。 而且?guī)试礁咝Ч苍矫黠@,對(duì)于30fps的視頻,加速可達(dá)100%。 論文地址: 本文來(lái)源:量子位 |
原創(chuàng)欄目
IT百科
網(wǎng)友評(píng)論
聚超值•精選
在經(jīng)歷了2018-2020年“蔚小理”的上市潮后,隨著國(guó)內(nèi)新能源汽車市場(chǎng)競(jìng)爭(zhēng)日益激烈,以及全球EV需求放緩,IPO的大門正在向造車新勢(shì)力們緩緩關(guān)閉。極氪的成功上市既是對(duì)新勢(shì)力的一次激勵(lì),也是一次警示——后來(lái)者必須面對(duì)越來(lái)越嚴(yán)苛的上市條件。留給哪吒汽車、廣汽埃安們的機(jī)會(huì)可能不多了。