Physical AI は物理世界の産業を変革するでしょうが、ロボティクスには現代の AI が求める速度で反復するために必要な統一データレイヤーがまだ不足しています。核心的な課題は、ロボット学習が物理データ、つまり時間、空間、身体性に結びついたマルチモーダルでマルチレートのストリームを扱うことです。既存のインフラは主にウェブデータ向けに構築されており、これらの特性に対応するのに苦労しています。
私たち @rerundotio は、物理データのための統一データレイヤーを構築し、チームが現実世界向けのインテリジェンスをトレーニングして提供できるよう支援しています。
Rerun 史上最大のリリース
Rerun はこれまで、マルチモーダル時系列データの可視化で最もよく知られてきました。この 1 年半、私たちは収集からトレーニングまでの全行程をサポートする統一データレイヤーの他の部分を静かに構築してきました。0.32 Rerun SDK リリース により、これらの機能がオープンソース化されます!
これは Rerun が 3 年前にオープンソース化されて以来最大のリリースであり、Rerun で行える作業の種類が大幅に拡大することを意味します。
ファイル形式を安定化し、ファイル用の新しい低レベルの読み書き API を追加しています。実際のロボティクスデータの整理と正規化のために設計された、Rerun データチャンクを操作する新しい API を追加しています。MCAP および ROS 2 メッセージのサポートを拡張し、すぐに使えるエクスペリエンスを向上させています。トレーニングデータセットのレビューを大幅に高速化する新しいデータセットレビュー UI を追加しています。オープンソースのカタログサーバーは、ディスク上の .rrd ファイルをインデックス化するようになり、あなたやあなたのエージェントがロボティクス録画のディレクトリに対して汎用的なクエリを実行できるようになります。同じ基盤の上に、PyTorch データローダーもリリースしています。これにより、トレーニング専用フォーマットにエクスポートすることなく、.rrd ファイルから直接ロボットモデルをトレーニングできます。
ロボティクスエコシステムには、ロボット学習データのライフサイクル全体をサポートできるほど柔軟な統一フレームワークが不足していました。0.32 で、その基盤がようやく現れ始めています。
この大規模なオープンソースリリースに加えて、商用データカタログおよびストレージエンジンである Rerun Hub も発表します。Rerun Hub は現在プライベートプレビュー中で、Rerun SDK をオブジェクトストレージにバックアップされたデータセットに拡張します。共有カタログとアクセスレイヤーを提供し、同じデータモデルと API を維持しながら、はるかに大規模なロボットデータの変換、クエリ、可視化、ストリーミングを可能にします。
ローカルマシンに収まらない規模のデータを扱い、かつ迅速に動く必要があるなら、Rerun Hub を利用してください。ロボット学習を中心とした製品を構築し、データレイヤーについて検討しているチームは、お問い合わせください。
この投稿の残りの部分は 2 部構成です。まず、Physical AI がスケールするために必要だと私たちが考えるデータアーキテクチャの入門編。次に、そのアーキテクチャを実践する Rerun SDK 0.32 の新機能の紹介です。
ロボット学習には、物理データ専用に設計されたデータレイヤーが必要
\ロボット学習のデータレイヤー税\ で概説したように、Physical AI の進歩を遅らせる摩擦の多くは、従来のソフトウェアや分析ワークロード向けに設計されたインフラに物理データを無理やり押し込もうとすることに起因しています。必要なのは、マルチレートでマルチモーダルなデータ向けに構築され、収集からトレーニング、デプロイメントまでロボットインテリジェンスの反復に必要なすべてをサポートするデータレイヤーです。
コーディングエージェントは、ユーザーがコンピュート層とアプリケーション層を完全に制御する必要があることを意味する
収集、正規化、後処理、キュレーション、トレーニングというワークフロー全体を提供するには、チームはさまざまなツールとコンピュートジョブを必要とします。これらのツールやジョブは、例えばチームの特定の運用方法や、大規模なデータ品質を推進するために使用する手法をエンコードすることができ、チームが自ら所有すべき重要な差別化領域となります。
コーディングエージェントにより、チームはコードレベルの制御を持っている限り、これらのツールやコンピュートジョブを思い通りに設計することがますます容易になっています。そのため、その制御を手放すことを受け入れるチームはほとんどいません。だからこそ、Rerun SDK は完全にオープンソースであり、壁に囲まれた SaaS プラットフォームではなく、一緒に構築できるフレームワークとして設計されています。ビューアーでさえライブラリとして設計されており、行き詰まることは決してありません。Rerun は常にコードファーストであり、エージェントにとってさらに使いやすくすることに注力しています。これには、人間と同じように物理データを見るためにエージェントを支援する、完全なヘッドレスレンダリングとビューアーナビゲーションに関する今後の作業も含まれます。
ほとんどのチームはすでに、独自のワークフローに合わせたカスタムの単発アプリケーションや処理スクリプトを構築しています。しっかりした基盤の上に構築しなければ、理解が難しく、うまく構成できない縦割りの断片ができてしまい、生産性の向上に限界が生じます。
データレイヤーは大規模な物理データを使用する際の難しい部分を処理できなければならない

