The core problem: does a self-driving car know, or does it just guess?
Imagine you're driving and suddenly brake hard. Your passenger asks: "Why did you do that?" You answer immediately: "Someone ran into the road, the light was about to turn red, the car ahead was slowing down." Clear reasons, verifiable, disprovable.
Current self-driving systems cannot do this. They output a trajectory — a sequence of coordinate points — without any explanation of why. When an incident occurs, engineers have no idea what the model was "thinking" in the final second before impact. Debugging becomes a nightmare.
Alpamayo-R1 from NVIDIA (arXiv:2511.00088) was built to solve exactly this problem. Not by adding a language annotation layer on top of existing outputs, but by integrating causal reasoning into the training loop itself, so that reasoning and trajectory are jointly optimized.
Chain-of-Causation: structured reasoning, not decorative text
The most important distinction between Alpamayo-R1 and other VLA models is Chain-of-Causation (CoC) — not ordinary chain-of-thought.
Standard chain-of-thought asks the model to "think step by step." The generated text may look reasonable, but it is not bound to the actual action. A model can write "because there was a pedestrian, I braked" while the trajectory is identical to one generated without a pedestrian. This is reasoning detachment — reasoning decoupled from action.
CoC addresses this with three structured layers:
Driving Decision → Critical Components → Reasoning Trace
(what) (why observed) (link)
Layer 1 — Driving Decision: A closed set of 15 longitudinal and lateral maneuvers — lane change, yielding, speed adaptation, emergency stop, etc. Hard structure, not free text.
Layer 2 — Critical Components: Observable factors from the past history — traffic lights, vehicles, road geometry, signs. Critically: only from the past, never from the future, to prevent "causal leakage." This is the most common pitfall in driving reasoning datasets: annotators accidentally reference what the car will encounter, not what it currently observes.
Layer 3 — Reasoning Trace: Natural language linking the decision to the evidence. But this trace is evaluated by a quantitative rubric — not just read for plausibility.
Why does this make reasoning inspectable?
Because CoC is not a post-hoc annotation — it is the training data format. When the model learns, it learns to simultaneously produce (Decision, Components, Trace) and a trajectory from the same input. The RL post-training reward evaluates all three: reasoning quality, reasoning-action consistency, and trajectory quality.
Measured result: CoC achieves a 132.8% improvement in causal relationship scoring versus free-form approaches. When you ask the model "why did you do that?", the answer has actual causal relationship to the action, not retrospective decoration.
Architecture: two experts, one loop
Alpamayo-R1 has two clearly distinct components.
Part 1 — VLM Backbone: Cosmos-Reason
Cosmos-Reason is a VLM pre-trained by NVIDIA for Physical AI on 3.7 million VQA samples and 24,700 driving-specific annotations. It processes multi-camera inputs in three compression modes:
- Single-image mode: 160 tokens/image at 448×280 resolution
- Multi-camera triplane: 288 tokens regardless of camera count (3.9× compression)
- Multi-camera video (Flex tokenizer): up to 20× compression for longer sequences
The VLM produces two sequential outputs: text reasoning in CoC format, then discrete trajectory tokens (128 tokens/trajectory). The order matters: reasoning is generated first, trajectory is generated second, conditioned on the reasoning.
Part 2 — Action Expert: Flow Matching Decoder
The discrete trajectory tokens from the VLM feed into a separate decoder using conditional flow matching to produce continuous, kinematically feasible trajectories. The dynamics model is a unicycle with acceleration and curvature inputs — simple enough to guarantee the trajectory doesn't violate physical constraints.
Prediction horizon: 6.4 seconds, 64 waypoints at 10 Hz.
Why two parts instead of one? VLMs excel at language reasoning but not at generating precise high-dimensional numbers. The action expert specializes in generating continuous, multi-modal trajectories. Separating them lets each component be optimized for its strength — like a pilot and flight engineer working together: one decides, one executes.
Three training stages: from SFT to RL
Stage 1 — Action Modality Injection
Pre-trained Cosmos-Reason knows nothing about vehicle trajectories. This stage injects trajectory token vocabulary into the VLM and trains the decoder from scratch using flow matching. This is the "unlock" stage — teaching the language model to talk about driving actions.
Stage 2 — Eliciting Reasoning (SFT)
Supervised fine-tuning on the full CoC dataset. The model learns to generate (Reasoning CoC → Trajectory) in sequence — reasoning conditions trajectory generation, not the reverse. Cross-entropy loss over both reasoning tokens and trajectory tokens.
Building the CoC dataset uses a hybrid process: approximately 10% is human-labeled with a two-stage human-in-the-loop pipeline (Stage I: identify history context; Stage II: select decision and compose reasoning trace), with the remainder auto-labeled using GPT-5 and randomly verified.
Stage 3 — RL Post-Training
GRPO (Group Relative Policy Optimization) with three reward components:
| Reward | Measures | Why it matters |
|---|---|---|
| Reasoning Quality | LLM-judge assessment of CoC correctness | Prevents meaningless reasoning generation |
| Reasoning-Action Consistency | Whether trajectory matches declared decision | Prevents reasoning detachment |
| Trajectory Quality | L2 error, collision rate, kinematics | Actual driving performance |
Results: +45% reasoning quality and +37% reasoning-action consistency compared to SFT-only.

