模拟/建模/设计

使用 NVIDIA Alpamayo 2 Super 生成轨迹、推理痕迹和自动标记

智能汽车 (智能汽车) 开发通常依赖于单独的模型来生成轨迹、高级意图预测、场景理解和数据标记。这种分离使得比较相关输出、研究模型行为以及在整个开发工作流程中重复使用相同表示变得困难。

NVIDIA Alpamayo 2 Super 是一个开放的、拥有 340 亿参数的推理视觉 – 语言 – 动作 (VLA) 模型,旨在加速智能汽车 (智能汽车) 开发。它将包含 320 亿参数的 NVIDIA Cosmos 3 Super Reasoner 与包含 20 亿参数的基于扩散的动作专家相结合,并通过强化学习进行后训练。推理器解释多摄像头视频、语言上下文和先前的运动历史,而动作专家则将模型生成的内部表示转换为未来的“ego-vehicle”轨迹。

Alpamayo 2 Super 的感知范围扩展到 360 度,覆盖多达 7 个摄像头,并可以返回多个互补输出:未来轨迹、因果链 (CoC) 推理痕迹、高级元操作、对场景相关问题的地面回答以及推理自动标记。

这种多任务设计为智能汽车开发者提供了跨开发工作流程多个阶段的通用基础。相同的基础模型可用作离线策略教师、评估评论家、数据引擎或新任务自定义的起点,而无需为工作流程的每个阶段维护单独的模型。

本文将亲自介绍四个支持 Alpamayo 2 Super 的工作流:

  1. 生成轨迹和 CoC 推理痕迹,在开环和闭环基准测试中评估结果。
  2. 预测产量、变更车道等元操作,并沿轨迹停止。
  3. 提出有关多摄像头驾驶场景的自然语言问题。
  4. 根据您自己的片段生成具有 2D 基础的 CoC 自动标记。

模型权重可在 Hugging FaceGitHub 上的推理 notebook 上获取。该模型在 OpenMDW-1.1 下发布,OpenMDW-1.1 是 Linux 基金会开放模型发行版的许可,涵盖微调、衍生模型和商业再分发。蒸模型可以进行商业部署,无需进一步获得 NVIDIA 许可,并且模型输出不附带任何许可条件。

规划和推理

通过新场景进行推理是自动驾驶中的一个基本问题。在施工区导航、行人被部分遮挡、不同寻常的通行权交互以及物体进入道路时,需要的不仅仅是匹配常见的轨迹模式。实用的驾驶模型必须识别重要的场景背景,将其与适当的驾驶决策关联起来,并产生与该决策一致的行动。

轨迹和 CoC 追踪:内容和原因

与其前代产品一样,Alpamayo 2 Super 能够共同生成输出轨迹和 CoC 推理轨迹。轨迹表示测试车辆接下来能做什么。CoC 推理追踪可让您深入了解为何根据观察到的场景上下文做出驾驶决策。返回这两个输出可以更轻松地理解模型的决策制定、整理困难案例、将已部署的策略与更大的教师进行比较,以及诊断故障是否源于感知、推理或行动生成。CoC 追踪还可通过内省模型对场景的理解,将其输入 NVIDIA Halos 安全验证工作流。

Alpamayo 2 Super 资源库的推理 notebook 加载环绕视图片段,准备自我运动历史记录,并使用相关的 CoC 追踪对轨迹进行采样。核心推理步骤和输出如下所示。

from alpamayo2_super import helper
from alpamayo2_super.load_physical_aiavdataset import load_physical_aiavdataset
from alpamayo2_super.models.alpamayo2_super import Alpamayo2Super
from alpamayo2_super.visualization import plot_inference_result

data = load_physical_aiavdataset(
  "030c760c-ae38-49aa-9ad8-f5650a545d26",
   t0_us=2000000,
)

model = Alpamayo2Super.from_pretrained("nvidia/Alpamayo2-Super", dtype=torch.bfloat16, device_map="cuda:0")
model_inputs = helper.prepare_model_inputs(data, model.config, model.tokenizer)
model_inputs = helper.to_device(model_inputs, "cuda")

