多模態(tài)視覺(jué)token壓縮方法(持續(xù)更新)
導(dǎo)讀作者為葡萄是貓?jiān)膩?lái)自知乎,地址:https://zhuanlan.zhihu.com/p/8776092026本文只做學(xué)術(shù)/技術(shù)分享,如有侵權(quán),聯(lián)系刪文。01簡(jiǎn)要為提升MLLM對(duì)圖像、視頻的理解能力,最有效的方式就是提升visual token的個(gè)數(shù),隨之而來(lái)的則是訓(xùn)練、推理耗時(shí)的增加。因此,對(duì)視覺(jué)token進(jìn)行壓縮以提取最有用的信息至關(guān)重要。下文基于個(gè)人理解,進(jìn)行梳理。已知技術(shù)方案概覽:1.線性映射:采用多層MLP進(jìn)行壓縮,如Qwen2-VL中2.下采樣:采用Pooling(可以是不同的pool采樣方式),如LLaVA-OneVision3.Pixel-Shuffle:用通道換空間,如InternVL1.1及后續(xù)系列4.Q-former:新增learned query實(shí)現(xiàn)視覺(jué)token壓縮,如Flamingo、BLIP25.模型動(dòng)態(tài)壓縮:改造模型或注意力機(jī)制實(shí)現(xiàn)視覺(jué)token采樣,如FocusLLaVA、mPlug-owl36.Training-free:在推理的各個(gè)階段通過(guò)各種方式實(shí)現(xiàn)token壓縮,如MustDrop、FiCoCO其中,線性映射、下采樣方法較易理解,不展開贅述Pixel-Shuffle該方案是用通道換空間,即減少空間增加通道,數(shù)據(jù)維度變化:[N, W, H, C] -> [N, W*s, H*s, C//(s^2)](當(dāng)s>1時(shí),則實(shí)現(xiàn)上采樣;當(dāng)s<1時(shí),則實(shí)現(xiàn)下采樣)在InternVL1.1,利用此方案,將視覺(jué)token從1024壓縮到256個(gè)(分辨率448×448,patch_size 14,s=0.5),代碼片段:def pixel_shuffle(self, x, scale_factor=0.5): n, w, h, c = x.size() # N, W, H, C –> N, W, H * scale, C // scale x = x.view(n, w, int(h * scale_factor), int(c / scale_factor)) # N, W, H * scale, C // scale –> N, H * scale, W, C // scale x = x.permute(0, 2, 1, 3).contiguous() # N, H * scale, W, C // scale –> N, H * scale, W * scale, C // (scale ** 2) x = x.view(n, int(h * scale_factor), int(w * scale_factor), int(c / (scale_factor * scale_factor))) if self.ps_version == ‘v1’: warnings.warn(“In ps_version ‘v1’, the height and width have not been swapped back, ” ‘which results in a transposed image.’) else: x = x.permute(0, 2, 1, 3).contiguous() return xQ-Former該類方案是引入可學(xué)習(xí)的embedding(learned query),和視覺(jué)token計(jì)算注意力,以實(shí)現(xiàn)token壓縮。最早在Flamingo中是Perceiver Resampler,BLIP2中是Q-Former(注意,在視覺(jué)token和文本交互時(shí),blip2更簡(jiǎn)化直接拼接視覺(jué)token和文本token,而flamingo中采用了gated xattn-dense)Flamingo中的Perceiver ResamperBLIP2中的learned queries02模型動(dòng)態(tài)壓縮該方案也是通過(guò)改造模型,讓模型在端到端訓(xùn)練中,自適應(yīng)抉擇最重要的token,實(shí)現(xiàn)視覺(jué)token的動(dòng)態(tài)壓縮。(歸類名稱是臨時(shí)起的。。應(yīng)該有更好的代稱)FocusLLaVA1.論文:FocusLLaVA: A Coarse-to-Fine Approach for Efficient and Effective Visual Token Compression2.方案:提出vision-guided sampler(下圖b)實(shí)現(xiàn)視覺(jué)token壓縮(LLM中也提出了text-guided samper,下圖c),其中vision-guided sampler分成兩步:多尺度降采樣:將vit后的全局feature map X再按window切分,對(duì)切分后的子特征圖按照不同的max-pool(如4×4,2×2,1×1,類似SPP操作)得到出一組token集合多尺度選擇:引入MoE思想,將不同尺寸的降采樣當(dāng)做專家模型,對(duì)上一步的token集合拉平后計(jì)算其和vit后的全局feature map X計(jì)算相似度,并保留top的token,即實(shí)現(xiàn)token壓縮mPlug-owl31.論文:mPLUG-Owl3: Towards Long Image-Sequence Understanding in Multi-Modal Large Language Models2.方案:該方案不是直接壓縮token,改造注意力機(jī)制為HyperAttnTransformer,視覺(jué)和文本共享q矩陣,并各自保留k&v矩陣,實(shí)現(xiàn)整個(gè)模型參數(shù)量降低,提升推理速度Hyper Attention TransformerVLoRA1.論文:Visual Perception by Large Language Model’s Weights2.方案:該方案不直接將視覺(jué)token輸入到LLM中,而是通過(guò)類似LoRA的方式將Visual token作為參數(shù)權(quán)重,引入到LLM中VLoRAPerceptual Weights Generator03Training-freeMustDrop1.論文:Multi-Stage Vision Token Dropping: Towards Efficient Multimodal Large Language Model2.方案:該方案?jìng)?cè)重在推理時(shí)對(duì)token進(jìn)行壓縮,在MLLM推理的各個(gè)階段提出相應(yīng)的壓縮方案Visual-encode stage:計(jì)算相鄰token的相似度Prefill stage:dual-attention estimation,先通過(guò)global-attention filtering(計(jì)算視覺(jué)token和所有text token的相似度)過(guò)濾出“可能不相關(guān)的token集合”,再通過(guò)individual-attention filtering(計(jì)算視覺(jué)token和單個(gè)文本token的相似度)過(guò)濾出“真正不相關(guān)的token集合”Decode stage:output-aware cache策略,在decode時(shí)對(duì)模型不同層進(jìn)行不同尺度的剪枝,最后保留最少的token輸出FiCoCO1.論文:Rethinking Token Reduction in MLLMs: Towards a Unified Paradigm for Training-Free Acceleration2.方案:將token的壓縮方式分解成Filter-Correlate-Compress三個(gè)階段,實(shí)現(xiàn)training-free的token壓縮框架,并將該框架分別應(yīng)用于模型的不同部分,即Visual encode階段(即FiCoCo-V)、LLM decode階段(即FiCoCo-L)、visual encode和LLM decode(即FiCoCo-VL),不同部分的實(shí)現(xiàn)略有不同。該框架的三個(gè)階段具體情況如下:filter階段:解決要丟棄哪些token的問(wèn)題,通過(guò)attention矩陣和cls token計(jì)算得到token冗余度,再篩選topKCorrellate階段:解決被丟棄的信息要保留到哪里的問(wèn)題,通過(guò)計(jì)算topK token和剩余token的相關(guān)性實(shí)現(xiàn)Compress階段:解決如何融合token以保留相關(guān)信息的問(wèn)題,通過(guò)相關(guān)性計(jì)算token-wise的壓縮權(quán)重實(shí)現(xiàn)FiCoCo系列FiCoCo在模型不同部分的偽代碼END點(diǎn)擊下方名片即刻關(guān)注我們
相關(guān)文章
