VLAの推論サービング、つまり学習済みモデルを継続的に推論できるサービスとしてロボットへ組み込む作業では、最速のエンジンだけを選んではいけません。学習時の入出力契約を固定し、ONNX変換、TensorRT実行、前後処理、行動周期、フォールバックまで再現可能にします。エクスポート成功はファイル生成を示すだけで、行動の同等性や安全性の証明ではありません。
ロボット推論の遅延予算でセンサーからアクチュエータまでの上限を決め、VLAの量子化・蒸留とLoRAアダプターによるファインチューニングは別のモデル変更として追跡します。変更後は毎回、同じ配備試験と閉ループ試験をやり直します。
実装前に推論サービングの承認条件を決める
モデルのバージョン、カメラ台数と解像度、トークン長、固有感覚次元、行動チャンク長、制御周期、許容遅延をリリース契約へ記録します。精度の条件には数値誤差だけでなく、作業成功率、安全制約違反、人の介入率も含めます。
温度、電力モード、同時プロセス、バッチ、ウォームアップ回数、センサー再生データも固定します。同じエンジンでもクロック制限、メモリ圧迫、シェイプの組み合わせで遅延が変わるため、測定環境のない速度値は比較に使えません。
| 承認ゲート | 必須測定 | 合格条件の例 | 不合格時 |
|---|---|---|---|
| 契約 | データ型・シェイプ・正規化・行動の単位 | 参照モデルと完全一致 | ビルド停止 |
| 同等性 | 出力誤差・行動差 | 承認済み誤差内 | 演算子と精度を調査 |
| 性能 | コールド/ウォーム p50・p95・p99、メモリ | 周期・メモリ上限を満たす | プロファイルかモデルを再設計 |
| 閉ループ | 成功率・介入・安全事象 | 試験閾値を通過 | 旧ポリシーへロールバック |
ピクセルから行動の単位までモデル契約を固定する
画像チャンネル順、リサイズとクロップ、正規化定数、トークナイザーのバージョン、パディング、関節順、座標系、行動のスケーリングを学習コードから抽出し、機械可読な契約にします。Python参照経路とサービング経路で同じ固定テストデータを読み、隠れた前処理差を検出します。
入力名、データ型、テンソル配置、動的軸を明記し、出力が位置、速度、差分、トルクのどれかを記録します。タイムスタンプ、観測の経過時間、行動の有効期限もAPIの一部です。古い観測を高速処理してもリアルタイム制御にはなりません。
ONNXエクスポートで演算子と動的シェイプを検証する
PyTorch ONNX文書に沿って実際の入力範囲を代表する例でエクスポートし、エクスポーター、opset、PyTorch、ONNXのバージョンを固定します。未対応の演算子を無断で近似実装へ置き換えず、参照グラフと変換グラフの中間・最終出力を比べます。
最初に固定シェイプで同等性を確立し、バッチ、トークン長、カメラ数、画像サイズなど実際に変化する軸だけを動的にします。すべての軸を動的にすると最適化範囲とメモリ予測が広がり、未承認の入力組み合わせが入りやすくなります。

実測シェイプからTensorRTプロファイルとキャッシュを作る
ONNX Runtime TensorRT Execution ProviderとTensorRT文書に基づき、プロバイダー順、精度、エンジンキャッシュ、タイミングキャッシュ、ビルド環境を記録します。別プロバイダーで処理が続いても、安全なポリシーのフォールバックが成立したことにはなりません。
TensorRT動的シェイプ文書の最適化プロファイルにあるmin、opt、maxを観測分布から決めます。範囲外入力は黙って再整形せず、拒否するか承認済みの保守的ポリシーへ移し、キャッシュをモデルハッシュとランタイムのバージョンに結び付けます。
モデル推論時間ではなく行動までの遅延と最大メモリ使用量を測る
センサーのタイムスタンプから前処理、ホスト・デバイス間転送、推論、デコード、安全フィルター、指令送信を経てアクチュエータ指令のタイムスタンプまで測ります。NVIDIA TensorRTベンチマークガイドを参照しつつ、合成テンソルのエンジン時間と実ロボットのエンドツーエンド時間を分けて示します。
コールドスタート、ウォームアップ後の定常状態、シェイプ遷移、複数カメラの突発負荷、同時ログ記録でp50だけでなくp95・p99とGPU・CPU・ページロックメモリの最大値を取ります。平均が速くてもテールレイテンシーが行動の期限を超えるなら、キュー方針とウォッチドッグが予測どおり動く必要があります。
| 区間 | タイムスタンプ・指標 | 主な失敗 | 観測項目 |
|---|---|---|---|
| 入力 | センサー生成・受信時刻 | 古いフレーム・同期ずれ | 経過時間・欠落・ずれ |
| 前後処理 | 開始・終了、CPU/GPU メモリ | コピー律速・配置誤り | p95・割当て |
| エンジン | 投入・完了 | シェイプ再構築・OOM | プロファイル・キャッシュヒット・最大メモリ使用量 |
| 行動 | デコード・ガード・送信・適用 | 期限超過・期限切れの行動 | エンドツーエンド p99・ウォッチドッグ |

数値同等性からシャドー、閉ループへ段階を上げる
固定テストデータでPyTorch、ONNX Runtime、TensorRTの絶対・相対出力誤差、行動順、制御境界付近の判断を比較します。FP16などの精度は別候補です。平均テンソル誤差が小さくても、時間方向の行動列が同じとは限りません。
記録センサー再生、シミュレーション、ハードウェア・イン・ザ・ループ、低出力のシャドー、制限付き閉ループの順に進めます。シャドーでは新ポリシーは命令を送らず提案だけを記録し、閉ループでは作業成功率、介入率、制約違反、復旧行動を参照ポリシーと比較します。
ポリシーのフォールバック、ハードウェア停止、バージョンのロールバックを分ける
健全性確認はモデルハッシュ、エンジン読込み、入力の経過時間、シェイプ範囲、p99の期限、NaN・Inf、行動範囲、ハートビートを監視します。失敗時に承認済み保持姿勢、低速ポリシー、旧安定版へ移せても、ソフトウェアのフォールバックは独立した安全PLC、非常停止、保護装置を代替しません。
モデル、トークナイザー、前処理契約、ONNX、TensorRTエンジン、ランタイム、校正、設定を一つの配備マニフェストに束ねます。カナリア範囲と自動停止条件を決め、旧マニフェストとキャッシュを保存し、証拠を失わず一操作でロールバックできるようにします。
よくある質問
ONNXエクスポートが成功すればVLAの行動も同じですか?
いいえ。成果物生成が成功しただけです。固定テストデータの数値比較、記録再生、シャドー、シミュレーション、制限付き実ロボット閉ループ試験が必要です。
未対応演算子を別プロバイダーへフォールバックすれば十分ですか?
実行継続には役立ちますが、安全な行動フォールバックではありません。プロバイダー経路ごとの同等性と遅延を認定し、失敗時は別の承認済みポリシーか安全停止へ移します。
VLAの遅延は推論だけ測ればよいですか?
いいえ。センサー観測の経過時間、前処理、転送、推論、デコード、安全フィルター、指令到達までのp95・p99、コールドスタート、シェイプ変化、最大メモリ使用量を測ります。
確認した公式情報
- PyTorch ONNX documentation
- ONNX Runtime TensorRT Execution Provider
- NVIDIA TensorRT documentation
- TensorRT dynamic shapes
- TensorRT benchmarking
最終確認日:2026年8月7日