NVIDIAの自動運転VLA「Alpamayo」をAWS環境で動かしてみた

NVIDIAの自動運転VLA「Alpamayo」をAWS環境で動かしてみた

Alpamayo 1.5を実際に動かしてみました。NVIDIAの自動運転向けVLAが、判断理由を言語化しながら走行軌跡を出力する様子を、実行例と数字で紹介します。
2026.07.15

はじめに

NVIDIAが公開している自動運転向けのVLA、Alpamayoを触ってみました。

VLA(Vision-Language-Action)というのは、見る→言葉で考える→行動を出すを1つのモデルでやる方式です。ReasonerなどのVLMが「言葉で答える」までなのに対して、VLAはその先の行動まで出します。Alpamayoの場合、車の4台のカメラ映像(前方2種+左右)を見て、「工事コーンが車線にはみ出しているから左に寄る」のように判断理由を言語化しながら、実際の走行軌跡を出力します。

これをAWSのL40S(48GB)1枚のインスタンスで動かしてみました。

先に結論を書くと、

  • 公式手順ほぼそのままで一発で動きました
  • サンプルの走行シーンに対して、「工事機材を避けて左に寄る」という理由つきで軌跡を出してきました。実走行の記録とのズレは平均0.37mでした。
  • 旧版のAlpamayo 1と同一条件で比べると、最新のAlpamayo 1.5は軌跡1本で旧版の「5本出しの最良」を超える結果でした(サンプルの1シーンでの比較です)。
  • VRAM実測は約23GB(軌跡1本)〜約27.5GB(5本)。公式要件「24GB+」の通りです。

なお、モデルの重みは非商用ライセンス(研究・実験・評価目的)で提供されています。本記事はその範囲での技術評価です。

Alpamayoとは

  • 公式ページ: https://www.nvidia.com/ja-jp/solutions/autonomous-vehicles/alpamayo/
  • 公式ページに「自動運転向けのオープン推論VLAモデルであるAlpamayoは、NVIDIA Cosmos™上に構築されており」とあるとおり、Cosmosエコシステムの一部です。中身としては、Cosmos-Reasonをバックボーンに、軌跡を生成するAction Expertを組み合わせた構成になっています。
  • 入力: カメラ4つの映像(前広角・前望遠・左右クロス)+自車の運動履歴
  • 出力: Chain-of-Causation(判断理由のテキスト)と、6.4秒先までの軌跡(64点、10Hz)

ファミリー構成は、GitHub上で公開されているAlpamayo 1(10B、旧称Alpamayo-R1)とAlpamayo 1.5(10B)、そして製品ページ上に記載のあるAlpamayo 2 Super(32B、記事執筆時点で重みは未公開)となっています。今回動かしたのは、公開されている中で最新のAlpamayo 1.5です。

  • リポジトリ: NVlabs/alpamayo1.5/モデル: nvidia/Alpamayo-1.5-10B
  • 公式の対比表によると、1.5は1に対して、RLでのpost-training・ナビゲーション指示への条件付け・汎用VQAなどが追加されています。公式いわく1.5は「論文に書いた内容を完全に実装した版」で、特にRL後訓練は論文に記載がありつつ公開版の1には入っていなかったものです。この1と1.5の違いが、後半の比較の背景になります。

end-to-end型の自動運転(センサー入力から運転操作までをニューラルネットで直結する方式)は性能面で注目される一方、教師データの乏しいロングテール(稀で複雑な状況)では因果理解が及ばず脆い、という課題が指摘されてきました。Alpamayo 1(論文名Alpamayo-R1)は判断と一緒に理由を言語で吐く設計で、Chain-of-Causation推論を軌跡のプランニングに統合することでロングテールへの汎化を狙った研究です。

ちなみにこれは研究・評価用のモデルで、公式も「完成した運転スタックではない」と明言しています。公式の言葉を借りると、実車に必要なセンサー入力群・冗長化された安全機構・車載グレードの検証を持たないモデルだ、ということです。

環境

項目 内容
インスタンス g6e.2xlarge(NVIDIA L40S 48GB×1、8vCPU、RAM 64GB)
AMI Deep Learning Base OSS Nvidia Driver GPU AMI(Ubuntu 24.04)
公式のGPU要件 24GB+ VRAM(それより少ない場合、例えば16GBではOOMになりやすいとの記載)

セットアップ(READMEどおり)

最初は旧版(Alpamayo 1)のリポジトリで検証を始めてしまい、途中で1.5のリリースに気づきました。READMEの冒頭のUpdates欄はちゃんと読むべきですね。ただ、おかげで新旧を同一条件で比較できました(比較は後半で)。

セットアップの流れは1も1.5も同じで、READMEどおりでOKです。