torch.cuda.manual_seed_all(42)
with torch.autocast("cuda", dtype=torch.bfloat16):
   pred_xyz, pred_rot, logprob, extra = model.sample_trajectories_from_data(
       data=model_inputs,
       top_p=0.98,
       temperature=0.6,
       num_traj_samples=1,
       diffusion_kwargs={"inference_step": 10},
       return_extra=True,
   )

fig, metadata = plot_inference_result(
   data=data,
   pred_xyz=pred_xyz,
   extra=extra,
)

评估方法

为了评估模型的输出推理和轨迹质量,我们可以使用开环和闭环评估方法。开环评估通过将录制的场景与真值标签进行比较,来衡量其轨迹和推理质量。

Alpamayo 2 Super 取得了以下成果:

  • 轨迹预测:物理 AI 智能汽车数据集的 1434 个具有挑战性的样本中,它记录的是 6.4 秒的 minADE_6 0.911 m。
  • 智能汽车推理:物理 AI 智能汽车推理基准测试中得分 0.433。
  • LINGOQA:LINGOQA 基准测试中,Alpamayo 2 Super 达到了 79.2,在 37 个评估模型中排名第一。凭借 340 亿个参数,Qwen2.5-VL (72B) 领先 17.0 点,Qwen3-VL (32B) 领先 7.0 点,Gemini 2.5 Pro 领先 15.1 点,GPT-4o 领先 23.2 点。

较低的 minADE_6 值表示更好的轨迹预测;较高的推理分数表示更好的性能。

然而,开环指标的主要挑战在于,它们根据预先录制的固定未来来评估预测,因此无法捕捉模型第一个动作后发生的情况,而这可能会影响场景的其余部分。

例如,如果测试车辆改变车道,开环回放可能会继续沿记录的轨迹移动相邻车辆,而无需考虑其对测试车辆的反应。

闭环仿真执行场景中的每个预测动作,当模拟器包含反应性行为模型时,捕捉周围智能体的反应。NVIDIA AlpaSim 通过反复渲染观察结果、查询策略并应用其操作来实现这一点,以便开发者可以随时间推移测量这些闭环效应。

要在 AlpaSim 评估套件上运行 Alpamayo 2 Super,请使用相应的 shell 命令:

uv run alpasim_wizard deploy=local topology=2gpu driver=alpamayo2 
wizard.log_dir=$PWD/tutorial eval.video.video_layouts=[REASONING_OVERLAY]

使用以下 AlpaSim 向导配置:

# Should be used in defaults list, e.g.
# - /driver: alpamayo2
# Type validation happens at driver runtime via OmegaConf.structured merge

defaults:
  - alpamayo_configs    # Camera and simulation configs for 4-cam 10Hz
  - _self_                      # YAML values override schema defaults

# Alpamayo 2 Super Driver Configuration for Alpasim

# Logging level (uses wizard's global setting)
log_level: ${wizard.log_level}

# Model configuration
model:
  model_type: alpamayo2  # Entry-point name in alpasim.models registry
  # HuggingFace model ID (requires cached download or hf authentication in the driver container)
  checkpoint_path: "nvidia/Alpamayo2-Super"
  # # Alternative local path to a pre-downloaded model
  # checkpoint_path: "/mnt/drivers/alpamayo2/Alpamayo2-Super"
  device: "cuda"
  # Enable classifier-free guidance navigation sampling (NOTE: this requires 2 GPUs with at least 70 GB VRAM).
  # Set to true only when sufficient GPU memory is available.
  use_classifier_free_guidance_nav: false

# Server configuration
host: "0.0.0.0"
port: ???

# Inference configuration
inference:
  use_cameras:
     - camera_cross_left_120fov
     - camera_front_wide_120fov
     - camera_cross_right_120fov
     - camera_front_tele_30fov
  max_batch_size: 1  # A2Super is memory intensive, start with batch size 1
  subsample_factor: 1
  context_length: 4  # A2Super uses 4 temporal frames per camera

