英伟达结合自己开发的VLM模型,并基于Thor-X平台做了延迟测试,并于2025年6月9日公开发表了测试结果,详情可见论文《LiteVLM: A Low-Latency Vision-Language Model Inference Pipeline for Resource-Constrained Environments》。
英伟达LiteVLM管线
图片来源:英伟达
英伟达在其机器人大模型GR00T N1有自研的Eagle-2 VLM。
英伟达Eagle 2训练3阶段
图片来源:英伟达
Eagle 2有90亿/20亿/10亿三个版本,分别基于阿里的Qwen2.5 320亿/15亿/5亿,对于15亿和5亿,只用了SigLIP做视觉编码。GR00T N1默认使用的20亿参数版本。为了运行这个20亿参数版本的VLM,英伟达使用了价格略低的专业L40显卡,L40显卡的FP16稠密算力是181.05TOPS,稀疏算力362TOPS,显存为48GB的GDDR6,存储带宽864GB/s,最大功耗300瓦,目前售价大约47000元人民币,VLM的运行频率为10Hz。
LiteVLM则考虑自动驾驶,选用了上海人工智能实验室开源的多模态大模型书生·万象2.5(InternVL2.5)作为基础,这是目前自动驾驶领域最佳VLM,像素为448*448,分成12个非遮盖patch,合计240万像素。采用了上海人工智能实验室和德国图宾根大学联合打造的DriverLM数据集测试。
英伟达自动驾驶芯片参数一览
即便是Thor-X这样强大的芯片,运行Eagle2这样的小规模VLM也很困难,因此英伟达做了很大幅度的优化,这就是LiteVLM。
优化主要体现在三个方面,一是动态Patch选择模块(Dynamic Patch Selection Module),二是解耦式Token选择模块(Decoupled Token Selection Module),三是动态草稿树(Dynamic Draft Trees)。
LiteVLM的延迟统计
数据来源:英伟达
FP8精度下,LiteVLM最高可以做到6Hz,已大幅提升了3.2倍,当然精度自然是要有所损失的,不过还在可以接受的范围内。从上图也能看出,延迟最多的部分还是解码阶段,解码阶段和算力是没有关系的,完全取决于存储带宽。
英伟达Drive Thor平台
图片来源:英伟达
英伟达的论文里没有明确说是Thor-X,而是说Drive Thor平台,并给出了网址链接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,实际就是英伟达2022年9月的新闻发布稿,发布稿里明确提到了算力是2,000 Teraflops,毫无疑问就是Thor-X。
存储方面,FP16精度下,ViT模块需要588.80 MiB存储,最大激活存储是 866 MiB,5亿参数的Qwen2 需要1.21 GiB,最大激活为 162 MiB,18亿参数的1.8B InternVL2.5 需要3.62 GiB,最大激活 288 MiB。1 MB ≈ 0.9537 MiB。10亿参数下KV-Cache 需要252 MiB,20亿参数需要864 MiB,考虑到SoC带的LPDDR需要对应多个应用,存储利用率一般不到80%,即便8位整数下精度20亿参数也至少需要4GB的空间。
20亿参数VLM,FP8和FP16下延迟统计
图片来源:英伟达
VLM的第一步就是将视觉转换为嵌入式Token,通常都采用ViT模型,常见的是CLIP的ViT-L/14,视觉侧参数量3.04亿,文本侧骨干网为RoBERTa-wwm-Base,参数量1.02亿,合计4.06亿,图像分辨率224*224,每张图像576个token。基于首个Token化,输入文本查询序列,先通过轻量Transformer编码器(4层)与跨注意力机制,动态筛选多视角摄像头中的相关图像区域(patches),过滤掉那些重复的或远离中心的patch,还有一些就是被遮挡产生的影子patch。这个只有4层的小模型使用累加二分类交叉熵Binary Cross-Entropy (BCE) losses 损失函数训练。
英伟达首次将空间注意力引导 (Spatial Attention Guidance)应用于VLM的预处理阶段,减少ViT编码器的输入规模。此外采用混合真值标签生成策略 (显式视角关键词匹配 + GPT-3.5-Turbo隐式推理评估),提升视角相关性判断的鲁棒性。例如,任务提示中“前左”标记,就只对应前左摄像头。
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 推理时候层数加深,模型自注意力基本上都是在 system prompt 和之前输出的 tokens 上面,对 image tokens 关注很少。在推理阶段,想办法计算出哪些 visual token 是重要的,然后去掉不重要的就行了。具体做法也比较简单,计算每个 visual token 和其余所有 token 的注意力的 attention score 总和,然后进行重要性排序即可,阿里称之为Fast V(一种免训练的视觉token压缩方案,解决大模型推理开销问题),无需训练,即插即用,不过FLOPs 小不代表模型真的更高效。而且剪枝算法对于 LLM 部署很不友好,不方便部署。
第三就是动态草稿树(Dynamic Draft Trees),这个是核心技术,可以展开多说几句。
LLM 是逐个 token 生成文本的,即生成下一个 token 需要依赖前面已经生成的 token。这种串行的模式导致自回归编码过程计算量大、耗时,是LLM应用的主要瓶颈,因此有众多方案对其进行改进。
投机采样(Speculative Sampling)使用一个较小的草稿模型快速生成多个 token,然后使用原始的目标 LLM 并行验证这些 token。其缺点是需要合适的草稿模型,并且草稿模型的质量直接影响加速效果。Lookahead使用 n-gram 和 Jacobi 迭代来预测 token,其缺点是草稿质量较低,加速效果有限,并且只适用于贪婪解码。
在特征层(feature level)进行自回归预测,然后通过 LM Head 得到 token,比直接预测 token 更简单,效果更好。特征指的是 LLM 倒数第二层的输出的embedding,也就是在进入 LM Head 之前的隐状态。隐状态相较于 token 层更有规律性,而且会拥有比最终结果更多的暗知识(dark knowledge)。只采样 token 的方法显然就直接忽略了这些暗知识。
采样过程中的不确定性限制了特征预测的性能。因为 LLM 会对 token 的概率分布进行采样,所以LLM 的输出是带有随机性的。这种随机性会导致特征序列的预测变得不确定。例如,给定相同的输入「I」,接下来可能按概率采样输出「always」或者「am」,在这一步不同的选择会造就两个完全不同的意思、两个完全不同的逻辑,这就导致了特征预测的不确定性。
在特征层进行自回归,使用一个轻量级的自回归模型来预测目标 LLM 的特征序列,而不是直接预测 token。
保留特征层可以更好克服采样过程中的不确定性。通过引入前一个时间步的 token 序列来解决特征预测中的不确定性,这使得模型能够以最小的额外计算成本精确预测倒数第二层的特征。即在预测当前特征时,不仅考虑之前的特征序列,还考虑之前已经采样的 token 序列。如上图,在输出 I 之后,会按概率采样输出 am 或是 always。在进一步寻找 always 的后续输出时,如果能保留 I 的特征层输出,就能保留住采样过程中丢掉的关于 am 的信息。
需要训练一个小的 draft 模型,主要包括嵌入层(Embedding layer)、语言模型头(LM Head)和由全连接层和 Decoder 层组成的自回归头(Autoregression Head)。
因为小模型除了transformer层数和大模型不同,其他完全一致,包括自回归生成的流程也完全一致,其最大的优势就是对部署极度友好。
英伟达Thor相对于Orin,在存储方面是没有提升的,存储位宽还是256bit,只是存储控制器提升到了LPDDR5X,因此存储带宽略有提升,对大模型来说,存储带宽远比算力重要,即使Thor-X的算力有2000TOPS,仍不能做到10Hz的20亿参数VLM,更不要说VLA的参数基本都在40亿以上。端到端系统只能采用快慢双系统,VLA做慢系统,做传统端到端系统的补充。