git clone https://github.com/NVlabs/alpamayo1.5.git
cd alpamayo1.5

# 1. uvのインストール(未導入の場合)
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"

# 2. 環境構築
uv venv a1_5_venv
source a1_5_venv/bin/activate
uv sync --active

# 3. Hugging Face認証
hf auth login

uv syncでflash-attentionまで含めて短時間で入ります。

推論テスト

python src/alpamayo1_5/test_inference.py

初回はモデルの重み22GB(5分割)とサンプルクリップが自動ダウンロードされ、そのまま推論まで走ります。

このスクリプトがやっていることを分解すると、

  1. 公開走行データセットから1本の走行クリップ(4カメラ映像+自車の運動記録)を取得
  2. 走行開始5.1秒時点を「現在」として、モデルに4カメラ×4時点の計16フレームと直前の動きを入力
  3. モデルが判断理由(テキスト)と6.4秒先までの軌跡(64点)を出力
  4. このクリップは実車の走行記録なので「実際に走った道」が正解として存在し、予測軌跡とのズレをminADE(サンプリングした軌跡のうち最良のものと正解との平均距離)として採点

という流れです。結果がこちら。

Chain-of-Causation (per trajectory):
 [['Nudge to the left to clear the construction equipment blocking the right side of our lane']]
minADE: 0.37490812 meters

「車線の右側を塞ぐ工事機材を避けるため、左に寄る」。工事現場のシーンに対して、避ける理由と避ける軌跡がセットで出てきました。実走行の記録とのズレは平均0.37m。軌跡を1本しか出していない素の状態でこの数字です。

軌跡の本数を増やす+旧版との比較

軌跡のサンプリング本数はスクリプト内のnum_traj_samplesで変えられます(デフォルトでは1になっています)。5本にすると、判断理由も5通り出てきます。

Chain-of-Causation (per trajectory):
 [['Nudge to the left to clear the construction equipment blocking the right side of our lane'
  'Nudge to the left to clear the construction cones blocking the right side of our lane'
  'Nudge to the left to clear the construction cones blocking the right side of our lane'
  'Keep distance to the lead vehicle since it is directly ahead in our lane'
  'Nudge to the left to clear the construction equipment blocking the right side of our lane']]
minADE: 0.3536589 meters

5本中4本が「工事機材/コーンを避けて左に寄る」、1本が「前方車両との距離維持」。同じ場面に対して複数の仮説を、それぞれ理由つきで出してきました。

面白いのは旧版のAlpamayo 1との比較です。同じクリップ・同じ乱数シード・同じサンプリング設定で、両方を動かした結果がこちら。

minADE 軌跡1本 軌跡5本の最良
Alpamayo 1 2.54m 0.88m
Alpamayo 1.5 0.37m 0.35m
  • Alpamayo 1はこのシーンでは1本と5本の差が大きく(2.54m→0.88m)、候補を増やして「最良の1本」を拾わないと精度が出ませんでした。
  • Alpamayo 1.5は1本目からほぼ最良で、5本に増やしてもほとんど変わりませんでした(0.37m→0.35m)。しかも1本で旧版の「5本の最良」を上回りました
  • この差の原因を今回の実験で切り分けることはできません(1.5はRL後訓練のほかに、バックボーンのCosmos-Reason2への変更なども同時に入っているため)。ただ、論文はRL後訓練の狙いを「推論と行動の一貫性の強化」と「推論品質の最適化」の2つと説明し、一貫性が37%・推論品質が45%改善したと報告しています。「一発で良い軌跡を出す」という観測は、この説明とよく整合する変化でした。

数字まわり

項目 実測値
モデル重み 22GB(5分割、初回に自動DL)
VRAMピーク(軌跡1本) 23,025MiB(約23GB)
VRAMピーク(軌跡5本) 27,481MiB(約27.5GB)
minADE 0.37m(1本)/0.35m(5本の最良)

実測から言えるのは、軌跡1本なら24GBカード(RTX 4090等)に収まり、5本サンプリング(約27.5GB)は収まらない、というところまで(2〜4本は未計測です)。L40S(48GB)なら余裕でした。旧版のAlpamayo 1もVRAMはほぼ同じでした(1本23.0GB/5本27.4GB)。

おわりに

  • 自動運転VLAのAlpamayo 1.5が、AWSのL40S 1枚・公式手順ほぼそのままで動きました。
  • 「言葉で答える」(Cosmos Reasoner)から「理由を言いながら運転操作まで出す」(VLA)への進化を、実際の出力で確認できました。
  • 旧版との同一条件比較(サンプル1シーンですが)で、「一発で良い軌跡を出す」方向への変化が数字ではっきり見えたのが今回一番の収穫です。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事