Real performance numbers
Open-loop — trajectory prediction
Compared to a trajectory-only baseline (no reasoning):
- +12% planning accuracy on challenging cases (long-tail scenarios)
12% sounds small, but in long-tail contexts a small improvement can be the margin between safe and incident. As analyzed in Part 3 on benchmarks, long-tail and average-case performance measure completely different capabilities.
Closed-loop — AlpaSim simulation
AlpaSim is NVIDIA's open-source AV simulation platform (NVlabs/alpasim, 1,191 stars, updated 2026-08-18):
- 35% reduction in close-encounter rate — the number of times the vehicle dangerously approaches other vehicles or pedestrians
Scaling behavior
Consistent improvements when scaling from 0.5B to 7B parameters. This proves the CoC architecture isn't a trick that only works at large scale — there's a clear roadmap from small deployable models up to larger ones.
Real-world latency
99 ms end-to-end measured on a real vehicle in urban road tests. Given the ~100 ms response threshold for practical AV deployment, this meets the bar for Level 4 consideration.
Open ecosystem: 6 repos, real data
NVIDIA has open-sourced the entire Alpamayo stack. As of 2026-08-05, all six repositories contain real code:
| Repo | Stars | Description |
|---|---|---|
| NVlabs/alpamayo | 2,001 | Alpamayo 1 Nano — 10B, SFT weights |
| NVlabs/alpamayo1.5 | — | RL post-trained, navigation guidance, VQA |
| NVlabs/alpamayo2 | — | Super variant (34B) |
| NVlabs/alpamayo-recipes | — | Fine-tuning, RL post-training, quantization, deployment |
| NVlabs/alpamayo-coc-autolabeler | — | Automated CoC annotation pipeline |
| NVlabs/alpasim | 1,191 | AV simulation platform for closed-loop evaluation |
Weights: huggingface.co/nvidia/Alpamayo-R1-10B
Dataset: Physical AI AV Dataset on HuggingFace — over 1,700 hours of driving video with CoC labels (gated access, request required).
Running inference
git clone https://github.com/NVlabs/alpamayo
cd alpamayo
pip install -e ".[inference]"
# Download model (~22 GB, ~2.5 min on 100 MB/s connection)
huggingface-cli download nvidia/Alpamayo-R1-10B
# Run inference with multi-camera video
python scripts/run_inference.py --input-dir /path/to/cameras
Requirements: GPU with at least 24 GB VRAM (tested on RTX 3090, A100, H100), Linux, Python 3.12.x.
Note: the Alpamayo 1 repo is no longer under active development — new features (fine-tuning, RL, quantization) moved to alpamayo-recipes as of May 2026.
Who is evaluating Alpamayo?
NVIDIA's official announcement names four organizations exploring Alpamayo: Lucid Motors, Jaguar Land Rover, Uber, and Berkeley DeepDrive. These are parties interested in and evaluating the technology — NVIDIA has not confirmed any specific commercial vehicle program.
Some press coverage has incorrectly stated that Alpamayo "ships in the Mercedes-Benz CLA." This does not originate from NVIDIA's official communications. Always verify the primary source before sharing technical claims.
Why this matters more than it appears
Alpamayo-R1 establishes a precedent: reasoning is not just passive explainability — it is part of the quality control pipeline.
With CoC in the training loop:
- Engineers can grep logs to find "the vehicle declared yielding because of X, but the actual trajectory did Y" → catching specific reasoning detachment, not a black box
- Legal teams have structured evidence of "what the vehicle perceived and what it decided" — critical in incident investigation
- Dataset curation becomes a scalable problem: the CoC auto-labeler (repo 5) uses GPT-5 to generate annotations then human-verifies ~10%, instead of labeling 100% manually
This is the path from "smart vehicle" to "accountable vehicle." In the context of European and US regulatory environments increasingly demanding interpretability, this isn't a nice-to-have — it's a prerequisite.
Comparing to the approach in Part 1 on end-to-end taxonomy: monolithic architectures like UniAD have no internal mechanism for decision explanation; Alpamayo-R1 shows that VLAs can be designed from the ground up to have reasoning traceability.
Related Posts
- From UniAD to VLA: The End-to-End Driving Map 2026 — Part 1: taxonomy of E2E architectures from modular to VLA
- Benchmarks Are Arguments: NAVSIM v2, Bench2Drive, WOD-E2E — Part 3: why open-loop scores don't tell the whole story
- Running a Driving VLA Yourself: OpenDriveVLA on nuScenes — Part 2: hands-on tutorial with a real dataset