# Route configuration — A2Super uses language-only navigation, not waypoint commands
route:
  use_waypoint_commands: false

# Output configuration
output_dir: "/mnt/output/driver"

# Trajectory optimization (disabled by default for A2Super)
trajectory_optimizer:
  enabled: false

plot_debug_images: false
视频 1. Alpamayo 2 在 AlpaSim 中实现超强的闭环驾驶能力,可应对施工区附近的交通拥堵

在 913 个重建场景中,Alpamayo 2 Super 的 AlpaSim 评分为 1.50 × 0.13。该闭环评分通过揭示碰撞、道路偏离、近距离遭遇和其他只有在策略影响未来观测后才会出现的故障,来补充开环结果。

评估 基准 (组) 指标 Alpamayo 2 Super 参考分数 更好
开环 物理 AI 智能汽车数据集 ( 1434 个具有挑战性的样本) minADE_6@ 6.4 秒 (米) 0.911 米 Alpamayo 1.5 Nano:0.916 米 降低
开环 物理 AI 智能汽车推理基准测试 推理评分 0.433 Alpamayo 1.5 Nano:0.414 GPT-5.5:0.502 更高
开环 LINGOQA LINGO – JUDGE 评分 79.2 Alpamayo 1.5 Nano:74.2 Qwen3-VL 32B:72.2 Qwen2.5-VL 72B:62.2 Gemini 2.5 Pro:64.1 GPT-4o:56.0 更高
闭环 AlpaSim (来自 物理 AI 智能汽车 NuRec 数据集的 913 个重建场景) AlpaSim 评分 1.50 0.13 Alpamayo 1.5 Nano:1.37 0.10 更高
表 1. 在长尾驾驶场景中对 Alpamayo 2 Super 进行开环和闭环评估

元行动

轨迹是精确的,但并不总是能提供紧凑的意图描述。元行动将计划总结为高层决策,例如产量、变道、停止加速。这些输出有助于连接端到端基础模型和模块化智能汽车堆栈:下游规划器可以做出决策,评估器可以检查轨迹几何图形是否符合意图,团队可以搜索其数据语料库以进行特定操作。

生成元操作

元动作 notebook 展示了如何使用示例场景生成元动作输出。有关支持的元操作的详细列表,请参阅这些列表。核心推理步骤和输出如下所示。

from alpamayo2_super import helper
from alpamayo2_super.load_physical_aiavdataset import load_physical_aiavdataset
from alpamayo2_super.models.alpamayo2_super import Alpamayo2Super
from alpamayo2_super.text_tasks import generate_text, prepare_text_generation_inputs

data = load_physical_aiavdataset(
  "030c760c-ae38-49aa-9ad8-f5650a545d26",
   t0_us=2000000,
)

model = Alpamayo2Super.from_pretrained("nvidia/Alpamayo2-Super", dtype=torch.bfloat16, device_map="cuda:0")
task_inputs = prepare_text_generation_inputs(
   data=data,
   model_config=model.config,
   tokenizer=model.tokenizer,
   task="meta_action",
)
task_inputs = helper.to_device(task_inputs, "cuda")

torch.cuda.manual_seed_all(42)
with torch.autocast("cuda", dtype=torch.bfloat16):
   result = generate_text(
       model,
       task_inputs,
       top_p=0.98,
       temperature=0.6,
       max_new_tokens=512,
   )

cot = result["cot"][0]
meta_action = result["meta_action"][0]
print("Chain-of-Causation:\n", cot)
print("\nMeta-action:\n", meta_action)

评估元动作准确性

为了评估元动作准确性,我们将 Alpamayo 2 Super 的输出与真值标签进行比较,并根据交并比 (IoU) 报告其元动作分类的三个组成部分 (横向、纵向和全车道) 的分类准确性。

在包含真值元动作数据的内部 94K 剪辑集上,Alpamayo 2 Super 在其元动作分类中实现了 74.59 横向 IoU、61.91 纵向 IoU 和 73.55 车道 IoU。

场景理解

