12%計算量就能媲美原模型,Adobe、羅切斯特大學等提出YOPO剪枝技術
机器之心發表於2024-11-28
AIxiv專欄是機器之心釋出學術、技術內容的欄目。過去數年,機器之心AIxiv專欄接收報導了2000多篇內容,覆蓋全球各大高校與企業的頂級實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或者聯絡報導。投稿郵箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com
本篇論文的核心作者包括羅切斯特大學的博士研究生張澤良,指導教師徐辰良副教授,以及來自Adobe的研究員趙文天,萬錕和李宇哲。儘管近期 Qwen2-VL 和 InternVL-2.0 的出現將開源多模態大模型的 SOTA 提升到了新高度,但巨大的計算開銷限制了其在很多場景下的應用。近日,Adobe 研發團隊聯合羅切斯特大學系統性得研究了主流多模態大模型在引數和計算模式層面的冗餘,並提出了名為 YOPO(You Only Prune Once)的一系列剪枝方案。實驗結果表明 LLaVA-1.5 只需保留 12% 的計算量即可獲得與原始模型同等的效能,並且實驗團隊還驗證了這些計算冗餘在 Qwen2-VL 和 InternVL-2.0 同樣普遍存在。這為高效處理密集視覺 token 提供了新路徑。- 論文:Treat Visual Tokens as Text? But Your MLLM Only Needs Fewer Efforts to See
- 論文連結:https://arxiv.org/abs/2410.06169
- 開原始碼 & 模型:https://github.com/ZhangAIPI/YOPO_MLLM_Pruning/tree/main?tab=readme-ov-file
近期多項研究表明,隨著模型規模和輸入影像解析度的增加,多模態大模型的能力也隨之提升。然而,使用更大的模型或引入更多視覺 tokens 會帶來顯著的計算負擔。大部分多模態大模型視覺 token 數量在幾百到幾千不等,通常遠大於文字 token 的數量。這種巨大的不平衡帶來了一個關鍵挑戰:模型的計算成本隨著總輸入 token 的數量的平方而增加,從而限制了多模態大模型的可擴充套件性。儘管近期一些工作提出了對視覺 token 做削減的解決方案,如 FastV,SparseVLM, Pyramid-drop 等,但這類方法不可避免得在判斷削減哪些視覺 token 時引入了額外的計算量。為此研究團隊提出了在不引入額外計算量的前提下對模型引數和計算模式進行更高效剪枝,並在多個 benchmark 上實現了 SOTA。1 鄰域感知視覺注意力:研究團隊發現儘管多模態大模型中存在大量的視覺 tokens,但在的注意力計算中,大多數注意力是稀疏的,且顯著的注意力權重主要集中在相鄰的視覺 tokens 上。為減少由這種冗餘引起的計算負擔,研究團隊提出了一種簡單而有效的剪枝方法,選擇性地消除視覺 token 之間的非必要注意力計算。具體而言,研究團隊對注意力機制進行了修改,使得只有相鄰的視覺 token 彼此關注,而文字 token 則保留了在視覺 token 和文字 token 之間自由關注的能力。修改後的視覺注意力計算過程如下:在應用了此剪枝方案後,模型的計算複雜度由和視覺 token 數量的二次方成正比降為了和其數量成正比。2 非活躍注意力頭剪枝:研究團隊以 LLaVA-1.5 作為研究物件,隨機選取了 100 個視覺問答樣本,視覺化了視覺 token 的不同注意力頭的權重,實驗發現大約有一半數量的注意力頭都沒有被啟用。由此可見這部分注意力頭的相關計算同樣存在大量冗餘並可以被剪枝。3 選擇性層丟棄:研究團隊透過視覺化 LLaVA-1.5 不同層的視覺 token 跨模態注意力權重發現,大權重集中在前 20 層,在第 20 層到 40 層之間權重接近於 0。這項結果表明靠後的 20 層的視覺計算存在大量冗餘。這一觀察啟發了研究團隊在靠後的層中直接跳過所有與視覺相關的計算,從而減少計算開銷。具體來說,對於層 l>L−N,視覺注意力和跨模態注意力計算都被省略,使得注意力計算可以簡化如下:4 在 FFN 中進行稀疏視覺投影:透過剪枝大部分視覺注意力計算,模型的視覺表示變得高度稀疏。為了有效利用這種稀疏性,研究團隊提出在每個 transformer 模組內的 FFN 隱藏層中隨機丟棄 p% 的神經元。研究團隊在眾多常見基準上評估了他們提出的方法在剪枝 LLaVA-1.5-7B 和 LLaVA-1.5-13B 模型中的效果。由表中得知,在相同的計算預算(即相同的 FLOPs)下,團隊提出的剪枝方法在四個樣本較多的基準測試上一致性得取得了最佳結果,分別在 GQA、VQAv2、POPE 和 MMB 上比第二優方法平均高出 3.7%、1.1%、2.2% 和 0.45%。為了展示此種方法在剪枝視覺計算冗餘方面的可擴充套件性,團隊在兩個最大的基準測試 VQAv2 和 GQA 上,以不同的剪枝粒度,將他們提出的策略與 token 剪枝代表性工作 PyramidDrop 和 FastV 進行比較。可以觀察到,隨著視覺計算的 FLOPs 減少,剪枝模型的效能也隨之下降。具體來說,對於使用 FastV 剪枝的模型,將 FLOPs 從 75% 減少到 19% 導致在兩個基準測試上的平均效能從 71.35% 降至 66.63%。相比之下,團隊提出的方法並未直接剪枝 token,而是針對引數和計算模式層面的冗餘計算進行剪枝,從而僅導致 0.5% 的效能下降。為了進一步印證文中觀察到的大量視覺計算冗餘是普遍存在的,團隊將該方法應用於其他模型包括 Qwen2-VL-7B 和 InternVL-2.0 4B/8B/26B。團隊在 GQA 和 POPE 基準上評估了效能,並調整剪枝粒度以在保持原始模型效能的同時儘量減少 FLOPs。如圖所示,即使在未微調的情況下,以適當比例剪枝這些模型的視覺計算也不會影響其效能。此外,更大的模型能夠適應更高的剪枝比例,這從不同模型規模下對 InternVL-2.0 的剪枝結果中得到了驗證。為什麼不直接同時剪枝視覺和文字的引數?研究團隊專注於減少視覺 token 計算中的冗餘,從而降低其開銷,同時保留文字 token 的計算。為了探討文字 token 是否也存在類似的冗餘,團隊進行了一個實驗,分別對僅視覺 token 和視覺與文字 token 同時剪枝 20 個注意力頭。在未進行微調的情況下,僅剪枝視覺 token 在 VQAv2、GQA、SQA 和 TextVQA 上的平均效能為 67.1%,而同時剪枝視覺和文字 token 的效能則大幅下降至 4.3%。這表明在當前多模態大模型中,視覺計算中的冗餘顯著高於文字計算中的冗餘。對 token 剪枝和計算模式剪枝的效率分析。研究團隊對不同輸入視覺 token 數量下各方法的效率進行了比較。結果表明,與基於 token 剪枝的方法相比,從計算模式層面解決視覺計算冗餘問題在處理較長視覺序列時具有更大的效率優勢。這種方法有效緩解了處理大量視覺 token 所帶來的計算開銷上升問題,展現了其在處理視覺序列方面的可擴充套件性。研究團隊針對剪枝多模態大模型以實現高效計算的挑戰進行了研究。與文字不同,視覺資訊具有高度稀疏性和冗餘性。以往的研究主要集中在減少視覺 token 數量;而本篇工作則分析了引數和計算模式中的冗餘性。團隊提出的策略包括:鄰域感知的視覺注意力、非活躍視覺注意力頭的剪枝、FFN 中的稀疏視覺投影以及選擇性層丟棄。這些方法將 LLaVA-1.5 的計算開銷減少了 88%,同時大幅保留了其效能。針對 Qwen2-VL-7B 和 InternVL-2.0 4B/8B/26B 的額外實驗進一步證實,視覺計算冗餘在多模態大模型中普遍存在。