収集からモデルまでのデータジャーニー全体を提供するために必要な中核的な機能は、可視化、分析クエリ、変換、トレーニングです。これらの機能はすべて、3D 関係や形状などのロボティクスセマンティクスを伴う可能性のあるマルチレートでマルチモーダルなデータを扱う必要があります。バグやデータの不整合を避けるためには、この種のデータの微妙な点を、使用される場所で一貫して扱う必要があります。例えば、時間アライメントと 3D 変換は、前処理、クエリ、可視化、データセットレビュー全体で一貫して動作する必要があります。
データ実験ループとそれを支えるツールの両方を簡単に反復できるようにするには、ハンドオフを簡単にし、その上のアプリケーションをシンプルにする単一の統一データレイヤーの上に構築したいと考えます。つまり、データレイヤーは、すべての中核的なアプリケーションとコンピュート機能の要件を処理できるほど柔軟である必要があります。例えば、可視化とコンピュートはどちらもマルチモーダル時系列への高速ランダムアクセスを必要とし、分析クエリは効率的なカラムスキャンを必要とし、大規模な後処理コンピュート(CPU)とトレーニング(GPU)はどちらも高帯域幅の並列データストリーミングを必要とします。
物理データは、ウェブデータやビジネスデータとは根本的に動作が異なるため、異なるストレージおよびクエリアブストラクションの恩恵を受けます。
物理データの中核的なストレージ単位はカラムチャンク
物理データには 2 つの差別化要因があります。
1 つ目はマルチレートであることです。異なるセンサーは、大きく異なる周波数でデータを記録します。GPS は 1〜10Hz、カメラは 10〜30Hz、ジョイント角度は 100〜200Hz、IMU は 1kHz かもしれません。後処理では、カメラフレーム 10 枚ごとにセマンティック埋め込みを計算したり、各エピソードの開始時と終了時にシーン説明を計算したりするかもしれません。
2 つ目はマルチモーダルであることです。異なるセンサーは、サイズが大きく異なるデータを記録します。IMU と GPS は数バイトで数値をエンコードできますが、RGB カメラは各画像フレームに数 MB を使用する可能性があります。
ロボティクス録画を、1 行がタイムスタンプ、1 列がデータストリームを表すテーブルに保存すると、マルチレートの性質により、このテーブルは一般に非常に疎になります。特定の行に対して、ほとんどの列が空である可能性が高いからです。データのマルチモーダルな性質は、単一の行にサイズが数桁異なるセルが含まれる可能性があるため、大きなメモリ不均衡を引き起こします。既存の表形式データインフラは、この組み合わせを非常に苦手としています。
マルチレートでマルチモーダルなデータは、データセットの行と列のサブセットをそれぞれ保持するチャンクに保存する必要があります。例えば、100 万の IMU サンプルを 1 つのチャンクに、数個のビデオパケットを別のチャンクに配置できることで、疎性とメモリ不均衡の両方の問題を解決できます。

チャンク内では、カラム指向ストレージは圧縮とカラムスキャンクエリに最適化され、行指向ストレージは単純な書き込みに最適化されます。
Rerun では、カラムチャンクがロボット学習データシステムにとって最良のトレードオフであると信じており、アーキテクチャを中核的なストレージアブストラクションとしてカラムチャンクを中心に標準化しています。
Rerun の .rrd ファイル形式はカラムチャンクを中心に構築されている
Rerun のネイティブファイル形式 .rrd は、カラムチャンクアブストラクションのディスク上表現です。内部的には、各カラムチャンクは Apache Arrow レコードバッチと、データの解釈方法を記述するセマンティックメタデータとしてエンコードされます。Apache Arrow はデータサイエンスの業界標準であり、Arrow を使用することで、DataFusion、Pandas、Polars への高速なゼロコピーパスが可能になります。

