Lightweight VLA Drive Decision Adapter v10
面向智能驾驶高层决策的轻量模块化 VLA 学生模型。模型联合编码:
DrivingIntent 1.2对应的 ModernBERT 意图 token;- 相机 BEV 特征;
- LiDAR BEV 特征;
- 候选交通实体;
- 自车状态。
模型输出 VLADecisionProposal 1.0,不直接输出方向盘、油门、制动或轨迹。部署时必须保留项目中的确定性风险安全门、控制计划 FSM 和 CARLA 控制协议。
架构与接入位置
structured_command_parser -> DrivingIntent 1.2
scene_understanding -> SensorBundle + WorldState + RiskAssessment
|
v
ModernBERT intent tokens + Camera BEV + LiDAR BEV
Candidate entities + Ego state
|
v
4-layer Cross-Attention Decision Adapter
|
v
VLADecisionProposal 1.0
|
v
Deterministic risk and safety gate
|
v
ControlPlan FSM -> ControlDecision 1.0 -> CARLA controller
本模型替代或增强原链路中“仅依赖固定规则生成名义高层动作”的部分。以下模块仍然保留:
- 上游结构化指令解析;
- 场景理解、候选实体检测和语义对齐;
- 风险评估与确定性安全门;
- 多步骤控制计划 FSM;
- 轨迹规划、PID 和 CARLA 控制器。
模型结构
- 相机和 LiDAR 双分支轻量 BEV 编码器;
- 隐藏维度 256;
- BEV token 网格
8 x 8; - 4 层 Cross-Attention;
- 8 个注意力头;
- 2 个查询 token;
- 4,170,254 个 Decision Adapter 参数。
动作空间:
keep_lane
accelerate
decelerate
stop
emergency_brake
lane_change_left
lane_change_right
turn_left
turn_right
输入输出
运行时输入由项目代码转换为:
camera_bev: [B, 8, H, W]
lidar_bev: [B, 4, H, W]
ego_features: [B, 8]
candidate_features:[B, N, 12]
candidate_mask: [B, N]
intent_tokens: [B, L, 768]
intent_mask: [B, L]
模型输出示例:
{
"schema_version": "1.0.0",
"request_id": "request-1",
"frame_id": "carla-100",
"action": "lane_change_left",
"target_speed_kmh": 18.0,
"target_lane": "left",
"target_location": null,
"target_entity_id": "vehicle-front",
"confidence": 0.91,
"model": "lightweight-vla-modernbert-bev-base",
"latency_ms": 2.5
}
候选实体指针受上游候选集合约束,模型不应自由生成不存在的目标实体。
评测结果
最终 v10 独立测试
| 测试集 | 样本数 | 原始动作准确率 | Macro-F1 | 速度 MAE | 车道准确率 |
|---|---|---|---|---|---|
| 固定官方 validation 测试 | 24,361 | 79.90% | 71.97% | 8.16 km/h | 95.66% |
| 广义官方 validation 测试 | 82,262 | 84.18% | 74.92% | 5.76 km/h | 97.37% |
| CARLA 0.9.16 域测试 | 908 | 98.68% | 98.89%* | 0.45 km/h | 100.00% |
* CARLA 集只覆盖 keep_lane、decelerate 和 emergency_brake,因此表中为受支持类别 Macro-F1,不能视为九类动作均已在 CARLA 中验证。
确定性安全门
| 测试集 | 安全门前准确率 | canonical 覆盖率 | 安全门后 canonical 动作准确率 | 安全门后方向冲突 |
|---|---|---|---|---|
| 固定官方测试 | 79.90% | 23.92% | 91.77% | 0 |
| 广义官方测试 | 84.18% | 24.46% | 94.66% | 0 |
| CARLA 域测试 | 98.68% | 10.79% | 100.00% | 0 |
安全门后结果是学习模型与确定性 canonical fallback 的组合结果,不是学生模型单独的准确率。post_gate_compatible_rate=100% 是安全门不变量,也不能解释为学习准确率。
时延
RTX 5090、FP16、batch size 1、预热后统计 500 次:
| 阶段 | 平均 | P50 | P95 | 最大值 |
|---|---|---|---|---|
| 分词 | 0.23 ms | 0.23 ms | 0.26 ms | 0.37 ms |
| ModernBERT + Adapter | 15.08 ms | 15.71 ms | 17.05 ms | 20.99 ms |
| 文本到 proposal 特征总计 | 15.32 ms | 15.96 ms | 17.30 ms | 21.22 ms |
该时延不包含原始相机/LiDAR 感知、ASR、规划器和车辆控制器。
下载
hf download UNIC0RN-Zhu/lightweight-vla-drive-decision-adapter-v10 \
--local-dir ./models/lightweight-vla-drive-decision-adapter-v10
该仓库只发布运行时权重、配置和评测结果。模型结构、协议、预处理与安全桥位于:
ZhuShanzhe/LMM-in-AutoDrive/lightweight_vla_adapter
加载
import json
import torch
from lightweight_vla_adapter.src.decision_adapter import (
LightweightDecisionAdapter,
)
from lightweight_vla_adapter.src.pipeline import LightweightVLAPipeline
model_dir = "./models/lightweight-vla-drive-decision-adapter-v10"
with open(f"{model_dir}/student_base.json", encoding="utf-8") as handle:
config = json.load(handle)
model = LightweightDecisionAdapter(
camera_channels=config["camera_channels"],
lidar_channels=config["lidar_channels"],
candidate_dim=config["candidate_dim"],
ego_dim=config["ego_dim"],
intent_dim=config["intent_dim"],
hidden_size=config["hidden_size"],
num_layers=config["num_layers"],
num_heads=config["num_heads"],
dropout=config["dropout"],
bev_grid=tuple(config["bev_grid"]),
)
pipeline = LightweightVLAPipeline.from_checkpoint(
model,
f"{model_dir}/model.pt",
model_name=config["model_name"],
device="cuda",
dtype=torch.float16,
)
在线服务必须在接收请求前调用 pipeline.warmup(...)。不要以随机初始化模型运行在线推理。
文件
| 文件 | 说明 |
|---|---|
model.pt | v10 Decision Adapter state dict |
model.sha256 | 权重 SHA256 |
student_base.json | 模型结构和部署预算 |
calibration_report.json | v10 校准选择报告 |
end_to_end_latency.json | RTX 5090 稳态时延 |
evaluations/*.json | 最终原始与安全门评测 |
LICENSE | SimLingo 上游许可副本 |
NOTICE | 强制署名、用途和依赖说明 |
权重 SHA256:
0f813842ec36ef1b3d4d80a9013a83531c522dafc3f42723c3e22e55f6e567b6 model.pt
限制与安全
- 仅用于非商业学术和科研用途。
- 不得用于真实车辆或机器人运行以及其他高风险部署。
- 当前相机 BEV 主要来自官方三维标注或结构代理;该结果不能替代真实 BEV 感知评测。
- CARLA 独立测试只覆盖三类高层动作,不是完整九类动作或完整闭环验收。
- 固定官方测试中的右变道和转向动作仍是主要误差来源。
- 模型不能绕过紧急制动、目标车道安全检查、语义对齐失败或 FSM 安全兜底。
- 该模型及评测结果不构成自动驾驶安全认证。
许可证与署名
本模型使用 SimLingo 数据训练,受其自定义非商业研究许可约束。使用者必须阅读本仓库 LICENSE 和上游许可。
Required attribution:
This work was made using the SimLingo dataset, provided by Wayve Technologies Ltd under licence terms available at https://github.com/RenzKa/simlingo
ModernBERT backbone 的上游权重采用 Apache-2.0;本模型整体不得重新声明为 Apache-2.0、MIT 或其他更宽松许可证。