算法系統(tǒng)協(xié)同優(yōu)化,vivo與港中文推出BlueLM-V-3B,手機秒變多模態(tài)AI專家
BlueLM-V-3B 是一款由 vivo AI 研究院與香港中文大學聯(lián)合研發(fā)的端側多模態(tài)模型。該模型現(xiàn)已完成對天璣 9300 和 9400 芯片的初步適配,未來將逐步推出手機端應用,為用戶帶來更智能、更便捷的體驗。
近年來,多模態(tài)大語言模型(MLLM)的迅猛發(fā)展,為我們的日常生活帶來了無限可能。手機作為我們形影不離的「智能伴侶」,無疑是 MLLM 最理想的落地平臺。它能夠將強大的 AI 能力,無縫融入我們的日常任務,讓科技真正服務于生活。
然而,要將 MLLM 部署到手機上,并非易事。內存大小和計算能力的限制,就像兩座大山,橫亙在 MLLM 與手機之間。未經(jīng)優(yōu)化的模型,難以在手機上實現(xiàn)流暢、實時的處理,更遑論為用戶帶來良好的體驗。
- 論文地址:https://arxiv.org/abs/2411.10640
為了攻克這一難題,vivo AI 全球研究院和香港中文大學多媒體實驗室共同推出了 BlueLM-V-3B。這是一款專為移動平臺量身打造的 MLLM,采用了算法與系統(tǒng)協(xié)同設計的創(chuàng)新理念,重新設計了主流 MLLM 的動態(tài)分辨率方案,并針對手機硬件特性進行了深度系統(tǒng)優(yōu)化,從而實現(xiàn)了在手機上高效、流暢地運行 MLLM。
BlueLM-V-3B 具有以下幾個顯著特點:
算法與系統(tǒng)協(xié)同優(yōu)化
研究團隊分析了經(jīng)典 MLLM 使用的動態(tài)分辨率方案,發(fā)現(xiàn)了圖像過度放大的問題,并提出了針對性的解決方案。
此外,他們還針對硬件感知部署進行了一系列系統(tǒng)設計和優(yōu)化,使 MLLM 在移動設備上能夠更高效地進行推理,充分發(fā)揮硬件潛力。
卓越的模型性能
BlueLM-V-3B 在性能上表現(xiàn)出色,在參數(shù)規(guī)模相似的模型中達到了 SOTA 水平(例如,在 OpenCompass 基準測試中取得了 66.1 的高分)。
更令人驚喜的是,BlueLM-V-3B 甚至超越了一系列參數(shù)規(guī)模更大的 MLLM(例如,MiniCPM-V-2.6、InternVL2-8B),展現(xiàn)了其強大的實力。
高效的移動端部署
BlueLM-V-3B 在移動端部署方面同樣表現(xiàn)優(yōu)異。以聯(lián)發(fā)科天璣 9300 處理器為例,其內存需求僅為 2.2GB,能夠在約 2.1 秒內完成對 768×1536 分辨率圖像的編碼,并實現(xiàn) 24.4token/s 的 token 輸出速度。
這意味著,用戶可以在手機上享受到流暢、高效的 MLLM 體驗,而無需擔心算力瓶頸。
BlueLM-V-3B 設計思路
模型主體結構
BlueLM-V-3B 延續(xù)了傳統(tǒng)的 LLaVA 架構,包括視覺編碼器 SigLIP-400M,MLP 線性映射層,以及大語言模型 BlueLM-3B。
為了更好地處理高分辨率圖片,和主流 MLLM 一樣,BlueLM-V-3B 采用了動態(tài)分辨率方案,并針對 InternVL 1.5 和 LLaVA-NeXT 中存在的圖像過度放大問題進行了改進。
此外,為了應對手機 NPU 在處理長輸入 token 時的性能限制,BlueLM-V-3B 還引入了 token 降采樣的方案,以確保模型在移動設備上的順利部署。
動態(tài)分辨率
- 算法改進:
為了提升多模態(tài)模型應對高分辨率圖片的能力,主流的 MLLM 往往采用動態(tài)分辨率的方案進行圖片的放縮和裁切。該團隊發(fā)現(xiàn)主流動態(tài)分辨率方案,如 LLaVA-NeXT 和 InternVL 1.5 往往伴隨圖片過度放大。
傳統(tǒng)的動態(tài)分辨率方案往往會選擇一個分辨率(如 384x384)作為基準尺寸,并選擇合適的長寬比對圖像進行縮放。
對于 LLaVA-NeXT,給定一個分辨率為 394×390 的圖像,它會選擇 2:2 的圖片比例,然后將原始圖像調整并填充至 768×768(放大 4 倍)。
對于 InternVL1.5,給定一個分辨率為 380×76 的圖像,它會選擇 5:1 的比例,直接將原始圖像調整至 1920×384(放大 25 倍)。
這種放大并不一定豐富了圖像信息,但會導致更多的圖像切塊,從而增加圖像 token 的數(shù)量,增加移動設備上的部署難度。
鑒于此,BlueLM-V-3B 基于 LLaVA-NeXT 設計了一種寬松的長寬比選擇算法,綜合考慮了放縮后圖片的有效信息分辨率以及浪費的空間,有效提高了圖片信息的利用率,減少了部署時的圖片 token 長度,降低圖片的處理延時。
- 硬件感知的系統(tǒng)設計
圖像并行編碼:經(jīng)過動態(tài)分辨率處理后,圖像被分為多個局部切塊以及一張全局縮略圖切塊。為了加速部署推理,BlueLM-V-3B 采用并行策略來利用 NPU 的計算能力。
與高級語言(例如 Python)不同,硬件加速設計需要對計算資源進行底層控制,例如內存布局和基于寄存器大小的計算優(yōu)化。
由于 NPU 的計算能力有限,所有圖片切塊無法同時有效處理;相反,BlueLM-V-3B 一次處理固定數(shù)量的切塊,以獲得并行處理和硬件性能的平衡。
流水線并行處理:在模型推理過程中,BlueLM-V-3B 實現(xiàn)了流水線并行方案,以優(yōu)化圖像切塊的編碼效率。
具體而言,對于從單個圖像中提取的不同切塊,BlueLM-V-3B 為 SigLIP 視覺嵌入模塊的 Conv2D 層和 ViT 層設計了流水線并行方案。這種方法有效地隱藏了 Conv2D 操作的執(zhí)行延遲,提升了整體處理速度。
Token 降采樣
- 基礎算法:
雖然 BlueLM-V-3B 設計了一種寬松的長寬比選擇算法來降低部署過程中圖片 token 的數(shù)量,但動態(tài)分辨率帶來的圖片 token 數(shù)量依然很多。
為此,BlueLM-V-3B 采用了 VILA 提出的 token 數(shù)量下采樣方案,將每 2×2 個圖像 token 合并為一個 token,并采用一個線性層做信息融合,降低了部署難度。
- 系統(tǒng)設計:
分塊計算輸入 token:在 LLM 推理過程中,傳統(tǒng) GPU 通過并行計算技術同時處理所有輸入 token 以加速計算。然而,由于圖像 token 長度較長、上下文信息復雜以及 NPU 計算能力有限,導致并行處理效率低下。逐個 token 的順序處理也不是最佳選擇。
因此,BlueLM-V-3B 在移動設備上采用了分塊策略,每次迭代并行處理 128 個輸入 token(t128),然后合并結果,以在并行處理與 NPU 計算資源之間實現(xiàn)平衡。
模型量化和總體推理框架
- 模型量化:
混合參數(shù)精度:BlueLM-V-3B 通過混合精度量化降低內存使用并提升推理速度。權重方面,SigLIP 和 MLP 線性映射層采用 INT8 精度,LLM 則使用 INT4 精度,平衡了計算效率與模型精度。
由于激活值對量化更敏感,LLM 的激活使用 INT16 精度,SigLIP 及映射層的激活則使用 FP16,以確保模型性能。推理過程中,KV 緩存采用 INT8 精度存儲。
- 解耦圖像編碼與指令處理:
為了提高部署效率,BlueLM-V-3B 將圖像處理與用戶輸入解耦。在模型初始化時,ViT 和 LLM 模型同時加載到內存中。用戶上傳圖像時,由于 MLLM 在本地部署,上傳幾乎沒有延遲。圖像上傳后,ViT 立即開始處理,用戶可以同時輸入指令;對于音頻指令,BlueLM-V-3B 會先將其轉換為文本。
圖像處理完成后,用戶的命令提交給 LLM 生成響應,ViT 可以從內存中釋放。這種并行處理減少了第一個 token 生成的等待時間,提高了響應速度,并將 BlueLM-V-3B 的峰值內存使用限制在 2.2GB。
BlueLM-V-3B 的訓練過程
訓練流程
BlueLM-V-3B 從 BlueLM-3B 語言模型開始分兩個階段進行訓練。在第一階段,預訓練線性映射層,同時保持 ViT 和 LLM 凍結。在第二階段,使用大量的圖像 - 文本對對模型進行全面微調。
訓練數(shù)據(jù)
- 第一階段:
第一階段旨在賦予模型基本的多模態(tài)能力。在這一階段,該團隊利用開源數(shù)據(jù)集,創(chuàng)建了一個由 250 萬條圖像 - 文本對組成的綜合預訓練數(shù)據(jù)集,這些數(shù)據(jù)集來自 LLaVA、ShareGPT4V 和 ALLaVA。
- 第二階段:
在這一階段,研究團隊精心構建了一個包含 6億+ 條圖像 - 文本對的數(shù)據(jù)集,其中包括開源數(shù)據(jù)集和內部數(shù)據(jù)集。該數(shù)據(jù)集涵蓋了各種下游任務和多樣化的數(shù)據(jù)類型,如圖像描述、視覺問答、文本圖片識別和純文本數(shù)據(jù)。
除了開源數(shù)據(jù)集,他們還加入了大量內部數(shù)據(jù)以增強模型的能力。比如,從各種網(wǎng)站上爬取了大量的純文本數(shù)據(jù)和圖像 - 文本對。對于不同的數(shù)據(jù)類別,如 PDF、公式、圖表、解題數(shù)據(jù)、多語種數(shù)據(jù),團隊還手動渲染并創(chuàng)建了大量的圖像-文本對,以豐富訓練數(shù)據(jù)的多樣性。
除了進行圖像渲染外,研究團隊還使用 GPT-4o 和 Gemini Pro 構造和修改圖片描述及視覺問答對。開源與專有數(shù)據(jù)的結合顯著提升了模型的能力,使其能從多樣化的示例中學習,并在多種任務和模態(tài)上提升性能。
實驗結果
寬松的長寬比選擇算法
- 部署效率:
該團隊在 LLaVA 665k 訓練集上驗證了改進方案是否能降低部署成本。為公平對比,他們將 LLaVA-NeXT、InternVL 1.5 和改進方案的最大分塊數(shù)均設置為 9。
與 LLaVA-NeXT 相比,提出的方法在 2.9 萬個樣例中選擇了更小的長寬比;而在與 InternVL 1.5 的比較中,在 52.3 萬個樣例中采用了更小的長寬比,在 2.5 萬個樣例中選擇了更大的長寬比。這顯著提升了 NPU 上的推理效率。
- 測評集性能:
研究團隊在 MiniCPM-2B 和 BlueLM-3B(均為 2.7B 參數(shù)量)兩個模型上進行實驗,利用 LLaVA 558k 進行第一階段訓練,用 LLaVA 665k 進行第二階段訓練。比較 LLaVA-NeXT、InternVL 1.5 和改進方案在測評集上的性能表現(xiàn)。
由于 3B 模型的學習速度較慢,每個階段訓兩輪。該團隊統(tǒng)計了在多個常用測評集上的結果。
可以看到新設計的動態(tài)分辨率方案不僅降低了部署成本,還提升了測評集上的準確率。
不同測評集上的準確率比較
- OpenCompass 測評集:
下圖展示了全量微調完的 BlueLM-V-3B 模型在 OpenCompass 測評集上的精度表現(xiàn),并和總參數(shù)量小于等于 10B 的模型進行比較。
可以看到,BlueLM-V-3B 模型在 4 個測試項目中取得最高分,并在均分上排名第二。這展示了 BlueLM-V-3B 模型的強勁性能。
- 文本數(shù)據(jù)集 / OCR 能力:
下圖是 BlueLM-V-3B 與參數(shù)量相近的多模態(tài)模型在 TextVQA,DocVQA 以及多語種多模態(tài)數(shù)據(jù)集 MTVQA 上的評測結果。
可以看到,在 OCR 相關任務上,BlueLM-V-3B 取得了非常有競爭力的成績,并在多語言測評中遠超主流的多模態(tài)模型。
BlueLM-V-3B 部署效率
團隊匯報了在搭載天璣 9300 處理器的 vivo X100 手機上的部署結果。
- 圖像并行編碼:
實驗中,采用了 2:4 的分塊方案(對手機屏幕的處理采用 2:4 方案),共有 2x4=8 個局部分塊和一個全局分塊。該團隊測試了同時處理 1 塊、2 塊、4 塊、6 塊圖像切塊的 NPU 處理延時。
可以看到,同時處理 4 個切塊的總延時最低,僅為 1.9 秒。
- 流水線并行處理:
該團隊設計了對 SigLIP 模型的 Conv2D 和 ViT 部分在 CPU 和 NPU 上的流水線并行,并測試了 2:4 分塊方案下的部署效率。如上文流水線管線所示,可以掩蓋 200 毫秒的 Conv2D 的處理延時。
- 分塊計算輸入 token:
該團隊在 NPU 上采用了一種分塊處理策略,每次迭代并行處理 128 個輸入 token(t128),以平衡并行處理與 NPU 性能。在此展示并行處理不同數(shù)量輸入 token 時的 LLM 首詞延時:t32、t128、t512 和 t2048。
論文中還列出了輸出 token 的生成速度,其中僅顯示了 t1 的情況,因為 LLM 在輸出時一次處理一個 token。輸入 token 長度被固定為 2048,KV 緩存長度被設置為 2048。
可以看到,t128/t1 實現(xiàn)了最低的延遲和最快的生成速度。
- 和 MiniCPM-V 對比:
該團隊對 BlueLM-V-3B 與 MiniCPM-V 論文中提供的統(tǒng)計數(shù)據(jù)進行了直接比較。MiniCPM-V 論文僅報告了 8B 參數(shù)量的 MiniCPM-V 2.5 模型在天璣 9300 芯片的 CPU 上使用 llama.cpp 部署的情況。BlueLM-V-3B 團隊使用分辨率為 768×1536 的圖像,固定輸入 token 長度為 2048,并將 KV 緩存長度設為 2048。
MiniCPM-V 將模型加載時間也計入了延遲。對于 BlueLM-V-3B,在系統(tǒng)初始化階段,同時加載 ViT 和 LLM 的時間僅為 0.47 秒。結果顯示,BlueLM-V-3B 因其較小的參數(shù)量和優(yōu)秀的系統(tǒng)設計,在延遲和 token 吞吐量上更具優(yōu)勢。
總結
在 BlueLM-V-3B 的開發(fā)過程中,vivo 和港中文團隊在確保良好用戶體驗的同時,注重算法 - 系統(tǒng)協(xié)同設計和硬件感知優(yōu)化。據(jù)實驗與統(tǒng)計分析顯示,BlueLM-V-3B 在移動設備上表現(xiàn)出色,性能強勁且部署高效。
未來,該團隊將繼續(xù)致力于提升端側模型的可擴展性,并探索先進算法,持續(xù)優(yōu)化性能與可用性,以適應更多的手機設備。