英偉達(dá)結(jié)合自己開發(fā)的VLM模型,并基于Thor-X平臺做了延遲測試,并于2025年6月9日公開發(fā)表了測試結(jié)果,詳情可見論文《LiteVLM: A Low-Latency Vision-Language Model Inference Pipeline for Resource-Constrained Environments》。
英偉達(dá)LiteVLM管線
圖片來源:英偉達(dá)
英偉達(dá)在其機器人大模型GR00T N1有自研的Eagle-2 VLM。
英偉達(dá)Eagle 2訓(xùn)練3階段
圖片來源:英偉達(dá)
Eagle 2有90億/20億/10億三個版本,分別基于阿里的Qwen2.5 320億/15億/5億,對于15億和5億,只用了SigLIP做視覺編碼。GR00T N1默認(rèn)使用的20億參數(shù)版本。為了運行這個20億參數(shù)版本的VLM,英偉達(dá)使用了價格略低的專業(yè)L40顯卡,L40顯卡的FP16稠密算力是181.05TOPS,稀疏算力362TOPS,顯存為48GB的GDDR6,存儲帶寬864GB/s,最大功耗300瓦,目前售價大約47000元人民幣,VLM的運行頻率為10Hz。
LiteVLM則考慮自動駕駛,選用了上海人工智能實驗室開源的多模態(tài)大模型書生·萬象2.5(InternVL2.5)作為基礎(chǔ),這是目前自動駕駛領(lǐng)域最佳VLM,像素為448*448,分成12個非遮蓋patch,合計240萬像素。采用了上海人工智能實驗室和德國圖賓根大學(xué)聯(lián)合打造的DriverLM數(shù)據(jù)集測試。
英偉達(dá)自動駕駛芯片參數(shù)一覽
來源:佐思汽研整理
即便是Thor-X這樣強大的芯片,運行Eagle2這樣的小規(guī)模VLM也很困難,因此英偉達(dá)做了很大幅度的優(yōu)化,這就使LiteVLM。
優(yōu)化主要體現(xiàn)在三個方面,一是動態(tài)Patch選擇模塊(Dynamic Patch Selection Module),二是解耦式Token選擇模塊(Decoupled Token Selection Module),三是動態(tài)草稿樹(Dynamic Draft Trees)。
LiteVLM的延遲統(tǒng)計
數(shù)據(jù)來源:英偉達(dá)
相對未經(jīng)優(yōu)化的僅僅20億參數(shù)的VLM,總延遲高達(dá)530毫秒,也就是不到2Hz,要知道這僅僅是VLM,還不是VLA。VLA還要加上軌跡規(guī)劃模塊,要做高速自動駕駛,運行至少要達(dá)到20Hz,也就是至少提升15倍性能;低速自動駕駛也要做到10Hz。
FP8精度下,LiteVLM最高可以做到6Hz,已大幅提升了3.2倍,當(dāng)然精度自然是要有所損失的,不過還在可以接受的范圍內(nèi)。從上圖也能看出,延遲最多的部分還是解碼階段,解碼階段和算力是沒有關(guān)系的,完全取決于存儲帶寬。
英偉達(dá)Drive Thor平臺
英偉達(dá)的論文里沒有明確說是Thor-X,而是說Drive Thor平臺,并給出了網(wǎng)址鏈接https://nvidianews.nvidia.com/news/nvidia-unveils-drive-thor-centralized-car-computer-unifying-cluster-infotainment-automated-driving-and-parking-in-a-single-cost-saving-system,實際就是英偉達(dá)2022年9月的新聞發(fā)布稿,發(fā)布稿里明確提到了算力是2,000 Teraflops,毫無疑問就是Thor-X。
存儲方面,F(xiàn)P16精度下,ViT模塊需要588.80 MiB存儲,最大激活存儲是 866 MiB,5億參數(shù)的Qwen2 需要1.21 GiB,最大激活為 162 MiB,18億參數(shù)的1.8B InternVL2.5 需要3.62 GiB,最大激活 288 MiB。1 MB ≈ 0.9537 MiB。10億參數(shù)下KV-Cache 需要252 MiB,20億參數(shù)需要864 MiB,考慮到SoC帶的LPDDR需要對應(yīng)多個應(yīng)用,存儲利用率一般不到80%,即便8位整數(shù)下精度20億參數(shù)也至少需要4GB的空間。
20億參數(shù)VLM,F(xiàn)P8和FP16下延遲統(tǒng)計
圖片來源:英偉達(dá)
這里英偉達(dá)似乎放棄了INT8整數(shù)8位,對于VLM這種大模型,整數(shù)運算可能會損失比較多精度,所以英偉達(dá)基本都推薦浮點運算。不過除了英偉達(dá),其余大部分AI芯片都是整數(shù)8位運算,而訓(xùn)練好的未經(jīng)量化的VLM大多是FP16的。大部分AI芯片廠家會添加一個浮點轉(zhuǎn)整數(shù)的軟件程序,不過對于某些古老的NPU芯片,其編程靈活程度太差,恐怕是無法將浮點轉(zhuǎn)換為整數(shù)運算。
VLM的第一步就是將視覺轉(zhuǎn)換為嵌入式Token,通常都采用ViT模型,常見的是CLIP的ViT-L/14,視覺側(cè)參數(shù)量3.04億,文本側(cè)骨干網(wǎng)為RoBERTa-wwm-Base,參數(shù)量1.02億,合計4.06億,圖像分辨率224*224,每張圖像576個token?;谑讉€Token化,輸入文本查詢序列,先通過輕量Transformer編碼器(4層)與跨注意力機制,動態(tài)篩選多視角攝像頭中的相關(guān)圖像區(qū)域(patches),過濾掉那些重復(fù)的或遠(yuǎn)離中心的patch,還有一些就是被遮擋產(chǎn)生的影子patch。這個只有4層的小模型使用累加二分類交叉熵Binary Cross-Entropy (BCE) losses 損失函數(shù)訓(xùn)練。
英偉達(dá)首次將空間注意力引導(dǎo) (Spatial Attention Guidance)應(yīng)用于VLM的預(yù)處理階段,減少ViT編碼器的輸入規(guī)模。此外采用混合真值標(biāo)簽生成策略 (顯式視角關(guān)鍵詞匹配 + GPT-3.5-Turbo隱式推理評估),提升視角相關(guān)性判斷的魯棒性。例如,任務(wù)提示中“前左”標(biāo)記,就只對應(yīng)前左攝像頭。
Fast V 實例
圖片來源:論文《An Image is Worth 1/2 Tokens After Layer 2: Plug-and-PLay Acceleration for VLLM Inference》
第二個就是Decoupled Token Selection Module,理論源自阿里的一篇論文《An Image is Worth 1/2 Tokens After Layer 2: Plug-and-PLay Acceleration for VLLM Inference》,visual token 的注意力計算非常低效,也就是說VLM 在推理時候會忽略掉大部分視覺 token,而我們知道視覺 token 實際上占了輸入全部 token 中的大部分,特別是圖片分辨率高的時候。隨著 VLM 推理時候?qū)訑?shù)加深,模型自注意力基本上都是在 system prompt 和之前輸出的 tokens 上面,對 image tokens 關(guān)注很少。在推理階段,想辦法計算出哪些 visual token 是重要的,然后去掉不重要的就行了。具體做法也比較簡單,計算每個 visual token 和其余所有 token 的注意力的 attention score 總和,然后進(jìn)行重要性排序即可,阿里稱之為Fast V(一種免訓(xùn)練的視覺token壓縮方案,解決大模型推理開銷問題),無需訓(xùn)練,即插即用,不過FLOPs 小不代表模型真的更高效。而且剪枝算法對于 LLM 部署很不友好,不方便部署。
第三就是動態(tài)草稿樹(Dynamic Draft Trees),這個是核心技術(shù),可以展開多說幾句。
LLM 是逐個 token 生成文本的,即生成下一個 token 需要依賴前面已經(jīng)生成的 token。這種串行的模式導(dǎo)致自回歸編碼過程計算量大、耗時,是LLM應(yīng)用的主要瓶頸,因此有眾多方案對其進(jìn)行改進(jìn)。
投機采樣(Speculative Sampling)使用一個較小的草稿模型快速生成多個 token,然后使用原始的目標(biāo) LLM 并行驗證這些 token。其缺點是需要合適的草稿模型,并且草稿模型的質(zhì)量直接影響加速效果。Lookahead使用 n-gram 和 Jacobi 迭代來預(yù)測 token,其缺點是草稿質(zhì)量較低,加速效果有限,并且只適用于貪婪解碼。
在特征層(feature level)進(jìn)行自回歸預(yù)測,然后通過 LM Head 得到 token,比直接預(yù)測 token 更簡單,效果更好。特征指的是 LLM 倒數(shù)第二層的輸出的embedding,也就是在進(jìn)入 LM Head 之前的隱狀態(tài)。隱狀態(tài)相較于 token 層更有規(guī)律性,而且會擁有比最終結(jié)果更多的暗知識(dark knowledge)。只采樣 token 的方法顯然就直接忽略了這些暗知識。
采樣過程中的不確定性限制了特征預(yù)測的性能。因為 LLM 會對 token 的概率分布進(jìn)行采樣,所以LLM 的輸出是帶有隨機性的。這種隨機性會導(dǎo)致特征序列的預(yù)測變得不確定。例如,給定相同的輸入「I」,接下來可能按概率采樣輸出「always」或者「am」,在這一步不同的選擇會造就兩個完全不同的意思、兩個完全不同的邏輯,這就導(dǎo)致了特征預(yù)測的不確定性。
在特征層進(jìn)行自回歸,使用一個輕量級的自回歸模型來預(yù)測目標(biāo) LLM 的特征序列,而不是直接預(yù)測 token。
保留特征層可以更好克服采樣過程中的不確定性。通過引入前一個時間步的 token 序列來解決特征預(yù)測中的不確定性,這使得模型能夠以最小的額外計算成本精確預(yù)測倒數(shù)第二層的特征。即在預(yù)測當(dāng)前特征時,不僅考慮之前的特征序列,還考慮之前已經(jīng)采樣的 token 序列。如上圖,在輸出 I 之后,會按概率采樣輸出 am 或是 always。在進(jìn)一步尋找 always 的后續(xù)輸出時,如果能保留 I 的特征層輸出,就能保留住采樣過程中丟掉的關(guān)于 am 的信息。
需要訓(xùn)練一個小的 draft 模型,主要包括嵌入層(Embedding layer)、語言模型頭(LM Head)和由全連接層和 Decoder 層組成的自回歸頭(Autoregression Head)。
因為小模型除了transformer層數(shù)和大模型不同,其他完全一致,包括自回歸生成的流程也完全一致,其最大的優(yōu)勢就是對部署極度友好。
英偉達(dá)Thor相對于Orin,在存儲方面是沒有提升的,存儲位寬還是256bit,只是存儲控制器提升到了LPDDR5X,因此存儲帶寬略有提升,對大模型來說,存儲帶寬遠(yuǎn)比算力重要,即使Thor-X的算力有2000TOPS,仍不能做到10Hz的20億參數(shù)VLM,更不要說VLA的參數(shù)基本都在40億以上。端到端系統(tǒng)只能采用快慢雙系統(tǒng),VLA做慢系統(tǒng),做傳統(tǒng)端到端系統(tǒng)的補充。
免責(zé)說明:本文觀點和數(shù)據(jù)僅供參考,和實際情況可能存在偏差。本文不構(gòu)成投資建議,文中所有觀點、數(shù)據(jù)僅代表筆者立場,不具有任何指導(dǎo)、投資和決策意見。