规划只是使用驾驶基础模型的一种方法。视觉问答 (VQA) 可直接通过自然语言显示模型对场景的理解。开发者可以询问场景中的关键元素、它们如何影响驾驶行为、测试车辆应该减速的原因,或者 scenarios.
ne-change gap 的其他方面。

VQA 对于交互式调试和数据操作非常重要。它可以帮助开发者检查策略为何以特定方式运行,为大型片段集合构建语义过滤器,并生成候选注释以供人工审核。借助环绕视图输入,问题可以参考前视图模型可能会错过的侧面和背面背景。

使用 VQA 和 2D Grounding 查询多摄像头场景

对于每个片段,Alpamayo 2 Super 可以通过预测相关相机帧中的 2D 边界框来生成答案,并在空间上定位被引用的行为者。这种基础使得输出比单独使用自由格式文本更有用。评审者可以验证模型所指向的特定对象,自动检查可以标记缺失或不一致的箱子,下游模型可以利用 (例如,通过蒸馏) 视觉证据、推理和行动之间更紧密的联系。

场景理解和 VQA Notebook 展示了如何使用相同的输入执行 VQA。核心推理步骤和输出如下所示。

from alpamayo2_super import helper
from alpamayo2_super.load_physical_aiavdataset import load_physical_aiavdataset
from alpamayo2_super.models.alpamayo2_super import Alpamayo2Super
from alpamayo2_super.text_tasks import generate_text, prepare_text_generation_inputs

data = load_physical_aiavdataset(
  "ea4a6729-bf33-4997-905b-cd58774a3580",
   t0_us=7500000,
)

model = Alpamayo2Super.from_pretrained("nvidia/Alpamayo2-Super", dtype=torch.bfloat16, device_map="cuda:0")
task_inputs = prepare_vqa_inputs(
    data=data,
    model_config=model.config,
    tokenizer=model.tokenizer,
    question="Describe the driving scene and identify the key traffic elements that should influence ego behavior.",
)
task_inputs = helper.to_device(task_inputs, "cuda")
with torch.autocast("cuda", dtype=torch.bfloat16):
    result = generate_text(
        model,
        task_inputs,
        top_p=1.0,
        temperature=0.1,
        max_new_tokens=1024,
    )
answer = result["answer"][0]
print(answer)

对于相同的输入,该模型可以返回两种类型的输出:上方的图 4 显示了场景的自然语言描述,而下方的图 5 显示了同一模型通过预测相关摄像头帧中的 2D 边界框,对引用对象进行空间定位。

评估 VQA 响应和接地质量

为了评估 VQA 性能,我们将 Alpamayo 2 Super 生成的回答与一组内部 8K 问答对的真实答案进行了比较。该模型的答案相似度为 0.652 (越高越好) ,而 Qwen3-VL 32B 的答案相似度为 0.450。对于 2D 接地,我们使用 IoU 将预测的边界框与真值标注进行比较,得到 0.71,而 Qwen3-VL 32B 得到 0.17。这些测量结果共同评估模型是否准确回答了问题,并将其回答与环视摄像头的正确视觉证据相关联。

自动标记

推理模型需要基于决策的推理数据,但手动标记长尾驾驶片段既昂贵又缓慢。注释人员必须检查时间和多摄像头上下文,识别因果因素,描述它们如何影响测试车辆,并使标签与预期操作保持一致。Alpamayo 2 Super 可以作为离线自动标记器,大规模地提出这种结构。这可以将标注周期从几个月压缩到几天。

生成结构化 CoC 自动标记

CoC 自动标记 Notebook 接受已发布模式中的片段,并为每个选定的关键帧编写一条结构化记录。

from alpamayo2_super import helper
from alpamayo2_super.load_physical_aiavdataset import load_physical_aiavdataset
from alpamayo2_super.models.alpamayo2_super import Alpamayo2Super
from alpamayo2_super.text_tasks import generate_text, prepare_text_generation_inputs

data = load_physical_aiavdataset(
  "b5f3756c-4f0e-4298-a1ff-cc92ed392ae0",
   t0_us=11000000,
)

