85倍速度碾壓:蘋果開源FastVLM,能在iPhone直接運(yùn)行的視覺語言模型
當(dāng)你用蘋果手機(jī)隨手拍圖問 AI:「這是什么?」,背后的 FastVLM 模型正在默默解碼。
最近,蘋果開源了一個(gè)能在 iPhone 上直接運(yùn)行的高效視覺語言模型 ——FastVLM(Fast Vision Language Model)。
代碼倉庫中還包括一個(gè)基于 MLX 框架的 iOS/macOS 演示應(yīng)用,優(yōu)化了在蘋果設(shè)備上的運(yùn)行性能。
圖片
看這個(gè) demo,反應(yīng)速度是不是反應(yīng)非?!窮ast」!這就是 FastVLM 的獨(dú)特之處。
相較于傳統(tǒng)模型,F(xiàn)astVLM 模型專門注重于解決體積、速度這兩大問題,速度快到相對(duì)同類模型,首個(gè) token 輸出速度提升 85 倍。
該模型引入了一種新型混合視覺編碼器 FastViTHD,融合了卷積層和 Transformer 模塊,配合多尺度池化和下采樣技術(shù),把圖片處理所需的「視覺 token」數(shù)量砍到極低 —— 比傳統(tǒng) ViT 少 16 倍,比 FastViT 少 4 倍。它以卓越的速度和兼容性,極大地提升了 AI 與圖像之間的用戶體驗(yàn)?zāi)芰Α?/span>
FastVLM 模型不僅可以用于給模型自動(dòng)生成陳述、回答「這張圖是什么」的問題、分析圖中的數(shù)據(jù)或?qū)ο蟮韧緩?,還兼容主流 LLM 并輕松適配 iOS/Mac 生態(tài),特別適合落地在邊緣設(shè)備、端側(cè) AI 應(yīng)用和實(shí)時(shí)圖文任務(wù)場(chǎng)景。
目前,F(xiàn)astVLM 模型主要推出 0.5B、1.5B、7B 三個(gè)不同參數(shù)量級(jí)的版本,每個(gè)版本均有 stage2 和 stage3 兩階段微調(diào)權(quán)重,用戶可以根據(jù)自身需求靈活選擇。
蘋果團(tuán)隊(duì)在發(fā)布的論文中詳細(xì)闡述了更加具體的技術(shù)細(xì)節(jié)和優(yōu)化路徑。
- 論文標(biāo)題: FastVLM: Efficient Vision Encoding for Vision Language Models
- 論文地址:https://www.arxiv.org/abs/2412.13303
研究背景
視覺語言模型(Vision-Language Models, VLMs)是一類能夠同時(shí)理解圖像和文本信息的多模態(tài)模型。VLMs 通常通過一個(gè)投影層(也稱連接模塊)將來自預(yù)訓(xùn)練視覺骨干網(wǎng)絡(luò)的視覺 token 輸入到一個(gè)預(yù)訓(xùn)練的 LLM 中。
此前的研究已經(jīng)探討了視覺骨干網(wǎng)絡(luò)、適配器(adapter)以及通常為解碼器結(jié)構(gòu)的 LLM 這三大組件的訓(xùn)練和微調(diào)策略。
已有多項(xiàng)研究指出,圖像分辨率是影響 VLM 性能的關(guān)鍵因素,尤其在面對(duì)文本密集或圖表密集的數(shù)據(jù)時(shí)表現(xiàn)尤為明顯。然而,提升圖像分辨率也帶來了若干挑戰(zhàn)。
首先,許多預(yù)訓(xùn)練視覺編碼器在設(shè)計(jì)時(shí)并不支持高分辨率圖像輸入,因?yàn)檫@會(huì)顯著降低預(yù)訓(xùn)練效率。
為了解決這一問題,一種方法是持續(xù)對(duì)視覺骨干進(jìn)行預(yù)訓(xùn)練,使其適應(yīng)高分辨率圖像;另一種則是采用圖像分塊策略(tiling strategies),如 Sphinx、S2 和 AnyRes,將圖像劃分為多個(gè)子區(qū)域,并由視覺骨干分別處理各個(gè)子區(qū)域。
這類方法特別適用于基于視覺 Transformer(ViT)的模型架構(gòu),因?yàn)?ViT 通常不支持可變輸入分辨率。
另一個(gè)挑戰(zhàn)來自于高分辨率推理時(shí)的運(yùn)行時(shí)計(jì)算成本。無論是單次高分辨率推理,還是在較低分辨率下多次推理(即采用切片策略),在生成視覺 token 時(shí)都存在顯著延遲。
此外,高分辨率圖像本身生成的 token 數(shù)量更多,這會(huì)進(jìn)一步增加 LLM 的預(yù)填充時(shí)間(prefilling time,即 LLM 對(duì)包括視覺 token 在內(nèi)的所有上下文 token 進(jìn)行前向計(jì)算的時(shí)間),從而整體拉長初始輸出時(shí)間(time-to-first-token, TTFT),即視覺編碼器延遲與語言模型前填充時(shí)間之和。
本研究以 VLM 的設(shè)備端部署為動(dòng)力,從運(yùn)行時(shí)效率的角度出發(fā),對(duì)其設(shè)計(jì)和訓(xùn)練進(jìn)行系統(tǒng)性研究。我們重點(diǎn)研究圖像分辨率提升對(duì)優(yōu)化空間的影響,目標(biāo)是改進(jìn)精度 - 延遲之間的權(quán)衡,其中延遲包括視覺編碼器的推理時(shí)間和 LLM 的前填充時(shí)間。
研究者通過在不同的 LLM 規(guī)模與圖像分辨率下的大量實(shí)驗(yàn)證明,在特定的視覺骨干條件下,可以建立一條帕累托最優(yōu)曲線(Pareto optimal curve),展示在限定運(yùn)行時(shí)間預(yù)算(TTFT)內(nèi),不同的圖像分辨率和語言模型規(guī)模組合能達(dá)到的最佳準(zhǔn)確率。
研究者首先探索了一種混合卷積 - Transformer 架構(gòu) FastViT(預(yù)訓(xùn)練于 MobileCLIP)作為 VLM 視覺骨干的潛力。
實(shí)驗(yàn)證明,該混合骨干在生成視覺 token 方面的速度是標(biāo)準(zhǔn) ViT 模型的四倍以上,同時(shí)基于多尺度視覺特征還實(shí)現(xiàn)了更高的整體 VLM 準(zhǔn)確性。然而,若目標(biāo)主要是高分辨率 VLM(而非如 MobileCLIP 那樣僅關(guān)注嵌入生成),則該架構(gòu)仍有進(jìn)一步優(yōu)化空間。
為此,研究者提出了一種新型混合視覺編碼器 FastViTHD,其專為在處理高分辨率圖像時(shí)提升 VLM 效率而設(shè)計(jì),并以此為骨干網(wǎng)絡(luò),通過視覺指令微調(diào)得到 FastVLM。
在不同輸入圖像分辨率和語言模型規(guī)模下,F(xiàn)astVLM 在準(zhǔn)確率與延遲的權(quán)衡上均顯著優(yōu)于基于 ViT、卷積編碼器及我們先前提出的混合結(jié)構(gòu) FastViT 的 VLM 方法。
特別地,相比于運(yùn)行在最高分辨率(1152×1152)的 LLaVa-OneVision,F(xiàn)astVLM 在相同 0.5B LLM 條件下達(dá)到了可比的性能,同時(shí)擁有快 85 倍的 TTFT 和小 3.4 倍的視覺編碼器規(guī)模。
模型架構(gòu)
研究者首先探討了將 FastViT 混合視覺編碼器應(yīng)用于 VLM 中的潛力,隨后提出若干架構(gòu)優(yōu)化策略以提升 VLM 任務(wù)的整體表現(xiàn)。
在此基礎(chǔ)上,研究者提出 FastViT-HD—— 一款專為高分辨率視覺 - 語言處理任務(wù)量身定制的創(chuàng)新型混合視覺編碼器,兼具高效率與高性能特點(diǎn)。
通過大量消融實(shí)驗(yàn),研究者全面驗(yàn)證了 FastViT-HD 在多種大型語言模型 (LLM) 架構(gòu)和不同圖像分辨率條件下,相比原始 FastViT 及現(xiàn)有方法所展現(xiàn)的顯著性能優(yōu)勢(shì)。
如圖 2 所示,展示了 FastVLM 與 FastViT-HD 的整體架構(gòu)。所有實(shí)驗(yàn)均使用與 LLaVA-1.5 相同的訓(xùn)練配置,并采用 Vicuna-7B 作為語言解碼器,除非特別說明。
FastViT 作為 VLM 圖像編碼器
典型的 VLM (如 LLaVA)包含三個(gè)核心組件:圖像編碼器(image encoder)、視覺 - 語言映射模塊(vision-language projector)以及大型語言模型(LLM)。
VLM 系統(tǒng)的性能及運(yùn)行效率高度依賴其視覺主干網(wǎng)絡(luò)(vision backbone)。在高分辨率下編碼圖像對(duì)于在多種 VLM 基準(zhǔn)任務(wù)中取得良好表現(xiàn)尤其關(guān)鍵,特別是在文本密集型任務(wù)上。因此,支持可擴(kuò)展分辨率的視覺編碼器對(duì) VLM 尤為重要。
研究者發(fā)現(xiàn),混合視覺編碼器(由卷積層與 Transformer 塊組成)是 VLM 極為理想的選擇,其卷積部分支持原生分辨率縮放,而 Transformer 模塊則進(jìn)一步提煉出高質(zhì)量的視覺 token 以供 LLM 使用。
實(shí)驗(yàn)使用了一個(gè)在 CLIP 上預(yù)訓(xùn)練過的混合視覺編碼器 ——MobileCLIP 提出的 MCi2 編碼器。該編碼器擁有 35.7M 參數(shù),在 DataCompDR 數(shù)據(jù)集上預(yù)訓(xùn)練,架構(gòu)基于 FastViT。本文后續(xù)均將該編碼器簡(jiǎn)稱為「FastViT」。
然而,正如表 1 所示,若僅在其 CLIP 預(yù)訓(xùn)練分辨率(256×256)下使用 FastViT,其 VLM 表現(xiàn)并不理想。
FastViT 的主要優(yōu)勢(shì)在于其圖像分辨率縮放所具有的高效性 —— 相比采用 patch size 為 14 的 ViT 架構(gòu),其生成的 token 數(shù)量減少了 5.2 倍。
這樣的 token 大幅裁剪顯著提升了 VLM 的運(yùn)行效率,因?yàn)?Transformer 解碼器的預(yù)填充時(shí)間和首個(gè) token 的輸出時(shí)間(time-to-first-token)大大降低。
當(dāng)將 FastViT 輸入分辨率擴(kuò)展至 768×768 時(shí),其生成的視覺 token 數(shù)量與 ViT-L/14 在 336×336 分辨率下基本持平,但在多個(gè) VLM 基準(zhǔn)測(cè)試中取得了更優(yōu)的性能。
這種性能差距在文本密集型任務(wù)上尤為明顯,例如 TextVQA 和 DocVQA,即使兩種架構(gòu)生成的 visual token 數(shù)量相同。
此外,即便在高分辨率下 token 數(shù)量持平,F(xiàn)astViT 憑借其高效的卷積模塊,整體圖像編碼時(shí)間依然更短。
1、多尺度特征(Multi-Scale Features)
典型的卷積或混合架構(gòu)通常將計(jì)算過程劃分為 4 個(gè)階段,每個(gè)階段之間包含一個(gè)下采樣操作。VLM 系統(tǒng)一般使用倒數(shù)第二層輸出的特征,但網(wǎng)絡(luò)前幾層所提取的信息往往具有不同的粒度。結(jié)合多個(gè)尺度的特征不僅可提升模型表達(dá)能力,也能補(bǔ)強(qiáng)倒數(shù)第二層中的高層語義信息,這一設(shè)計(jì)在目標(biāo)檢測(cè)中尤為常見。
研究者在兩個(gè)設(shè)計(jì)方案之間進(jìn)行了消融對(duì)比,用于從不同階段匯聚特征:均值池化(AvgPooling)與二維深度可分離卷積(2D depthwise convolution)。
如表 2 所示,采用深度可分卷積在性能上更具優(yōu)勢(shì)。除多尺度特征外,研究者還在連接器設(shè)計(jì)(connector design)上進(jìn)行了多種嘗試(詳見補(bǔ)充材料)。這些結(jié)構(gòu)性模型改進(jìn)對(duì)于使用分層主干的架構(gòu)(如 ConvNeXt 與 FastViT)特別有效。
FastViT-HD:面向 VLM 的高分辨率圖像編碼器
在引入上述改進(jìn)后,F(xiàn)astViT 在參數(shù)量比 ViT-L/14 小 8.7 倍的情況下已具備良好性能。然而,已有研究表明,擴(kuò)大圖像編碼器的規(guī)模有助于增強(qiáng)其泛化能力。
混合架構(gòu)中,常見的做法是同時(shí)擴(kuò)展第 3、4 階段中的自注意力層數(shù)量和寬度(如 ViTamin 所采用的方式),但我們發(fā)現(xiàn)在 FastViT 上簡(jiǎn)單擴(kuò)展這些層數(shù)并非最優(yōu)方案(詳見圖 3),甚至在速度上不如 ConvNeXT-L。
為避免額外的自注意力層帶來的性能負(fù)擔(dān),研究者在結(jié)構(gòu)中加入一個(gè)額外階段,并在其前添加了下采樣層。在該結(jié)構(gòu)中,自注意力層所處理的特征圖尺寸已經(jīng)被以 1/32 比例降采樣(相比 ViTamin 等常見混合模型的 1/16),最深的 MLP 層甚至處理降采樣達(dá) 1/64 的張量。
此設(shè)計(jì)顯著降低了圖像編碼的延遲,同時(shí)為計(jì)算密集型的 LLM 解碼器減少了最多 4 倍的視覺 token,從而顯著縮短首 token 輸出時(shí)間(TTFT)。研究者將該架構(gòu)命名為 FastViT-HD。
FastViT-HD 由五個(gè)階段組成。前三階段使用 RepMixer 模塊,后兩階段則采用多頭自注意力(Multi-Headed Self-Attention)模塊。
各階段的深度設(shè)定為 [2, 12, 24, 4, 2],嵌入維度為 [96, 192, 384, 768, 1536]。ConvFFN 模塊的 MLP 擴(kuò)展倍率為 4.0。整體參數(shù)量為 125.1M,為 MobileCLIP 系列中最大 FastViT 變體的 3.5 倍,但依然小于多數(shù)主流 ViT 架構(gòu)。
研究者采用 CLIP 的預(yù)訓(xùn)練設(shè)置,使用 DataComp-DR-1B 進(jìn)行預(yù)訓(xùn)練后,再對(duì)該模型進(jìn)行 FastVLM 訓(xùn)練。
如表 3 所示,盡管 FastViT-HD 的參數(shù)量比 ViT-L/14 小 2.4 倍,且運(yùn)行速度快 6.9 倍,但在 38 項(xiàng)多模態(tài)零樣本任務(wù)中的平均表現(xiàn)相當(dāng)。相比另一種專為 VLM 構(gòu)造的混合模型 ViTamin,F(xiàn)astViT-HD 參數(shù)量小 2.7 倍,推理速度快 5.6 倍,檢索性能更優(yōu)。
表 4 比較了 FastViT-HD 與其他 CLIP - 預(yù)訓(xùn)練層次型主干網(wǎng)絡(luò)(如 ConvNeXT-L 和 XXL)在 LLaVA-1.5 訓(xùn)練后的多模態(tài)任務(wù)表現(xiàn)。盡管 FastViT-HD 的參數(shù)量僅為 ConvNeXT-XXL 的 1/6.8、速度提升達(dá) 3.3 倍,其性能仍然相當(dāng)。
2、視覺編碼器與語言解碼器的協(xié)同作用
在 VLM 中,性能與延遲之間的權(quán)衡受到多個(gè)因素的影響。
一方面,其整體性能依賴于:(1) 輸入圖像分辨率、(2) 輸出 tokens 的數(shù)量與質(zhì)量、(3) LLM 的建模能力。
另一方面,其總延遲(特別是首 token 時(shí)間,TTFT)由圖像編碼延遲和 LLM 預(yù)填充時(shí)間組成,后者又受到 token 數(shù)量和 LLM 規(guī)模的共同影響。
鑒于 VLM 優(yōu)化空間的高度復(fù)雜化,針對(duì)視覺編碼器最優(yōu)性的任何結(jié)論都須在多組輸入分辨率與 LLM 配對(duì)下加以驗(yàn)證。我們?cè)诖藦膶?shí)證角度比較 FastViT-HD 相較 FastViT 的最優(yōu)性。研究者測(cè)試三種 LLM(Qwen2-0.5B/1.5B/7B),并在不同輸入分辨率下進(jìn)行 LLaVA-1.5 訓(xùn)練與視覺指令調(diào)優(yōu),然后在多個(gè)任務(wù)上評(píng)估結(jié)果,結(jié)果見圖 4。
首先,圖 4 中的帕累托最優(yōu)曲線(Pareto-optimal curve)表明,在預(yù)算固定的情況下(如運(yùn)行時(shí)間 TTFT),最佳性能對(duì)應(yīng)的編碼器 - LLM 組合是動(dòng)態(tài)變化的。
例如,將高分辨率圖像輸入配備小規(guī)模 LLM 并不理想,因?yàn)樾∧P蜔o法有效利用過多 token,同時(shí),TTFT 反而會(huì)因視覺編碼延遲增大(詳見圖 5)。
其次,F(xiàn)astViT-HD 遍歷 (分辨率,LLM) 所形成的帕累托最優(yōu)曲線明顯優(yōu)于 FastViT —— 在固定延遲預(yù)算下平均性能提升超過 2.5 個(gè)點(diǎn);相同時(shí)序目標(biāo)下可加速約 3 倍。
值得注意的是,在此前已有結(jié)論表明,基于 FastViT 的 VLM 已超越 ViT 類方法,而 FastViT-HD 在此基礎(chǔ)上進(jìn)一步大幅提升。
3、靜態(tài)與動(dòng)態(tài)輸入分辨率
在調(diào)整輸入分辨率時(shí),存在兩種策略:(1) 直接更改模型的輸入分辨率;(2) 將圖像劃分成 tile 塊,模型輸入設(shè)為 tile 尺寸。
后者屬于「AnyRes」策略,主要用于讓 ViT 能處理高分辨率圖像。然而 FastViT-HD 是專為高分辨率推理效率而設(shè)計(jì),因此我們對(duì)這兩種策略的效率進(jìn)行了對(duì)比分析。
圖 6 顯示:若直接將輸入分辨率設(shè)定為目標(biāo)分辨率,則 VLM 在準(zhǔn)確率與延遲之間獲得最佳平衡。僅在極高輸入分辨率(如 1536×1536)時(shí),動(dòng)態(tài)輸入才顯現(xiàn)優(yōu)勢(shì),此時(shí)瓶頸主要表現(xiàn)為設(shè)備上的內(nèi)存帶寬。
一旦使用動(dòng)態(tài)策略,tile 數(shù)量越少的設(shè)定能獲得更好的精度 - 延遲表現(xiàn)。隨著硬件發(fā)展與內(nèi)存帶寬提升,F(xiàn)astVLM 在無需 tile 拆分的前提下實(shí)現(xiàn)更高分辨率處理將成為可行方向。
4、與 token 剪枝及下采樣方法的比較
研究者進(jìn)一步將不同輸入分辨率下的 FastViT-HD 與經(jīng)典的 token 剪枝方法進(jìn)行對(duì)比。如表 5 所示,采用層次化主干網(wǎng)絡(luò)的 VLM 在精度 - 延遲權(quán)衡上明顯優(yōu)于基于等維(isotropic)ViT 架構(gòu)并借助 token 剪枝優(yōu)化的方法。在不使用剪枝方法、僅利用低分辨率訓(xùn)練的前提下,F(xiàn)astViT-HD 可將視覺 token 數(shù)降至僅 16 個(gè)的水平,且性能優(yōu)于近期多個(gè) token 剪枝方案。
有趣的是,即便是當(dāng)前最先進(jìn)的 token 剪枝方法(如所提出的 [7, 28, 29, 80]),在 256×256 分辨率下,整體表現(xiàn)亦不如 FastViT-HD。
更多詳細(xì)內(nèi)容請(qǐng)參見原論文。