Hugging Face 非同期ロボット推論
Hugging Face は非同期ロボット推論を導入しました。このシステムはアクション予測と実行を分離し、順次ロボット制御ループで一般的に見られるアイドル期間を排除します。このアプローチにより、ロボットは次のアクションセットが計算されている間も予測されたアクションのキューを実行し続けることができ、成功率を損なうことなくタスク完了時間を約2倍に高速化します。
順次推論の制限
順次推論は、ロボットが次のアクションチャンクを予測するポリシーを待つ間、アイドル状態になるというボトルネックを生み出します。従来のループでは、ロボットは観測を取得し、ポリシーを実行して将来のアクション列を取得し、そしてそれらのアクションを実行します。キューが空になると、ロボットは次の推論サイクルが完了するまで完全に停止します。
この依存関係は主に2つの問題を引き起こします:
- Runtime Lags: モデルが大きくなり計算コストが高くなるにつれて、推論レイテンシが増加し、インタラクション時間を支配して全体のタスク実行が遅くなります。
- Reduced Responsiveness: ロボットはチャンクを実行している間はオープンループで動作し、その後完全にアイドル状態になるため、環境変化に迅速に反応できなくなります。
非同期推論アーキテクチャ
非同期推論は、計算と実行を重ね合わせることでアイドル期間を排除します。システムは、ネットワークで接続された異なるマシン上に配置できる2つの独立したコンポーネントに分割されます。
Robot Client
RobotClient はロボット上で実行されます。その主な責務は以下です:
- Observation Streaming: 最新の観測をサーバーにストリーミングします。高解像度カメラのキャプチャはしばしば4MBのgRPCメッセージ制限を超えるため、観測はユニリary RPCで送信するのではなくストリーミングされます。
- Queue Management: クライアントはローカルのアクションキューを維持します。キューの長さが設定可能な閾値(
chunk_size_thresholdまたは $g$)を下回ったときに新しい観測リクエストをトリガーします。 - Action Aggregation: 新しいアクションチャンクが到着したとき、クライアントはカスタム集約器を用いて現在のキューとマージします。サポートされている戦略には Replace(重複するアクションを新しい予測で上書き)と Weighted blend(時間的重みを用いてアクションを結合)があります。
Policy Server
PolicyServer は計算リソースを最大化するために、GPU や TPU などのアクセラレータハードウェア上でホストされます。そのワークフローは以下を含みます:
- Observation Cleaning: キーマッチング、前処理、推論準備を行うパイプラインです。
- Similarity Filtering: 冗長な計算を避けるため、サーバーはジョイント空間の類似度を用いて現在の観測と前回の観測を比較します。観測があまりにも類似している場合、
must_go=Trueとタグ付けされていない限り、サーバーは推論をスキップすることがあります。 - Request Blocking: サーバーは最新のデータで常に処理できるよう、前回の観測が処理完了するまで新しい観測をブロックします。
技術的実装とパフォーマンス
通信プロトコル
システムは通信に gRPC(HTTP/2 ベースでプロトコルバッファを使用)を利用します。この選択により、低レイテンシのバイナリメッセージと双方向ストリームが提供され、NVIDIA RTX 4090 のようなハードウェアを使用したローカルネットワークで往復レイテンシが100ms未満になります。
制御ループのチューニング
パフォーマンスは比率 $c = \frac{\mathtt{environment}\mathtt{dt}}{\mathtt{inference}\mathtt{time}}$ によって支配されます。システムが順次制御に退化するのを防ぐために、ユーザーは以下を行うことができます:
- Increase Compute: より強力な GPU を使用して $\mathtt{inference}_\mathtt{time}$ を削減します。
- Adjust the Threshold ($g$): パラメータ $g$ は新しい観測が送信される最大チャンクサイズの割合を表します。
- $g = 0$ は順次推論を模倣します。
- $g = 1$ は最小の遅延だが最大の計算負荷となるよう、各タイムステップで観測を送信します。
- 実験では $g \approx 0.7$ が効果的なトレードオフであることが示されていますが、Hugging Face は開始値として $g = 0.5$ を推奨しています。
ロボットポリシーへの影響
非同期推論は、ACT、OpenVLA、PI0、SmolVLA など、アクションチャンクをサポートするポリシーと互換性があります。制御ループを引き締め、連続的な動作を可能にすることで、システムはより適応的な制御とタスク完了の高速化を実現します。SmolVLA を用いたテストでは、このアーキテクチャによりタスク完了時間が約2倍に高速化され、タスク成功率は同等に保たれました。