3.4K星Apple出品FastVLM:視覺TTFT效率提升85倍,憑啥這么牛!
VLM實際生產應用過程慢的原因
- VLMs通過結合視覺信息和文本信息,能夠實現對圖像內容的深入理解和生成。
- 然而,隨著圖像分辨率的提高,現有的視覺編碼器(如Vision Transformers,ViTs)在處理高分辨率圖像時面臨效率瓶頸。
- 高分辨率圖像雖然能夠提供更豐富的細節,但會顯著增加視覺編碼器的延遲和計算成本,尤其是在生成視覺令牌(visual tokens)時。
- 此外,高分辨率圖像產生的大量視覺令牌還會增加大型語言模型(LLM)的預填充時間(prefilling time),從而進一步延長了從圖像輸入到生成第一個文本令牌的時間(time-to-first-token,TTFT)。
- 因此,如何在保持高分辨率圖像帶來的性能提升的同時,優化視覺編碼器的效率,
FastVLM的解決方案
- 通常情況下,通過動態調整輸入分辨率、裁剪圖像或使用多分辨率策略來解決高分辨率圖像帶來的效率問題。
- 例如:通過裁剪圖像或使用多分辨率策略來減少視覺令牌的數量,但這可能會導致圖像信息的丟失或不完整。
- 視覺編碼器(如ViT)在高分辨率輸入下,由于其自注意力機制的計算復雜度較高,難以在保持高效的同時處理高分辨率圖像。
FastVLM要解決的問題是:能夠在高分辨率輸入下實現高效的視覺編碼,同時減少視覺令牌的數量,以提高整體VLM的效率。
- FastVLM的核心是FastViTHD,通過減少視覺令牌的數量和降低編碼延遲,實現了在高分辨率輸入下的高效視覺編碼。
- 與現有的ViT和卷積編碼器相比,FastViTHD在保持高分辨率圖像帶來的性能提升的同時,顯著提高了VLM的整體效率。
FastVLM架構

- 視覺編碼器(Vision Encoder):
FastVLM采用FastViTHD作為視覺編碼器,是一種混合卷積-變換器架構。
通過多尺度特征提取和深度可分離卷積(Depthwise Separable Convolutions)來減少視覺令牌的數量,同時保持高效的圖像編碼能力。
- 連接模塊(Connector Module):
連接模塊的作用是將視覺編碼器生成的視覺令牌投影到與LLM兼容的特征空間中,以便LLM能夠處理這些視覺信息。
- 大型語言模型(LLM):
FastVLM使用預訓練的大型語言模型(如Vicuna或Qwen2)作為文本生成模塊,負責根據輸入的視覺信息和文本提示生成相應的輸出文本。
FastViTHD的細節
- 多尺度特征提取:
FastViTHD通過在不同階段提取多尺度特征,并使用深度可分離卷積將這些特征聚合到一起。
不僅保留了圖像的細節信息,還減少了視覺令牌的數量。
具體來說,FastViTHD在每個階段的輸出特征圖上應用深度可分離卷積,將不同尺度的特征圖進行融合,從而生成包含多尺度信息的視覺令牌。
- 深度可分離卷積:
FastViTHD在卷積層中使用深度可分離卷積,這種卷積方式在保持卷積效果的同時,顯著減少了計算量和參數數量。
深度可分離卷積將標準卷積分解為兩個獨立的操作:深度卷積(Depthwise Convolution)和逐點卷積(Pointwise Convolution)。
深度卷積對每個輸入通道分別進行卷積操作,逐點卷積則對深度卷積的輸出進行通道混合。
這種分解方式減少了卷積操作的計算復雜度,從而提高了編碼器的效率。
- 自注意力機制的優化:
FastViTHD在自注意力層中引入了額外的下采樣層,使得自注意力機制只處理經過下采樣的特征圖。
這種設計減少了自注意力機制的計算復雜度,同時保持了對圖像細節的捕捉能力。
具體來說,FastViTHD在自注意力層之前添加了一個下采樣層,將特征圖的分辨率降低到原來的1/32或1/64。這樣,自注意力機制只需要處理較小的特征圖,從而減少了計算量和延遲。
FastVLM的訓練過程
- 預訓練階段:
FastVLM使用大規模的圖像-文本對數據集(如DataCompDR-1B)對視覺編碼器FastViTHD進行預訓練。
預訓練的目標是:讓視覺編碼器能夠生成高質量的視覺令牌,這些視覺令牌能夠捕捉到圖像的語義信息。
FastViTHD通過最小化圖像和文本之間的對比損失(contrastive loss)來學習圖像和文本的對齊關系。
- 視覺指令微調階段:

- FastVLM使用視覺指令數據集(如LLaVA-1.5)對整個模型進行微調。
- 微調的目標是:讓模型能夠更好地理解和生成與視覺指令相關的文本。
- FastVLM通過最小化生成文本和目標文本之間的交叉熵損失(cross-entropy loss)來優化模型的參數。
- 此外,FastVLM還使用了多種正則化技術(如Dropout和Weight Decay)來防止過擬合。
FastVLM 性能
基礎測試
主要測試圖像問答、文檔理解、視覺推理等多個任務

- 在GQA基準測試中,FastVLM通過回答與圖像內容相關的問題,展示了其對圖像語義的理解能力。
- FastVLM在使用Qwen2-0.5B LLM時,取得了60.6%的準確率,與LLaVA-OneVision在相同輸入分辨率和LLM大小下的性能相當,但TTFT快85倍。
- 在TextVQA基準測試中,FastVLM在使用Qwen2-0.5B LLM時,取得了63.0%的準確率,比ConvLLaVA高8.4%,同時TTFT快22%。
- 在DocVQA基準測試中,FastVLM在使用Qwen2-0.5B LLM時,取得了59.3%的準確率,比ConvLLaVA高12.5%,同時TTFT快22%。
效率對比

主要對比指標包括時間到第一個令牌(TTFT)、視覺編碼器延遲和LLM預填充時間
- 在使用Qwen2-0.5B LLM時,FastVLM的TTFT為116.3毫秒,比LLaVA-OneVision的2721.4毫秒快85倍。
- 在使用Vicuna-7B LLM時,FastVLM的TTFT為54.8毫秒,比ConvLLaVA的164.3毫秒快22%。
- FastViTHD的尺寸為125M,而ViT-L/14的尺寸為304M,ConvNeXT-L的尺寸為200M。這使得FastVLM在設備端部署時更加高效,能夠快速響應用戶請求。
- 這說明FastVLM在高分辨率輸入下,能夠顯著減少視覺令牌的數量,從而降低LLM的預填充時間,并提高整體效率。
動態輸入分辨率策略

通過將輸入圖像分割成多個子區域(tiles),并分別對每個子區域進行編碼,FastVLM能夠在極高分辨率下保持較好的效率和準確性。
- 在輸入分辨率為1536×1536時,使用較少的子區域(如2×2網格)進行編碼,比使用更多子區域(如4×4網格)更能實現有效的準確性-延遲權衡。
- 使用2×2網格的FastVLM在SeedBench基準測試上的性能為63.7%,延遲為17.4毫秒;而使用4×4網格的FastVLM在相同基準測試上的性能為62.8%,延遲為35.6毫秒。
- 這表明,動態輸入分辨率策略能夠在極高分辨率下保持較好的效率和準確性。
與token裁剪方法的對比

不使用任何token裁剪技術,FastVLM通過簡單的輸入分辨率調整,就能實現比現有令牌裁剪方法更好的準確性-延遲權衡。
- 在輸入分辨率為256×256時,FastViTHD生成的視覺令牌數量僅為16個,而現有的令牌裁剪方法(如Matryoshka-based token sampling)在相似延遲下生成的令牌數量更多,但性能卻不如FastVLM。
- 這證明了FastViTHD在減少視覺令牌數量方面的優勢,以及其在提高VLM效率方面的有效性。
FastVLM的實際應用價值
- 設備端部署的優勢:
FastVLM的高效視覺編碼器和較小的模型尺寸使其在設備端部署時具有顯著優勢。
例如,在智能手機、平板電腦等移動設備上,FastVLM能夠快速處理高分辨率圖像,并生成相關的文本描述或回答,為用戶提供更流暢的使用體驗。
- 多模態應用的潛力:
FastVLM在圖像問答、文檔理解、視覺推理等多個任務中表現出色,具有廣泛的應用潛力。
例如,在智能助手、圖像搜索引擎、文檔分析工具等多模態應用中,FastVLM能夠結合視覺信息和文本信息,提供更準確、更豐富的回答和分析結果。
- 對高分辨率圖像的支持:
FastVLM能夠有效處理高分辨率圖像,使其在需要高精度圖像分析的應用中具有重要價值。
例如,在醫學圖像分析、衛星圖像解讀、顯微圖像處理等領域,FastVLM能夠捕捉到圖像中的細節信息,為專業人員提供有價值的參考和決策支持。
本文轉載自??CourseAI??,作者:CourseAI

