各チャンクのメタデータには、データの解釈方法に関するセマンティック情報(「これは IMU センサー、これは GPS、…」)が含まれており、処理パイプラインを通じて運ばれ、自動的に解釈および可視化されます。
エンコードされたカラムチャンクは protobuf メッセージでラップされ、連結されて .rrd ファイルを形成します。ファイルの末尾にあるフッターはインデックスを指しており、ファイル全体をスキャンすることなく個々のチャンクへの高速ランダムアクセスを可能にします。

他の形式との比較
Apache Parquet はカラムナのディスク上形式で、Arrow と一緒によく使用されます。データを行グループに整理しますが、.rrd のチャンクとは異なり、これらのグループは重複できません。各行グループは、密な行範囲にわたるすべての列を含みます。そのため、マルチレートでマルチモーダルなロボティクスデータには適していません。新しい行を追加することはできますが、新しい列を追加することはできません(スキーマ進化なし)。
MCAP はロボット上でロボティクスログを記録するための形式です。高速で柔軟な書き込みが可能で、ROS との互換性に優れています。ただし、基本的には不透明なメッセージ(JSON、protobuf、CBOR などでエンコード)のコンテナ形式であり、カラムナ分析クエリには最適化されていません。大規模なスキャンや結合も、各メッセージをデコードする必要があるため低速です。
Lance は新しい形式で、マルチモーダルデータとランダムアクセス(トレーニングにとって非常に重要)のために明示的に構築されています。Parquet とは異なり、スキーマ進化をサポートしています。ただし、Lance データセットは依然として行アラインされたフラグメントの垂直スタックであるため、マルチレートストリームは null で肥大化します。
NCore は Nvidia の新しい形式で、ニューラル再構成用に構築されています。マルチレートはコンポーネントごとのタイムスタンプでネイティブにサポートされ、空間アライメントはポーズグラフでサポートされています。ただし、スキーマはクローズド(標準的なセンサーコンポーネントのみで、任意のユーザー定義データは不可)であり、Zarr ベースで Arrow ネイティブではなく、汎用的な SQL / データフレームクエリエンジンを提供するようには構築されていません。
チームが必要とする機能がファイル形式で提供されないたびに、同期を維持するための別のパイプラインと、成功するために学習する追加のツールが必要になります。Rerun の形式は、ロボット録画をインテリジェンスに変換するために必要なすべてのユースケースに対応できる唯一のオプションです。元のタイムスタンプでデータを保持しながら、同じデータソースからクエリと表示を行い、トレーニングにストリーミングできます。統一データシステムを構築するのに十分な構造を持ちながら、さまざまな読み取りおよび書き込みパターンに最適化できるほど柔軟です。
カラムチャンクの上のインデックス、スキーマ、メタデータレイヤーにより、大規模な物理データの使用が簡素化される
単一の信号を分析するためにデータセット内のすべてのチャンクをスキャンすることは、小さなデータセットでもうまくスケールしません。そのため、効果的に使用するには、任意のクエリに適したチャンクを見つけるのに役立つメタデータとインデックスレイヤーが必要です。これは、古典的なデータレイクハウスパターンによく似ています。私たちの場合、単一のデータセットまたは録画は、同じスキーマを共有しない異種のチャンクで構成されています。古典的なデータ処理ツールは、均一なスキーマを持つテーブルを扱うために構築されています。したがって、物理データ用のレイクハウススタイルのインデックスおよびメタデータレイヤーは、これらの個々のスキーマも追跡し、任意のストリームのマージされたスキーマをオンザフライで具体化して、古典的なデータツールがそれらを操作できるようにする必要があります。例えば、IMU をメッセージに磁場データを公開するものにアップグレードした場合、この追加は、このフィールドを含まない古い IMU と互換性があり、互換性のために過去のデータを書き換える必要はありません。

カラムチャンクと効率的なインデックスを組み合わせることで、必要なデータだけを正確に取得でき、一緒に保存されている無関係なストリームによるペナルティを支払う必要がありません。一般的な操作を高速化することと、一般的なデータを別のウェアハウスにエクスポートしたために長尾のバグを追跡できることの間で選択する必要はありません。
パフォーマンス上の利点に加えて、このレイヤーによりファイルを抽象化し、上のレイヤーで物理データのすべてのユーザーに統一 API を提供できます。多くの場合、ロボットデータは 1 つのファイルに保存され、キャリブレーションは別のファイルに保存されます。これらの実装の詳細を抽象化することは、データの摩擦を減らし、コンピュート層とアプリケーション層を簡素化するための重要な部分です。
大規模な処理とトレーニングには、オブジェクトストレージからの選択的ストリーミングが必要
ロボット学習データセットはすでに非常に大きくなる可能性があり、チームがスケーリング則に従ってより高性能なモデルを実現するにつれて、さらに大きくなります。この規模のデータを処理するには、後処理用に多数の CPU またはトレーニング用に GPU にファンアウトする必要があることがよくあります。そのような場合、データスループットがこのコンピュートのニーズに合わせてスケールできることが重要です。
パフォーマンスを最大化し、エグレスコストを最小化するには、データの近くでコンピュートを実行したいと考えます。同時に、GPU コンピュートは入手が難しい場合があり、多くのチームは時間の経過とともにさまざまな場所でレンタルすることになります。これらすべての要因により、ストレージをインデックスとメタデータを処理するサービスから分離できる必要があります。

