OccLLaMA: An Occupancy-Language-Action Generative World Model for Autonomous Driving

🎯 一、核心思想:为什么要用Occ做VLA的输入?

1.1 现有方法的痛点

论文开篇指出了当前MLLM(多模态大语言模型)在自动驾驶中的两大问题:

问题 表现 后果
缺乏世界模型 直接从感知映射到动作,不建模世界动态 无法理解“动作如何影响世界”,泛化能力差
视觉表示不合适 多用2D图像/BEV,丢失3D几何信息 对高度、小物体、遮挡场景理解不足

1.2 OccLLaMA的解决方案

核心思想:用3D语义占据(Semantic Occupancy)作为统一的视觉表示,构建一个能够同时理解、生成、规划的自回归世界模型。

三个关键创新

  1. 场景Tokenizer:把稠密的3D Occ变成离散的“场景词”
  2. 统一多模态词表:把场景词、语言词、动作词放在同一个词表里
  3. Next Token/Scene Prediction:同时支持时序预测(语言/动作)和空间预测(场景)

🏗️ 二、技术架构(对应你发的Figure 2)

OccLLaMA的架构分为两大核心组件:

2.1 Scene Tokenizer(场景分词器)

这是把3D Occ变成离散token的关键模块,解决了两个核心难点:

难点1:3D Occ极度稀疏(90%是空气)

  • 普通3D卷积计算浪费、效率低
  • 解决方案:将3D Occ转成伪点云(只保留非空气体素),用PointPillar方式提取BEV特征

难点2:语义类别不平衡

  • 道路、建筑物多,行人、自行车少
  • 解决方案:解耦几何和语义,用两个head分别重建:
    • Voxel Head:预测哪些体素被占据(二分类)
    • Class Head:只在被占据的体素上预测语义类别

Tokenizer的工作流程

1
2
3
4
5
6
7
8
9
输入3D Occ (200×200×16) 
↓ 稀疏化(去掉空气)
伪点云集合 (N个点,每个点包含高度d和语义标签l)
↓ PointPillar + Swin Transformer
BEV特征图 (50×50×c)
↓ Vector Quantization(找最近的codebook向量)
离散token序列 (50×50个token,每个对应codebook索引)
↓ Decoder(上采样+双head)
重建3D Occ

2.2 统一多模态词表(Unified Vocabulary)

Tokenizer训练好后,OccLLaMA构建了一个包含四类词的统一词表:

词表类型 来源 用途 大小
场景词 (V_s) Scene Tokenizer的codebook 表示3D占据场景 (K_s)(论文用2048)
语言词 (V_t) LLaMA原有词表 理解、推理、问答 LLaMA-8B原词表
动作词 (V_a) 轨迹坐标分箱 表示规划轨迹 将连续坐标离散化成N个bin
功能词 (V_f) 特殊token 标记模态边界 , , , ,

关键创新:把3D场景也变成了“词”,可以和语言、动作放在同一个序列里,用同一个LLM处理。

🔄 三、训练方法(三阶段训练)

Stage 1: Scene Tokenizer训练(独立训练)

  • 目标:学会把3D Occ压缩成离散token,并能重建回来
  • 损失函数:交叉熵 + Lovasz-Softmax + 码本损失
  • 数据:Occ3D数据集(基于nuScenes的3D占据标注)
  • 结果:训练好的Tokenizer固定下来,不再更新

Stage 2: 3D Occ-语言-动作预训练(全参数)

目标:对齐三种模态,让模型学会:

  1. 世界模型能力:给定历史Occ,预测未来Occ(4D占据预测)
  2. 场景理解能力:给定Occ,生成语言描述(场景字幕)

训练方式

  • 用next token/scene prediction的方式,在统一词表上做自回归预训练
  • 关键设计:场景内的token用空间注意力(Spatial Attention),场景间的token用因果注意力

Stage 3: 指令微调(Instruction Tuning)

  • 方法:LoRA(低秩适配)
  • 任务:根据不同的prompt指令,完成:
    • 视觉问答(VQA)
    • 轨迹规划(Motion Planning)
    • 场景理解

📊 四、实验结果(核心数据解读)

论文在三个任务上做了评估,我挑最关键的结论说:

4.1 4D占据预测(核心任务)

任务:给2秒历史Occ,预测未来3秒的Occ

方法 输入 1s mIoU 3s mIoU Avg mIoU
OccWorld 真值Occ 25.78 10.51 17.14
OccLLaMA 真值Occ 25.05 15.26 19.93
OccWorld 图像 8.98 6.98 8.66
OccLLaMA 图像 10.34 6.98 8.66

结论

  • 用真值Occ作为输入时,OccLLaMA在长时预测(3s)上显著优于OccWorld(15.26 vs 10.51)
  • 说明自回归世界模型比专用预测模型更适合长时序建模

4.2 轨迹规划

任务:预测未来3秒的6个waypoints

方法 输入 Avg L2 (m)↓ Avg Collision (%)↓
UniAD 图像+多任务监督 1.03 0.71
OccWorld 真值Occ 1.17 1.35
OccLLaMA 真值Occ 1.14 1.20

结论

  • OccLLaMA只用Occ作为输入,就能达到接近UniAD(用了地图、框、跟踪、占据等多任务监督)的性能
  • 说明Occ表示足够丰富,可以支撑规划任务

4.3 视觉问答(VQA)

任务:nuScenes-QA数据集上的问答

方法 输入 整体准确率
LLaVA 图像 45.9%
LiDAR-LLM 点云 45.9%
OccLLaMA Occ 49.1%

结论

  • OccLLaMA在VQA任务上超越基于图像和点云的SOTA
  • 说明3D Occ既能保留几何信息,又能对齐语义,是很好的VLA视觉表示

📌 总结

OccLLaMA的核心贡献

  1. 第一个把3D Occ作为VLA视觉输入的工作,验证了这种表示的可行性
  2. 设计了专门针对3D Occ稀疏性的Scene Tokenizer
  3. 提出了Next Token/Scene Prediction的双重预测机制,同时建模空间和时间
  4. 在4D占据预测、规划、VQA三个任务上都达到SOTA或competitive性能