自动驾驶领域近年来迎来爆发式增长,端到端模型因其简洁高效的特性成为行业热点。但在实际部署中,视觉语言动作模型(Vision-Language-Action Models, VLA)面临一个关键瓶颈:高分辨率图像输入产生的海量视觉token会显著增加计算负担,直接影响实时性表现。
小鹏汽车与北京大学联合团队在AAAI 2026发表的FastDriveVLA,正是针对这一痛点提出的创新解决方案。该方法通过动态token剪枝技术,在保持模型性能的前提下,将视觉token处理效率提升47%,让VLA模型在车载计算平台上实现真正的实时推理。
关键突破:不同于传统的事后剪枝方案,FastDriveVLA首次实现了在模型前向传播过程中动态识别并剔除冗余视觉token,使计算资源始终聚焦于关键道路信息。
典型VLA模型的视觉编码器采用ViT架构,将1920×1080输入图像分割为16×16的patch后,会产生超过5000个初始视觉token。这些token经过多层Transformer处理后,会与语言指令token、历史动作token进行跨模态融合,最终输出控制指令。实验数据显示,其中约60%的视觉token对驾驶决策贡献度不足5%。
采用轻量级CNN分支实时分析原始图像,输出空间注意力热图。该模块仅增加0.3ms延迟,却能准确标识道路参与者(车辆、行人)、交通标志等关键区域。
python复制class SaliencyPredictor(nn.Module):
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(3, 16, kernel_size=3, stride=2)
self.conv2 = nn.Conv2d(16, 32, kernel_size=3)
self.heatmap = nn.Conv2d(32, 1, kernel_size=1)
def forward(self, x):
x = F.relu(self.conv1(x))
x = F.relu(self.conv2(x))
return torch.sigmoid(self.heatmap(x))
根据当前车速动态调整剪枝强度:城市道路(<60km/h)保留前40%显著token,高速公路(≥60km/h)保留前30%。采用Top-K筛选确保关键信息不丢失:
math复制retained\_tokens = \begin{cases}
topk(\mathbf{H}, 0.4N) & \text{if } v < 60 \\
topk(\mathbf{H}, 0.3N) & \text{otherwise}
\end{cases}
在反向传播时,对被剪枝token的位置注入补偿梯度,避免模型因长期忽略某些区域而产生视野盲区。这是保持模型鲁棒性的关键设计。
| 方法 | 延迟(ms) | 内存占用(MB) | 碰撞率(%) |
|---|---|---|---|
| 原始VLA | 218 | 3420 | 1.2 |
| 静态剪枝 | 156 | 2400 | 2.8 |
| FastDriveVLA(ours) | 115 | 1850 | 1.3 |
测试环境:NVIDIA Orin平台,CARLA仿真城镇场景
在北京亦庄60公里复杂路况测试中,我们观察到几个有趣现象:
bash复制# 安装定制版transformers库
pip install git+https://github.com/fastdrivevla/transformers@vla-pruning
# 在现有VLA模型中插入剪枝层
from transformers import VLAModelWithPruning
model = VLAModelWithPruning.from_pretrained("xpu/fastdrive-base")
model.enable_pruning(ratio=0.4)
重要提示:切勿在未充分测试的情况下将剪枝比例设为超过60%,这可能导致模型忽略远处障碍物。
现象:方向盘出现高频小幅振荡
解决方案:
现象:长时间运行后内存持续增长
排查步骤:
clear_pruning_cache()方法nvidia-smi -l 1案例:未识别施工路锥
优化方案:
这套方案目前已经在小鹏G9 2025款车型上完成量产部署,实际路测显示在复杂城区场景下可将系统响应延迟从210ms降至142ms,同时保持99.3%的原始模型安全性。对于希望优化自动驾驶模型效率的团队,动态token剪枝正在成为新的技术标配。