Rerun では、クエリは Rerun SDK から開始され、次に Rerun Hub にクエリを実行します。Rerun Hub は、クエリを解決するためにどのチャンクが必要かを把握する責任があります。設定に応じて、SDK は Rerun Hub のキャッシュプロキシを介してチャンクを要求するか、オブジェクトストレージ上のバイト範囲を要求します。これにより、簡素化されたアクセス API、選択的チャンクストリーミング、および基盤となるオブジェクトストレージからの最大ストリーミング帯域幅が可能になります。
Rerun SDK 0.32 はロボット学習のための統一データツールキット
Rerun 0.32 は、2023 年 2 月にオープンソース化されて以来最大のリリースです。SDK の実用的なユースケースを、ログ記録、可視化、単純なクエリから、収集からトレーニングまでの完全なデータジャーニーに拡張します。以下は、この拡張を強調する新機能の紹介です。詳細については、リリースノート をご覧ください。
チャンクレベルの Python API を備えた安定したファイル形式
Rerun 0.23 で、Rerun の .rrd ファイル形式のバージョン間の後方互換性を発表しました。実際には、それ以降のバージョン間で互換性を壊したことはなく、ファイル形式の一般的な後方互換性を約束できると確信しています。機能とパフォーマンスを向上させるために形式を進化させ続けますが、古いデータは常に読み込まれます。
0.32 より前は、別の形式からのインポーターまたは高レベルの log または send_columns API を使用してのみ .rrd ファイルを書き込むことができ、データを読み取る唯一の方法はデータフレームまたは SQL クエリでした。このリリースでは、データの正確な形状を細かく制御できるチャンクレベルの読み取りおよび書き込み API を導入しています。
これらの 2 つの変更により、.rrd は幅広いチームがデータレイヤーを構築するのに十分成熟したものになりました。
ロボティクスネイティブなデータラングリングのためのチャンク処理 API
ロボティクスデータはしばしば乱雑です。複数のソースからのデータを分析およびトレーニング可能なものに正規化することは、すぐに複雑になります。データパイプラインのこの部分は、多くの場合、遅くて微妙なバグがたくさんある寄せ集めの Python スクリプトで構成されています。
これらの問題を解決するために、新しい(実験的な)チャンク処理 API を導入しています。これらは、Apache Arrow チャンクのストリームを生成する .rrd、MCAP、Parquet、URDF などの形式への統一ローダーインターフェースを提供します。そして、それらのストリーム上に処理パイプラインを簡単に定義できます。
ロボティクスデータは、深くネストされた構造体の形で提供されることが多く、データの正規化とラングリングは、その内容の再形成、キャスト、変換を意味することがよくあります。そのニーズに応えるために、jq に触発された、この種のデータを選択および変換するための宣言型言語である Lenses もリリースしています。
これらの API は、コーディングエージェントを念頭に置いて明示的に設計およびテストされており、汎用的な Python よりも Rerun チャンク処理 API を使用した方が、正しく効率的なコードをはるかに簡単に生成できることがわかっています。将来的には、これらのチャンク処理変換は、現在の SDK 側のエグゼキュータに加えて、ビューアー内および Rerun Hub を介してクラウドでも実行できるようになります。
MCAP、ROS 2 タイプ、ロボティクス可視化のための拡張された組み込みサポート
すべてのロボティクスデータを Rerun で簡単に取り込み、有用にすることが重要だと考えています。同時に、カスタマイズなしで完全に処理できるデータも多くあり、リリースごとにそのエクスペリエンスを改善し続けています。0.32 では、MCAP と一般的な ROS 2 タイプのパフォーマンスとすぐに使えるサポートが向上し、利用可能な可視化も拡張されています。組み込みサポートのあるメッセージの更新リストはこちらをご覧ください。
占有グリッド、つまり 3D 内の 2D マップは、移動ロボットにとって重要であり、Rerun で長い間要望の多かった機能です。そのため、0.32 では、新しい GridMap アーキタイプとビジュアライザーを追加し、対応する ROS 2 メッセージの組み込みサポートと組み合わせています。
もう 1 つの一般的な要望は、時間の経過に伴う状態変化を可視化する機能でした。0.32 では、新しい実験的な State Timeline View を提供しています。Rerun でこのビューを待っていた方は、このビューにさらにどのような機能を望むか、ぜひフィードバックをお寄せください。
ディスク上の多数の録画の内容に対するインデックス付き SQL またはデータフレームクエリをサポートするカタログサーバー
Rerun SDK のカタログ API を使用すると、ロボティクスデータセットに対して完全に汎用的な SQL またはデータフレームクエリを作成できます。Rerun Hub に接続すると、これはしばらく前から大規模データセットをサポートしていましたが、オープンソースサーバーはメモリに完全に収まるデータセットのみをサポートしていました。0.32 では、オープンソースのカタログサーバーを拡張して、ローカルディスク上のファイルのバイト範囲をインデックス化し、オープンソース SDK のみを使用して、.rrd ファイル内のロボット録画の任意のローカルディレクトリを簡単に分析できるようにしました。
トレーニングと評価のためのデータセットを迅速にレビューする新しい UI
0.32 では、(実験的な)データセットレビューツールの最初のバージョンをリリースします。これにより、多数の録画を一度にざっと見て、異常を探し、データに対する直感を養うことができます。また、録画にフラグを付けることもできるため、シンプルなアノテーションツールとしても役立ちます。ビューは通常の Rerun ブループリントを使用して設定されます。
多くのロボット学習チームからこの機能が要望されており、これを可能な限り効率的なデータセットレビューツールにするための皆様のフィードバックをぜひお寄せください。
シンプルなデータセットミキシングと .rrd ファイルへのランダムシークをサポートするロボット学習用データローダー
最も要望の多かった機能の 1 つである、Rerun 用の PyTorch データローダーの作業を開始しました!新しい rerun.experimental.dataloader モジュールは、Rerun 録画を反復可能またはマップスタイルの PyTorch データセットとして公開し、エンコードされた画像、スカラー、圧縮ビデオ(h264/h265/av1)をオンザフライでストリーミングします。ランダムアクセス、マルチワーカープリフェッチ、DDP サポートがすぐに使えます。OSS カタログサーバーと、オブジェクトストレージにバックアップされた大規模データセットで直接トレーニングしたい場合の商用製品 Rerun Hub の両方と互換性があります。
このトレーニングデータローダーをコミュニティに公開し、実験を開始できることを非常に嬉しく思います。これをロボット学習のための最高のストリーミングデータローダーにするつもりであり、皆様のフィードバックとリクエストを歓迎します。
可視化、分析、変換に使用するのと同じデータレイヤーから直接トレーニングできることは、チームがデータレイヤーを真に統一し、システムを簡素化し、実験サイクルを加速するために不可欠です。
Rerun Hub はプライベートプレビュー中で、スケール向けに構築されています
この 1 年半、私たちは初期の優れたスタートアップやラボと協力して、ロボット学習を価値ある現実世界のアプリケーションに加速するために必要なデータレイヤーを静かに構築してきました。現在、ペタバイト規模のロボットトレーニングデータを扱っており、商用製品 Rerun Hub にさらに多くのチームをオンボーディングする準備が整いました。Rerun Hub は現在プライベートプレビューに入っています。
Rerun Hub は、オープンソースの Rerun SDK に接続するカタログおよびストレージエンジンであり、収集からトレーニング、デプロイメントまでロボット学習データを簡単に扱えるようにします。取り込み、可視化、分析クエリ、変換、トレーニングといったすべての中核的なデータ機能を強化する、統一された管理およびアクセスレイヤーとして機能します。データは任意の S3 互換オブジェクトストレージに保存でき、Rerun Hub は、トレーニングや大規模並列後処理ジョブにおいて、オブジェクトストレージから Rerun SDK への効率的な直接選択的ストリーミングを仲介します。一元化されたハブは、コードまたはビューアー内でインタラクティブに共有可能なデータリンクを簡単に構築できるようにすることで、コラボレーションと自動レビューも簡素化します。

インテリジェントロボットを構築し、データレイヤーをアップグレードしてより迅速に反復することに興味がある場合は、お問い合わせください。複雑な既存システムで既にある程度の規模に達しているチームにとって、Rerun は段階的に採用しやすく、中核メンバーを他の最優先事項から外すことなくアップグレードを支援するフォワードデプロイエンジニアを提供することもできます。





