大模型湧向行動端的浪潮愈演愈烈,終於有人把多模態大模型也搬到了行動端。近日,美團、浙大等推出了能夠在行動端部署的多模態大模型,包含了 LLM 基座訓練、SFT、VLM 全流程。也許在不久的將來,每個人都能方便、快速、低成本的擁有屬於自己的大模型。
MobileVLM 是專為行動裝置設計的快速、強大且開放的視覺語言助理。它結合了以行動裝置為導向的架構設計和技術,包括從頭開始訓練的 1.4B 和 2.7B 參數的語言模型、以 CLIP 方式預先訓練的多模態視覺模型,以及透過投影實現的高效跨模態互動。在各種視覺語言基準測試中,MobileVLM 的表現可媲美大型模型。此外,它還在高通驍龍 888 CPU 和英偉達 Jeston Orin GPU 上展示了最快的推理速度。
- 論文網址:https://arxiv.org/pdf/2312.16886.pdf
- Code 網址:https://github.com/Meituan- AutoML/MobileVLM
大型多模態模型(LMMs),尤其是視覺語言模型(VLMs)系列,由於其在感知和推理方面的能力大大增強,已成為構建通用助手的一個很有前途的研究方向。然而,如何將預先訓練好的大型語言模型(LLMs)和視覺模型的表徵連接起來,提取跨模態特性,完成如視覺問題解答、圖像字幕、視覺知識推理和對話等任務,一直是個難題。
GPT-4V 和 Gemini 在這項任務上的出色表現已經被多次證明。不過,這些專有模型的技術實作細節我們還知之甚少。同時,研究界也提出了一系列語言調整方法。例如,Flamingo 利用視覺 token,透過門控交叉注意力層對凍結的語言模型進行調節。 BLIP-2 認為這種交互作用是不夠的,並引入了一個輕量級查詢transformer(稱為Q-Former),它能從凍結的視覺編碼器中提取最有用的特徵,並將其直接輸入到凍結的LLM 中。 MiniGPT-4 透過一個投影層將 BLIP-2 中的凍結視覺編碼器與凍結語言模型 Vicuna 配對。另外,LLaVA 應用了一個簡單的可訓練映射網絡,將視覺特徵轉換為嵌入 token,其維度與語言模型要處理的單字嵌入相同。
值得注意的是,訓練策略也逐漸轉變,以適應多樣性的大規模多模態資料。 LLaVA 可能是將 LLM 的指令調整範式複製到多模態場景的首次嘗試。為了產生多模態指令追蹤數據,LLaVA 向純語言模型 GPT-4 輸入文字訊息,如圖像的描述語句和圖像的邊界框座標。 MiniGPT-4 首先在綜合性的圖像描述語句資料集上進行訓練,然後在【影像 - 文字】對的校準資料集上進行微調。 InstructBLIP 基於預訓練的 BLIP-2 模型執行視覺語言指令調整,Q-Former 是在以指令調整格式組織的各種資料集上訓練的。 mPLUG-Owl 引入了一種兩階段訓練策略:首先對視覺部分進行預訓練,然後使用 LoRA ,基於不同來源的指令資料對大語言模型 LLaMA 進行微調。
-
儘管 VLM 取得了上述的進展,人們也存在著在計算資源有限的情況下使用跨模態功能的需求。 Gemini 在一系列多模態基準上超越了 sota,並為低記憶體設備引入了 1.8B 和 3.25B 參數的移動級 VLM。而 Gemini 也使用了蒸餾和量化等常用壓縮技術。本文的目標是建立首個開放的行動級 VLM,利用公共資料集和可用技術進行訓練,以實現視覺感知和推理,並為資源受限的平台量身定制。本文的貢獻如下:
- 本文提出了MobileVLM,它是專為移動場景量身打造的多模態視覺語言模型的全端級改造。據作者表示,這是第一個從零開始提供詳細、可複現和強大性能的視覺語言模型。透過受控和開源資料集,研究者建立了一套高效能的基礎語言模型和多模態模型。
- 本文對視覺編碼器的設計進行了廣泛的消融實驗,並系統地評估了 VLM 對各種訓練範式、輸入解析度和模型大小的表現敏感度。
- 本文在視覺特徵和文字特徵之間設計了一個高效的映射網絡,能更好地對齊多模態特徵,同時減少推理消耗。
本文設計的模型可以在低功耗的行動裝置上有效地運行,在高通的行動 CPU 和 65.5 吋處理器上的測量速度為 21.5 tokens/s。
MobileVLM 和大量 多模態大模型在 benchmark 的表現不相上下,證明了其在眾多實際任務中的應用潛力。雖然本文主要關注的是邊緣場景,但 MobileVLM 優於許多最新的 VLM,而這些 VLM 只能由雲端強大的 GPU 支援。 #整體架構設計
############考慮到為資源有限的邊緣設備實現高效的視覺感知和推理的主要目標,研究者設計了MobileVLM 的整體架構,如圖1 所示,模型包含三個組件:1) 視覺編碼器,2) 定制的LLM 邊緣設備(MobileLLaMA),以及3) 高效的映射網絡(文中稱為“輕量級下採樣映射”,LDP),用於對齊視覺和文字空間。 ############
以圖像 為輸入,視覺編碼器 F_enc 從中提取視覺嵌入 用於圖像感知,其中 N_v = HW/P^2 表示圖像塊數,D_v 表示視覺嵌入的隱層大小。為了緩解因處理圖像 tokens 效率問題,研究者設計了一種輕量級映射網絡 P,用於視覺特徵壓縮和視覺 - 文本模態的對齊。它將f 轉換到單字嵌入空間中,並為後續的語言模型提供合適的輸入維度,如下所示:
這樣,就得到了圖像的tokens和文字的tokens,其中N_t 表示文字tokens 的數量,D_t 表示單字嵌入空間的大小。在目前的MLLM 設計範式中,LLM 的計算量和記憶體消耗量最大,有鑑於此,本文為行動應用量身定制了一系列推理友好型LLM,在速度上具有相當的優勢,能夠以自回歸方式對多模態輸入進行預測,其中L 表示輸出的tokens 長度。這一過程可表述為。 #根據原文第5.1 節中的經驗分析,研究者利用解析度為336×336 的預訓練CLIP ViT-L/14 作為視覺編碼器F_enc。視覺 Transformer(ViT)將影像分割成大小一致的影像區塊,並對每個影像區塊做一次線性嵌入。隨後和位置編碼整合後,將結果向量序列輸入正規變換編碼器。通常情況下,分類用的 token 會被加入到該序列中,用於後續的分類任務。 #對於語言模型,本文縮小了LLaMA 的規模,以方便部署,也就是說,本文提出的模型可以無縫地支援幾乎所有流行的推理框架。此外,研究者也評估了邊緣設備上的模型延遲,來選擇合適的模型架構。神經架構搜尋(NAS)是比較不錯的選擇,但目前研究者並沒有將其立刻應用到目前的模型上。表 2 顯示了本文架構的詳細設定。 具體來說,本文使用 LLaMA2 中的 sentence piece tokenizer,單字表大小為 32000,並從頭開始訓練嵌入層。這樣作有利於後續進行蒸餾。由於資源有限,所有模型在預訓練階段使用的上下文長度都是 2k。不過,如《Extending context window of large language models via positional interpolation》所述,推理時的上下文視窗可以進一步擴展到 8k。其他組件的詳細設定如下。
- 應用預歸一化來穩定訓練。具體來說,本文使用 RMSNorm 代替層歸一化, MLP 膨脹比使用 8/3 而不是 4。
視覺編碼器和語言模型之間的映射網路對於對齊多模態特徵至關重要。現有的模式有兩種:Q-Former 和 MLP projection 。 Q-Former 明確控制每個 query 包含的視覺 tokens 數量,以強制提取最相關的視覺資訊。但是,這種方法不可避免地會失去 tokens 的空間位置訊息,而且收斂速度較慢。此外,它在邊緣設備上的推理效率也不高。相較之下,MLP 保留了空間訊息,但通常包含背景等無用的 tokens。對於一個 patch 大小為 P 的圖像,有 N_v = HW/P^2 個視覺 token 需要注入到 LLM 中,這大大降低了整體推理速度。受 ViT 的條件位置編碼演算法 CPVT 的啟發,研究者利用卷積來增強位置訊息,並鼓勵視覺編碼器的局部互動。具體來說,研究者對基於深度卷積(PEG 的最簡單形式)的行動友善操作進行了研究,這種操作既高效又能得到各種邊緣設備的良好支援。 為了保留空間資訊並最大限度地降低計算成本,本文使用了 2 步長的捲積,從而減少了 75% 的視覺 token 數量。這種設計大大提高了整體推理速度。然而,實驗結果表明,降低 token 取樣數量會嚴重降低下游任務(如 OCR)的表現。為了減輕這種影響,研究者設計了一個更強大的網路來取代單一 PEG。高效率的映射網路(稱為輕量級下取樣映射(LDP))的詳細架構如圖 2 所示。值得注意的是,這個映射網路只包含不到 2,000 萬個參數,運行速度比視覺編碼器快約 81 倍。
本文使用 "層歸一化"(Layer Normalization)而不是 "批次歸一化"(Batch Normalization),以使訓練不受批量大小的影響。形式上,LDP(記為 P)將視覺嵌入作為輸入,並輸出有效提取和對齊的視覺標記 。
#在表3 中,研究者在兩個標準自然語言benchmark 上對本文提出的模型進行了廣泛的評估,這兩個benchmark 分別針對語言理解和常識推理。在前者的評估中,本文使用了語言模型評估工具(Language Model Evaluation Harness)。實驗結果表明, MobileLLaMA 1.4B 與 TinyLLaMA 1.1B、Galactica 1.3B、OPT 1.3B 和 Pythia 1.4B 等最新開源模型不相上下。值得注意的是, MobileLLaMA 1.4B 優於 TinyLLaMA 1.1B,後者是在 2T 級別的 token 上訓練的,是 MobileLLaMA 1.4B 的兩倍。在 3B 級別,MobileLLaMA 2.7B 也表現出與 INCITE 3B (V1) 和 OpenLLaMA 3B (V1) 相當的性能,如表 5 所示,在驍龍 888 CPU 上,MobileLLaMA 2.7B 比 OpenLLaMA 3B 快約 40%。
################################本文評估了LLaVA 在GQA 、ScienceQA 、TextVQA 、POPE 和MME 上的多模態效能。此外,本文也利用 MMBench 進行了綜合比較。如表 4 所示,MobileVLM 儘管參數減少、訓練資料有限,但效能卻很有競爭力。在某些情況下,它的指標甚至優於先前最先進的多模態視覺語言模型。 ############
#Low-Rank Adaptation(LoRA)可以用較少的可訓練參數實現與全微調LLM 相同甚至更好的性能。本文對此做法進行了實證研究,以驗證其多模態性能。具體來說,在 VLM 視覺指令調整階段,本文凍結了除 LoRA 矩陣之外的所有 LLM 參數。在 MobileLLaMA 1.4B 和 MobileLLaMA 2.7B 中,更新後的參數分別只有完整 LLM 的 8.87% 和 7.41%。對於 LoRA ,本文將 lora_r 設為 128,lora_α 設為 256。結果如表 4 所示,可以看到,在 6 個 benchmark 上,帶有 LoRA 的 MobileVLM 達到了與全微調相當的性能,這與 LoRA 的結果一致。 研究者在Realme GT 手機和英偉達Jetson AGX Orin 平台上評估了MobileLLaMA 和MobileVLM 的推理延遲。這款手機配備了驍龍 888 SoC 和 8GB 內存,可提供 26 TOPS 的運算能力。 Orin 配備 32GB 內存,可提供驚人的 275 TOPS 運算能力。它採用 CUDA 11.4 版本,支援最新的平行運算技術,可提高效能。 #在表7 中,研究者比較了不同規模和不同視覺token 數量下的多模態表現。所有實驗均使用 CLIP ViT 作為視覺編碼器。
VL 映射網路
#由於特徵互動和token交互作用都是有益的,研究者對前者採用了深度卷積,對後者採用了點卷積。表 9 顯示了各種 VL 映射網路的效能。表 9 中的第 1 行是 LLaVA 中使用的模組,該模組只透過兩個線性層對特徵空間進行轉換。第 2 行在每個 PW(pointwise)之前添加了一個 DW(depthwise)卷積,用於 token 交互,該卷積使用 2 倍下採樣,步長為 2。加上兩個前端 PW 層會帶來更多的特徵級交互,從而彌補 token 減少帶來的性能損失。第 4 行和第 5 行顯示,增加更多參數並不能達到預期效果。第 4 和第 6 行顯示,在映射網路末端對 token 進行下取樣具有正面效果。
視覺解析度與token 數量
#由於視覺token 數直接影響整個多模態模型的推理速度,本文比較了兩種設計方案:降低輸入解析度(RIR)和使用輕量級下取樣投影機(LDP)。
##在LLaMA 上進行微調的Vicuna 被廣泛用於大型多模態模型。表 10 比較了兩種常見的 SFT 範式 Alpaca 和 Vicuna 。研究者發現,SQA、VQA、MME 和 MMBench 的得分都有顯著提高。這表明,在 Vicuna 對話模式下,利用 ShareGPT 的數據對大型語言模型進行微調,最終可獲得最佳的效能。為了更好地將 SFT 的提示格式與下游任務的訓練結合,本文刪除了 MobileVLM 上的對話模式,發現 vicunav1 的表現最佳。
#簡而言之,MobileVLM 是一套專為移動和物聯網設備客製化的高效能、高能量的行動版視覺語言模型。本文對語言模型和視覺映射網絡進行了重置。研究者進行了廣泛的實驗,以選擇合適的視覺骨幹網絡,設計高效的映射網絡,並透過語言模型SFT 等訓練方案(包括預訓練和指令調整的兩階段訓練策略)和LoRA 微調來增強模型能力。研究者在主流 VLM benchmark 上對 MobileVLM 的表現進行了嚴格評估。在典型的行動和物聯網設備上,MobileVLM 也顯示出前所未有的速度。研究者認為相信,MobileVLM 將為行動裝置或自動駕駛汽車上部署的多模態助理以及更廣泛的人工智慧機器人等廣泛應用開闢新的可能性。 ###
以上是美團、浙大等合作,打造全流程行動裝置多模態大模型MobileVLM,能夠即時運行,並且採用驍龍888處理器的詳細內容。更多資訊請關注PHP中文網其他相關文章!