Unifying Language-Action Understanding and Generation for Autonomous Driving¶
会议: CVPR 2026
论文: CVF Open Access
代码: https://github.com/x1nyangwang/Link-VLA (有)
领域: 自动驾驶 / 多模态VLM
关键词: VLA、语言-动作对齐、统一离散词表、粗到细生成、闭环驾驶
一句话总结¶
LinkVLA 把语言指令和驾驶轨迹塞进同一个离散词表、再加一个"看着轨迹反推指令"的理解任务来强行对齐语言与动作,并用两步粗到细解码替代逐点自回归,在 CARLA 闭环上把驾驶得分推到 91.01 的同时把推理延迟从 361ms 砍到 48ms(省 86%)。
研究背景与动机¶
领域现状:端到端自动驾驶近两年的热点是把视觉-语言模型(VLM)扩成视觉-语言-动作模型(VLA),让车不再只是"反应式"地从传感器映射到控制量,而是能借助 VLM 的世界知识做显式推理、跟随自然语言指令("在施工区绕行,等车流出现空隙再并入")。指令跟随是 VLA 走向真实部署的核心能力——它支持动态重派任务、也让人能透明地监督车辆行为。
现有痛点:当前 VLA 有两个顽疾。第一是语言理解和物理动作之间的持续错位:模型可能在文本侧正确输出"向左变道"的决策,动作侧却给出"保持车道"的轨迹,指令跟随名存实亡,直接威胁安全可靠性。第二是自回归动作生成太慢:一条 \(T\) 个航点的轨迹要 \(T\) 次串行前向,像 ORION 的某些变体延迟高达 361ms,没法实车部署。
核心矛盾:以往修对齐的路子都没碰到根上——靠改数据采集(反事实标注)绕过了建模问题;靠 RL 事后微调把对齐当成补丁;靠隐式分布匹配在隐空间对齐又缺乏直接、可验证的监督。本文认为:语言和动作的语义鸿沟,根源是架构层面两个模态被割裂(连续轨迹回归 vs 离散文本生成),必须在主监督学习阶段就织入一条"显式、双向、可验证"的连接,而不是事后修补。
本文目标:分两块——(1) 从架构上消灭模态鸿沟,让语言和动作落在同一表征空间;(2) 在不牺牲对齐的前提下解决自回归的延迟瓶颈。
核心 idea:用"统一离散词表 + 动作理解反向目标 + 粗到细解码"三件套,把对齐从"事后补丁"变成"建模内生属性",同时把串行解码压成两步并行。
方法详解¶
整体框架¶
LinkVLA 是一个 VLA 模型,输入是前视图像 \(V\)、语言指令 \(L\) 和(训练时的)轨迹 \(A\),输出是一条可执行轨迹。它的骨干是 InternVL2-1B(InternViT-300M 视觉编码器 + Qwen2-0.5B 语言模型)。整套方法围绕"让语言和动作真正长在一起"展开,分三层递进:先把动作离散成 token 并和文本词表合并成统一离散空间(消除架构裂痕);再加一个动作理解目标,逼模型从轨迹反推出指令,形成双向一致性(强化语义绑定);最后用粗到细两步解码替换逐点自回归(解决延迟)。前两者管"对齐",后者管"效率",三者在同一个 transformer 解码器里通过切换预测目标共享参数。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入:前视图像 V<br/>+ 语言指令 L"] --> B["统一离散词表<br/>BEV网格→动作token<br/>log变换+空间软标签"]
B --> C["统一语言-动作<br/>理解与生成<br/>p(A|L) 与 p(L|A) 双向"]
C --> D["粗到细动作生成<br/>先预测终点<br/>线性插值粗轨迹"]
D -->|并行精修 T 点| E["输出:可执行轨迹<br/>20路径+10速度航点"]
关键设计¶
1. 统一离散词表:把连续轨迹量化成 token,和文本词表合并成同一个空间
错位的根在于架构把两个模态分开处理,所以 LinkVLA 干脆不让它们分开。做法是把局部 BEV 空间(\(x \in [0,50]\text{m}\)、\(y \in [-30,30]\text{m}\))划成网格、每个格子是一个唯一的"动作 token",一条轨迹 \(T=\{w_1,\dots,w_T\}\) 就被映射成动作 token 序列 \(A=\{a_1,\dots,a_T\}\)。这个动作词表 \(C_{action}\) 直接和文本词表(大小 \(K_{text}\))拼成统一词表 \(C\),大小 \(K=K_{text}+K_{action}\),由同一个 VLM 端到端学习 embedding——语言概念和空间概念被强行压进共享表征,单个模型就能同时处理两者,从设计层面消灭了模态鸿沟。
但朴素的"均匀网格 + one-hot"有两个毛病:均匀分辨率浪费在远处、近场精度不够;one-hot 硬分配又丢掉了网格本身的空间拓扑。为此作者加了两个细化。Log 坐标变换让近车端精度更高:每个坐标 \(z\in\{x,y\}\) 先过有符号对数 \(z' = \text{sign}(z)\cdot\log(1+k\cdot|z|)\)(\(k=5\)),原点附近被拉成近似线性的密集区,远处则被压缩,再均匀量化(步长 0.1,得到 \(56\times101\) 网格、\(K_{action}=5656\) 个动作 token)。空间软标签把动作空间的连续性先验写进监督信号:不再用 one-hot,而是对真值 token \(a_{gt}\) 构造一个以其坐标为中心、半径 \(R\) 的归一化 2D 高斯分布
生成损失用它做交叉熵 \(L_{generation} = -\sum_{a\in C_{action}} q(a)\log p(a)\)(\(R=10\) 格、\(\sigma=1.2\))。这让模型不仅给正确 token、也给它的空间邻居分配概率质量,学出一个局部光滑的动作流形,对真值的微小误差更鲁棒。
2. 统一语言-动作理解与生成:加一个"看轨迹反推指令"的反向任务,逼出双向一致性
光把两个模态放进同一空间还不够"绑得紧"——模型可能各管各的。作者借鉴了多模态里"图像描述(看图说话 \(p(L|V)\))"和"文生图 \(p(V|L)\)"互为对偶、联合训练能得到更对齐表征的发现,把同样的对偶性搬到语言-动作上。常规的动作生成任务是 \(p(A|L)\)(指令→轨迹),类比文生图;作者补上它的逆任务——动作理解 \(p(L|A)\):给定一段执行过的轨迹去反推它对应的原始语言指令,类比看图说话。两个映射都建立在共享的视觉上下文 \(V\) 之上。形式上在 \(L_{generation}\) 之外引入
总损失 \(L_{total} = L_{generation} + \lambda L_{understanding}\)。
为什么有效:逼模型解这个"反问题",等于强制共享 embedding 空间里语言与动作双向自洽——动作 token 不能只是空间坐标的代号,必须能被反向翻译成描述性语言,语义接地因此被显著加固,指令跟随随之变好。实现上很省:同一个解码器,训练时随机把 \((V,L,A)\) 拼成 \([V,A,L]\)(监督 \(L\),做理解)或 \([V,L,A]\)(监督 \(A\),做生成),不需要额外的数据标注,对齐能力是"白送"的。
3. 粗到细动作生成:把 T 步串行解码折叠成"先定终点、再并行精修"两步
统一离散空间虽然对齐好,但它的自回归本性带来推理瓶颈——\(T\) 个航点要 \(T\) 次前向。LinkVLA 把这个 \(T\) 步串行依赖塌缩成两阶段:(a) 终点预测 + 粗轨迹初始化,(b) 并行轨迹精修。训练上靠一个精心设计的目标:在解码器输入序列开头放特殊 token,并把真值目标序列重排成 \(\{w_T, w_1, w_2, \dots, w_{T-1}\}\),教模型把特殊 token 和"终点预测"绑定;精修阶段则用真值终点做线性插值模拟粗轨迹、量化成粗 token 输入,训模型把粗 token 映射到细粒度轨迹。
推理时分两步:先一次前向只预测最终航点 \(\hat{w}_T\);给定起点 \(w_0=(0,0)\) 和终点 \(w_T\),线性插值出粗轨迹 \(w_i^{coarse} = w_0 + \frac{i}{T}(w_T - w_0)\) 作为结构先验;第二步以粗 token 为初始输入、通过 cross-attention 注入视觉-语言上下文,并行预测 \(T\) 个精修点 \(w_i^{fine}\),让直线粗路径变成尊重车道边界、避障、且符合指令的可行轨迹。它和传统的目标点预测方法不同之处在于:终点预测和轨迹精修被装进同一个统一 transformer 里,而非两个独立模块。效果是延迟从 361ms 降到 48ms(省 86%),且驾驶得分不降反升。
损失函数 / 训练策略¶
总目标 \(L_{total} = L_{generation} + \lambda L_{understanding}\);接 CoT 时再叠加一个标准语言生成交叉熵。骨干 InternVL2-1B,AdamW + cosine 调度,base lr 1e-4、weight decay 0.1、30 epochs、32 张 H20、batch 48,用 LoRA(rank 32、\(\alpha=64\))适配。推理走 CoT:先生成动作的文本理由,再据此预测最终轨迹(每帧 20 个几何路径 token + 10 个时间速度 token)。
实验关键数据¶
主实验¶
Bench2Drive(CARLA v2 闭环,220 条官方路线)上,LinkVLA 在驾驶得分和成功率上同时拿到最优,效率/舒适度保持可比。
| 数据集/指标 | 本文 LinkVLA | SimLingo(前 SOTA) | 提升 |
|---|---|---|---|
| Driving Score (DS) ↑ | 91.01 | 85.07 | +5.94(+6.98%) |
| Success Rate (%) ↑ | 74.55 | 67.27 | +7.28(+10.82%) |
| Efficiency ↑ | 255.84 | — | 远超 Orion 151.48 |
| Multi-Ability 均值 ↑ | 73.40 | 67.28 | +6.12(+9.09%) |
延迟-性能权衡(Table 2,H20 单步平均推理时间):
| 方法 | 类型 | 延迟 ↓ | Driving Score ↑ |
|---|---|---|---|
| SimLingo | MLP | 34 ms | 85.07 |
| Orion | VAE | 65 ms | 77.74 |
| 本文(AR 变体) | AR | 361 ms | 90.66 |
| 本文(C2F) | C2F | 48 ms | 91.01 |
C2F 把延迟从 361ms 砍到 48ms 的同时把 DS 提到 91.01(全场最高),比 Orion 高 13.27 分且延迟低 26%;比最快的 SimLingo 仅多 14ms 就换来 5.94 分提升。
消融实验¶
三大组件逐项累加(Token=统一动作词表,C2F=粗到细,Align=动作理解对齐目标):
| 配置 | 闭环 DS | 闭环 SR(%) | 指令跟随均值(%) |
|---|---|---|---|
| baseline(全去) | 85.07 | 67.27 | 70.11 |
| + Token | 89.57 | 73.18 | 81.63 |
| + Token + C2F | 89.85 | 72.27 | 81.87 |
| + Token + C2F + Align(Full) | 91.01 | 74.55 | 87.16 |
软标签效果(Table 6):去掉软标签 DS 90.85 / SR 72.73 → 加软标签 91.01 / 74.55(DS +0.16、SR +1.82)。
关键发现¶
- 统一离散词表(Token)贡献最大:单加它闭环 DS 就从 85.07 跳到 89.57、SR 从 67.27 到 73.18,指令跟随均值从 70.11 飙到 81.63,其中"停车"任务近乎满分(99.88%)、变道(88.49%)和物体中心(84.34%)大幅改善——印证了"模态裂痕是错位根因"这一判断。
- 动作理解对齐目标(Align)是指令跟随的临门一脚:在 Token+C2F 基础上加 Align,指令跟随均值从 81.87 再涨到 87.16,并刷新加速(96.48%)、目标速度(74.73%)、变道(97.42%)峰值;闭环 SR 也从 72.27 回升到 74.55,说明"反推指令"确实把语义绑得更紧。
- C2F 主要买的是效率不是性能:单看闭环,加 C2F 后 DS 仅微涨(89.57→89.85)、SR 还略降(73.18→72.27),但延迟从 361ms 暴降到 48ms——它的价值在于"几乎不掉点地提速"。
- 语言能力同步受益:DriveLM-VQA 和 commentary 上,统一词表设计让 SPICE/BLEU/ROUGE-L 全面提升(VQA SPICE 66.7→73.0),说明动作侧的统一反过来也喂养了语言侧。
- 导航形式不敏感:GPS 目标点(DS 91.01)和导航指令(DS 91.25)表现相当,同一模型两种导航都能跟。
亮点与洞察¶
- 把"对齐"从事后补丁改成建模内生属性:以往要么改数据、要么 RL 微调、要么隐空间匹配,本文直接在主监督阶段用"统一词表 + 双向目标"织入一条可验证的语言-动作链路,思路上更釜底抽薪。
- 动作理解目标是几乎零成本的对齐增益:复用同一个解码器、只是训练时交换 \(L\)/\(A\) 的预测角色,不需要额外标注数据,却能稳定拉高指令跟随——这个"对偶任务白送对齐"的 trick 很值得迁移到机器人 VLA 等其它动作生成场景。
- 粗到细解码同时解决了 VLA 的两难:自回归对齐好但慢、并行回归快但对齐差,LinkVLA 用"终点+线性插值粗轨迹+并行精修"在同一 transformer 里两步搞定,证明了"统一离散空间"和"低延迟"可以兼得。
- log 坐标 + 空间软标签把"近场要精、动作空间连续"这两个领域先验干净地写进了离散化和监督信号,是把连续控制问题离散化时值得借鉴的工程细节。
局限与展望¶
- 延迟分析剔除了 CoT 成本:48ms 是不含 Chain-of-Thought 的单步轨迹生成时间,作者明说 CoT 因 query 而异会引入混淆因子所以略去——但实车若开 CoT,真实端到端延迟会显著高于 48ms,这个数字要谨慎解读。
- 全在 CARLA 仿真闭环上验证:Bench2Drive / Action Dreaming / DriveLM 都基于 CARLA,缺真实路测,sim-to-real gap 下的对齐与延迟优势是否保持未知。
- 软标签收益偏小:Table 6 里软标签只带来 DS +0.16、SR +1.82,相对其它组件贡献有限,是否值得这套高斯目标的复杂度可商榷。
- 动作词表大小/超参依赖调优:\(K_{action}=5656\)、\(k=5\)、\(\sigma=1.2\)、\(R=10\) 这些都被作者放进补充材料的额外消融里,正文没给敏感性,换数据域可能要重调。
相关工作与启发¶
- vs SimLingo:SimLingo 聚焦语言理解和驾驶动作的对齐,但因模态鸿沟仍残留错位;本文继承它的数据采集(PDM-lite 专家、CARLA)和路径/速度双航点设计,但用统一离散词表从架构上消除鸿沟,DS/SR 各高 5.94/7.28 分。
- vs ORION:ORION 用生成式规划器 + VLM 联合优化 VQA 和规划来桥接推理与动作空间,但 VAE 解码延迟高(其某变体 361ms)且仍有模态错位;LinkVLA 在统一空间里对齐、再用 C2F 把延迟压到 48ms,DS 高 13.27 分、延迟低 26%。
- vs CAST / OmniDrive:它们靠反事实标注或专门数据集来对齐,是"改数据"路线;本文不需额外数据标注,用动作理解目标内生地对齐,思路更轻。
- vs GoalFlow 等目标点预测:本文的终点预测灵感来自 goal-point 方法,但把终点预测和轨迹精修整合进单个统一 transformer,而非独立两阶段模块。
评分¶
- 新颖性: ⭐⭐⭐⭐ 「统一离散词表 + 动作理解对偶目标 + 粗到细解码」三件套组合得当,对齐+效率一起解,单项虽各有渊源但整合有新意。
- 实验充分度: ⭐⭐⭐⭐ 闭环主结果 + 三组件累加消融 + 软标签/导航形式消融 + 语言能力评测都齐,但全在 CARLA 仿真、缺真实路测。
- 写作质量: ⭐⭐⭐⭐ 动机的"架构裂痕是错位根因"叙事清晰,方法三节层次分明,图表对照到位。
- 价值: ⭐⭐⭐⭐ 给实车 VLA 提供了"既对齐又低延迟"的可落地路径,动作理解对偶目标的 trick 有较强迁移性。