model = Alpamayo2Super.from_pretrained("nvidia/Alpamayo2-Super", dtype=torch.bfloat16, device_map="cuda:0")

task_inputs = prepare_text_generation_inputs(
   data=data,
   model_config=model.config,
   tokenizer=model.tokenizer,
   task="auto_labeling",
)
task_inputs = helper.to_device(task_inputs, "cuda")

torch.cuda.manual_seed_all(42)
with torch.autocast("cuda", dtype=torch.bfloat16):
   result = generate_text(
       model,
       task_inputs,
       top_p=0.98,
       temperature=0.6,
       max_new_tokens=1024,
   )

auto_labeling_text = result["cot_auto_labeling"][0]
auto_labeling_json = result["cot_auto_labeling_json"][0]
print(json.dumps(auto_labeling_json, indent=2))

默认情况下,Alpamayo 2 Super 假定用户可以访问未来的自我轨迹信息。但是,它也可以自动标记不包含未来轨迹信息的数据:

# ... same imports and model loading as above ...

# Get the model to predict a future trajectory of its own, and use that in auto-labeling as the "observed" future motion.
trajectory_inputs = helper.prepare_model_inputs(data, model.config, model.tokenizer)
trajectory_inputs = helper.to_device(trajectory_inputs, "cuda")

torch.cuda.manual_seed_all(42)
with torch.autocast("cuda", dtype=torch.bfloat16):
   pred_xyz, pred_rot, _, extra = model.sample_trajectories_from_data(
        data=trajectory_inputs,
        top_p=0.98,
        temperature=0.6,
        num_traj_samples=1,
        diffusion_kwargs={"inference_step": 10},
        return_extra=True,
   )
   future_xyz = pred_xyz[:, 0, 0].detach().cpu()
   future_rot = pred_rot[:, 0, 0].detach().cpu()
   # In case you want to see the model's reasoning, uncomment these:
   # trajectory_cot = str(extra["cot"].reshape(-1)[0])
   # print("trajectory_cot:\n", trajectory_cot)

task_inputs = prepare_text_generation_inputs(
   data=data,
   model_config=model.config,
   tokenizer=model.tokenizer,
   task="auto_labeling",
   # This is where the predicted trajectories are passed in: 
   future_xyz=future_xyz,
   future_rot=future_rot,
)
task_inputs = helper.to_device(task_inputs, "cuda")

torch.cuda.manual_seed_all(42)
with torch.autocast("cuda", dtype=torch.bfloat16):
   result = generate_text(
       model,
       task_inputs,
       top_p=0.98,
       temperature=0.6,
       max_new_tokens=1024,
   )

auto_labeling_text = result["cot_auto_labeling"][0]
auto_labeling_json = result["cot_auto_labeling_json"][0]
print(json.dumps(auto_labeling_json, indent=2))

评估 CoC 自动标记质量

为了评估 CoC 自动标记质量,我们将 Alpamayo 2 Super 生成的标签与 8k 内部剪辑的专家注释进行了比较。我们使用内部判断模型来评估相似性。Alpamayo 2 Super 的相似度得分为 0.652,而 Qwen3-VL 32B 的相似度得分为 0.450。这些结果表明,它有潜力大规模生成结构化推理标签,同时保持与专家撰写的注释的一致性。

使用 Alpamayo 2 Super 构建

Alpamayo 2 Super 将环绕视图感知、推理、规划、场景理解和数据自动标记引入一个开放模型工作流。这些功能为开发者构建教师模型、整理长尾数据、检查政策决策以及评估超越单一开环轨迹指标的智能汽车系统奠定了实际基础。作为教师模型,可以将其蒸为在车内 NVIDIA DRIVE AGX Thor 上运行的紧凑型模型。

Hugging Face 上探索模型,运行 推理 notebook,并在 Alpamayo 开发者论坛 上分享您构建的内容。

如需详细了解 Alpamayo 2 版本中推出的更广泛的更新,请参阅相关的 Hugging Face 博客文章

标签