多模態大模型中圖像分辨率packing策略及原生分辨率NaViT的部分結論 原創
傳統上,ViT會將輸入圖像調整為固定的正方形縱橫比,然后分割為固定數量的 patches。但這種做法存在局限性,例如可能破壞圖像的原始縱橫比,影響模型對圖像內容的理解,且在訓練和推理效率上有提升空間。
前期《???多模態大模型中不同分辨率策略研究與原生分辨率的有效性評估???》評估結論也通過評估得到,原生分辨率對于多模態大模型有增益,再來看下NaVit的原生分辨率packing策略,該工作由23年提出,但應該是比較早的原生分辨率探索,下面看看。
方法
1、架構上改進
NaViT 是在原始 ViT 的基礎上構建的,為了用 Patch n’ Pack,對架構進行了修改:
- 掩碼自注意力和掩碼池化:如下圖為避免不同圖像樣本間相互干擾,引入額外的自注意力掩碼。同時,在編碼器之上使用掩碼池化,對每個樣本內的token表示進行池化,使序列中每個樣本都能得到單一向量表示,以此控制注意力的感受野。

- 分解式和分數位置嵌入:為處理任意分辨率和寬高比的圖像,重新設計位置嵌入。傳統ViT對分辨率的正方形圖像,會學習長度為的1 - D位置嵌入,在高分辨率下訓練或評估時需線性插值;Pix2struct引入的2D絕對位置嵌入雖支持可變寬高比,但訓練時需看到所有坐標組合。NaViT則引入分解式位置嵌入,將其分解為和坐標的單獨嵌入和,再進行組合(如相加)。同時考慮了絕對嵌入(基于絕對patch索引)和分數嵌入(基于相對距離),還探索了簡單學習嵌入、正弦嵌入和NeRF中使用的學習傅里葉位置嵌入。
2、 訓練上改進
- 連續token丟棄:傳統token丟棄是在訓練時隨機省略輸入補丁以加速訓練,但通常所有樣本丟棄比例相同。NaViT的Patch n’ Pack技術支持連續token丟棄,即每張圖像的token丟棄率可變。這既能享受丟棄帶來的訓練加速,又能保留部分完整圖像,減少訓練與推理的差異。而且,丟棄率分布可在訓練過程中按預定計劃變化。
- 分辨率采樣:NaViT可使用圖像原始分辨率訓練,也能在保持寬高比的同時重采樣像素總數。傳統ViT在訓練時,小圖像訓練通量高但處理細節和高分辨率圖像能力弱,大圖像則相反。NaViT更加靈活,可通過從圖像尺寸分布中采樣,進行混合分辨率訓練,既提高通量又能接觸大圖像,提升模型性能。

NaViT 在預訓練(左)期間表現出顯著的計算效率,這延續到了下游微調(中)。一個 NaViT 可以成功應用于多種分辨率(右),平穩地在性能和推理成本之間進行權衡。
從上圖看到,在相同計算預算下,NaViT的性能始終優于ViT。
原因分析:NaViT在固定計算預算內處理的訓練樣本數量顯著增加。分辨率采樣和token丟棄的結合,使可變尺寸的圖像能高效打包成與原始模型相似的序列長度(例如,NaViT-L/16訓練時處理的圖像數量是ViT的5倍)。
一些結論:

對比固定分辨率與可變分辨率
- 可變分辨率微調的NaViT性能與單分辨率微調的NaViT相當,優于單分辨率ViT。
- 低分辨率(64)微調的NaViT在高分辨率評估時仍保持良好性能。

偏向較低分辨率直接采樣邊長能獲得最佳整體性能
上圖,直接采樣邊長且偏向低分辨率(如截斷正態分布)的策略性能最優,因優先選擇短序列提升了throughput。

采樣較低分辨率可以提高吞吐量,提升性能, 并使模型在不同分辨率下的使用更加高效
- 可變分辨率模型在所有評估分辨率下均優于固定分辨率模型。即使在訓練與評估分辨率一致的最佳情況下,可變分辨率模型仍能持平或超越固定分辨率模型
- 低分辨率圖像加速訓練 throughput,高分辨率圖像保留細節,兩者結合兼顧效率與性能。

上圖結論:
- 連續token丟棄:從Beta分布采樣丟棄率,相比固定丟棄率更優(a)。
- 分辨率依賴丟棄率:根據圖像分辨率動態調整丟棄率(如分辨率高則丟棄率高),進一步提升性能(b)。
參考文獻:Patch n’ Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution,https://arxiv.org/pdf/2307.06304
本文轉載自??大模型自然語言處理?? 作者:llmnlp

















