In Silico

Physical AI

ロボット学習データはなぜ1エピソード1ファイルをやめるのか

2026/9/17

目次
※ 概念図(背景→問い)・作図:AI 【背景】 記録する単位の数が桁で増えると一単位一ファイルは行き詰まる区切りをどこに書くかを、あらためて決め直すことになる 【問い】 なぜ区切りをファイルから外すのか何を得て何を失い、形式はどちらへ向かっているのか
※ 概念図(背景→問い)・作図:AI。実データではない値を一つも含まない。記録する単位の数が桁で増えると一単位一ファイルが行き詰まるという背景から、なぜ区切りをファイルから外すのか、形式はどちらへ向かっているのかという問いへ進む構図を描いた図であり、本文で引く各一次資料そのものの主張ではない。
背景

ロボットに同じ作業を繰り返させて記録すると、一回の試みが一つのエピソード(学習の単位)になる。学習する側はこの単位を壊さずに読み込む必要があるので、データ形式には、どこで一つのエピソードが終わり次が始まるかを表す仕組みが要る。いちばん素直なのは、一回の記録を一つのファイルにする形である。ファイルの境界がそのまま区切りになり、どんな道具からでも開ける。

ところが、この形で作られた公開データセットを最近取りに行くと、エピソードが一つずつのファイルではなくなっている。数千のエピソードが少数の大きなファイルに連結され、区切りは別のメタデータに書かれている。手持ちの道具でファイルを開いても、どこからどこまでが一つのエピソードかは分からない。集める側にも使う側にも、形式が変わった理由と、この変化がどこまで進むのかを知る必要が生まれている。

問い

ロボット学習のデータ形式は、なぜ1エピソード1ファイルをやめつつあるのか。何を得て何を失い、形式はどちらへ向かっているのか。

要点

エピソードの数が数万から数百万へ桁で増え、ロボット学習のデータ形式は、区切りをファイルの境界からメタデータと利用者向けAPIへ移しつつある。 1エピソード1ファイルはファイルシステムの限界に当たるので、大規模に配るデータはこの方向へ進む。失うのは、形式だけを見る外部の道具が区切りを読めなくなることだが、この代償は永続ではなく、読み出しライブラリが数か月で追随している。手元の小規模なデータでは、今も1エピソード1ファイルが強い。

この方向を示す例として、本稿はLeRobotDataset v3.0を選ぶ。LeRobotはHugging Faceが開発するロボット学習のオープンソースライブラリで、2024年から公開され、Hub上の多数のデータセットがこの形式で置かれている1。選んだ理由は三つある。前の版v2が1エピソード1ファイルで、変化の前後がそのまま対照になること。移した理由を設計した側が自分の文書に書いていること。外から読む側の作業も公開の議論に残っていて、読者が原典で確かめられることである23

何が変わったか:区切りがファイル名からメタデータへ移った

v2では、エピソードを一つずつ別のファイルに収め、ファイル名そのものが区切りだった。v3.0では、状態・行動・タイムスタンプのような低次元で高頻度の信号は複数エピソード分をまとめてParquet(列指向のデータファイル形式)へ、カメラのフレームは複数エピソード分を連結してMP4へ入れ、どのエピソードが共有ファイルのどこからどこまでかは、メタデータに開始と終了の位置として書く2。設計した側は文書でこれを「エピソードの境界と参照は、ファイル名を介さずメタデータを介して解決される」と述べている2

利用者から見た読み方は変わらない。ライブラリのAPIを通せば、エピソードは相変わらずエピソード単位で取り出せる。文書はこの分離を中心の原則として置く。「v3の中心的な原則は、ストレージ(保存の仕組み)を利用者向けAPIから切り離すことにある。データは効率よく(少数の大きなファイルとして)保存される一方、公開されるAPIはエピソード単位の直感的なアクセスを提供する」2。保存の都合と利用者の見え方を別々に決める、という設計である。v3.0を含む安定版は2025年10月にPyPIへ出ている4

なぜ変わったか:エピソードの数が桁で増えた

変える理由を、開発チームは規模に置く。v2について「データセットの規模を数百万エピソードまで広げようとすると、ファイルシステムの限界にぶつかった」と述べ、連結する狙いを「データセットに含まれるファイルの数を大きく減らし、現代のファイルシステムにとってより効率がよい」と説明している5。ファイルシステムは小さなファイルを大量に抱えることを苦手とし、一覧を取るだけで待たされ、転送にも手間が増える。ファイルの数を減らせば初期化が速くなり、Hubから直接読むストリーミングも同じ版で新しくなった点に挙がる2

規模の要求は、データを出す側から実際に来ている。自動運転データセットL2Dを公開するyaakは、100エピソードの最初の版から段階的に広げ、2026年9月12日時点で公開中の版は10万エピソードを収める6。同社とLeRobotの共著による発表記事は、最大のオープンソース自動運転データセットを目指すと書き、「ロボットAIモデルの性能は、訓練集合に含まれるエピソードの質によって上限が決まる」として、質を確かめながら段階的に公開している7。データを出す側が数万から数十万のエピソードを一つのデータセットとして配る以上、形式は少数の大きなファイルへ向かう。

何を失うか:外の道具が区切りを読めなくなる、ただし一時的に

代償は、ライブラリの内側に入らない道具から見たときに現れる。ふつうのParquet読み出しでこの形式を扱うと、同じエピソードのフレームを自分で集め直し、区切りのメタデータを相対パスから自前で読み込む作業が読む側へ移る3。土台のParquet自体は「多くのプログラミング言語と分析ツールで対応されている」形式なので8、読めないのは形式ではなく、区切りをメタデータに置くという規約のほうである。書く側にも変更は及び、記録の終わりを明示的に宣言する手順を負う。段階的にParquetへ書き出す変更が入り、メモリの消費は全フレーム数に比例する量からエピソードごとのフレーム数に比例する量へ減ったが、finalize()を呼ばなければファイルは不完全なまま残る92

この代償がどれだけ続くかは、公開の議論に記録が残っている。データ処理ライブラリDaftのGitHub上の議論に、社外の技術者がv3形式向けの読み出しを提案し、提案の中心を「DataFrameの一行がエピソード一つ分のデータに対応するようにし、あるエピソードに属するフレームのデータが散らばらないようにすること」と書いた310。その読み出しは、議論の開始からおよそ4か月後の2026年6月にDaftへ実装され、8月にはv2系のレイアウトにも対応した。手作業だったメタデータの読み込みとフレームの遅延取得は、ライブラリの内側へ移った11。区切りをファイルから外した分だけ外部の道具は読み方を実装し直す必要があるが、主要な読み手が追随するまでの期間は、この例では数か月だった。

速さの面で何を得たかは、公開された計測からは決まらない。著者の一人がコメント欄で示す追補が比べるのは、v3のストリーミング版と非ストリーミング版であって、v2との比較ではない5

どちらへ向かうか:大規模配布はAPI側、手元の小規模はファイルのまま

方向は一つに読める。数万から数百万のエピソードを配って流通させるデータは、区切りをメタデータとAPIへ預ける形へ進む。ファイルシステムの限界は設計で回避できず、失うものは道具側が数か月で埋めるからである。設計した側は規模を理由にこの形へ移り、データを出す側は10万エピソードをこの形で公開し、外部の読み出しライブラリは追随した。三者が同じ向きに動いている。

ただし、すべてのデータがこの形へ行くわけではない。手元で数百から数千のエピソードを扱い、手持ちの様々な道具で中身を覗きたいなら、ファイルそのものを区切りにする形が今も強い。数の壁は遠く、読める道具の広さのほうが効くからである。

判断の目安はこうなる。 新しいデータ形式に出会ったら、まずエピソードの区切りが何で表されているかを見る。ファイルの境界なら、手持ちの道具で開けるが、数が桁で増えたときにファイルシステムが代償を払う。メタデータや専用のAPIなら、規模は伸びるが、自分が使う道具がその読み方を実装しているかを確かめる。大規模に配るデータは後者へ向かっており、待つ時間は短くなっている。

出典11件
  1. huggingface/lerobotリポジトリのGitHub APIメタデータ、PyPIのリリース履歴、pypistats.orgのダウンロード集計、Hugging Face Hubのデータセット一覧(いずれも2026年9月12日取得)。GitHub APIはリポジトリ作成日を2024年1月26日、スターを27,421、説明を「🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning」と返す。PyPIのJSONでは最初の版0.1.0の公開が2024年3月9日。pypistats.orgの直近集計はlast_month 272,853、last_week 49,581(ミラーやCIの取得も含む値である)。Hugging Face Hubのデータセット一覧をLeRobotタグで絞ると「Datasets 75,908」と表示され、絞らない全体は1,044,154件だった。ライブラリの立ち位置(開発元・履歴・利用の規模)を示すためだけに引く。https://github.com/huggingface/lerobot https://pypi.org/project/lerobot/ https://pypistats.org/packages/lerobot https://huggingface.co/datasets?other=LeRobot

  2. Hugging Face, “LeRobotDataset v3.0” ドキュメント(2026年9月11日取得)。エピソードの境界をファイル名ではなくメタデータの位置情報で表す設計を、設計した側自身が説明する一次資料である。文書は中心的な原則を「v3の中心的な原則は、ストレージを利用者向けAPIから切り離すことにある。データは効率よく(少数の大きなファイルとして)保存される一方、公開されるAPIはエピソード単位の直感的なアクセスを提供する」と述べる。v3で新しくなった点として、v2の1エピソード1ファイルに代わる、1つのParquetと1つのMP4に多数のエピソードを収める形式、ファイル名ではなくメタデータを介して境界と参照を解決する関係的なメタデータ、Hugging Face Hub上でのストリーミングを担うStreamingLeRobotDataset、そしてファイル数が少なく大きいことで初期化が速くなりファイルシステムの負荷が下がる点を挙げる。三つの柱として、状態・行動・タイムスタンプなどの低次元で高頻度な信号を持つ表形式データ(Apache Parquet)、カメラのフレームを連結してエンコードする映像データ(MP4)、スキーマ・FPS・正規化用の統計・エピソードの開始と終了の位置を持つメタデータを説明し、連結の理由を「数百万エピソードへ規模を広げるため、表形式の行と映像のフレームは複数のエピソード分をまとめて大きなファイルへ連結する。エピソードごとの見え方は、ファイルの境界からではなくメタデータから再構成する」と書く。映像については、同じエピソードのフレームはまとめて置かれ、実用的な大きさに保つためカメラごとにシャードへ分けると記す(本稿が「格納の側では散らばらない」と書く根拠)。「よくある問題」の節では、finalize()はバッファに溜めたエピソードのメタデータをディスクへ書き出し、Parquetのライターを閉じてフッターのメタデータを書き込むもので、これを呼ばなければParquetファイルは不完全なまま残りデータセットは正しく読み込めないと説明する。なお採用の状態について、文書はv3.0がlerobot >= 0.4.0に含まれる予定でそれまではmainブランチからビルドする必要があると述べているが、その0.4.0は2025年10月23日に公開済みで、同じドキュメントサイトのバージョン切替もv0.4.4、v0.5.1、v0.6.1の安定版を並べている。この一文は出荷後も更新されていない。https://huggingface.co/docs/lerobot/en/lerobot-dataset-v3 2 3 4 5 6

  3. Eventual-Inc/DaftのGitHub Discussion #6313(2026年2月28日から4月22日、参加者はplotor、desmondcheongzx、CarolinePascal)。起草者plotorはDaftの開発元ではなくByteDance所属の技術者、desmondcheongzxはDaftリポジトリのCollaborator、CarolinePascalは本稿が5として引くLeRobot側ブログの共著者である。LeRobotDataset v3形式向けのリーダーをDaftに設計する提案であり、ライブラリの外からこの形式を扱う側が何を引き受けるかを記録する。提案の中心を「DataFrameの一行がエピソード一つ分のデータに対応するようにし、あるエピソードに属するフレームのデータが散らばらないようにすること」と書く。ふつうのParquetの読み出しでこの形式を扱うと、同じエピソードに属するフレームは演算処理の都合で散らばっている場合がありエピソードIDで再びグループ化する必要があること、利用者が「UDFの中で、相対パスに従ってメタデータファイルを手作業で読み込む」必要があることを挙げる(散らばる場所はDataFrameであって格納の側ではない)。ストレージについては、提案者がこの形式は「いまのところposixプロトコルしか対応しておらず、オブジェクトストレージへのアクセスはできない」と書いたのに対し、Daft側の開発者が次のコメントでv3.0はHubからのストリーミングに対応しておりParquetとMP4はプロトコルを選ばないはずだと問い返しており、提案者はこれに答えていない。https://github.com/Eventual-Inc/Daft/discussions/6313 2 3

  4. PyPI、lerobotプロジェクトのリリース履歴(2026年9月11日取得)。0.4.0は2025年10月23日、0.4.4は2026年2月27日、0.5.1は2026年4月7日、0.6.1は2026年8月3日に公開され、取得時点の最新版は0.6.1である。https://pypi.org/project/lerobot/

  5. Hugging Face公式ブログ、“LeRobotDataset:v3.0: Bringing large-scale datasets to lerobot”(著者はFrancesco Capuano、Michel Aractingi、Quentin Lhoest、Caroline Pascal、Pepijn Kooijmans、Jade Choghari、Remi Cadene、Simon Alibert、Adil Zouitine、Martino Russi、Steven Palmaの11名、公開日は2025年9月16日)。v3への移行を設計した側の視点で、その理由を述べる記事である。v2については「データセットの規模を数百万エピソードまで広げようとすると、ファイルシステムの限界にぶつかった」と書く。複数エピソードを大きなファイルへ連結することについては「データセットに含まれるファイルの数を大きく減らし、現代のファイルシステムにとってより効率がよい」と説明する。読み書きの速さについては、著者の一人(fracapuano、2025年9月19日)が同ページのコメント欄で、スループットを計測した追補を準備中だと述べ、その草稿のプルリクエスト(huggingface/blog #3084、本稿確認時点で未マージ)を示している。その追補が比べるのはv3のストリーミング版と非ストリーミング版で、v2とv3の直接比較ではない。記事の原本ファイルには日付の項目がないが、公開ページが日付を表示している。https://huggingface.co/blog/lerobot-datasets-v3 2 3

  6. Hugging Face Hubのデータセットyaak-ai/L2Dのリポジトリのファイル、カード、APIメタデータ。リポジトリのmainにあるmeta/info.json(2026年9月13日取得)は"codebase_version": "v3.0""total_episodes": 100000"total_frames": 26466954を示す。カードに埋め込まれた同ファイルの写し(同日に同じリビジョン1e7578bから取得)はtotal_framesを19,042,712と表示しており、実ファイルの値と一致しない。本文が使うのはエピソード数だけで、これは両方で100000である。API(2026年9月12日取得)は作成日2025年3月5日、最終更新2026年5月26日、downloads 81,476、likes 51を返す。データセットの立ち位置(公開元・作成時期・現在の規模)を示すためだけに引く。https://huggingface.co/datasets/yaak-ai/L2D https://huggingface.co/datasets/yaak-ai/L2D/resolve/main/meta/info.json https://huggingface.co/datasets/yaak-ai/L2D/resolve/main/README.md

  7. Hugging Face公式ブログ、“LeRobot goes to driving school: World’s largest open-source self-driving dataset”(著者はyaak-aiのHarsimrat Sandhawaliaと、Hugging FaceのRemi Cadene。2026年9月12日取得)。データを出す側が規模の狙いと公開の順序を、その側の言葉で述べる記事である。規模については、L2D(R2以降)が「aims to be the largest open-source self-driving dataset that empowers the AI community with unique and diverse」エピソードを与えることを目指すと書く。「ロボットAIモデルの性能は、訓練集合に含まれるエピソードの質によって上限が決まる」は、段階的な公開計画(「To ensure the highest quality episodes, we plan a phased release for L2D.」)の理由として置かれた一文である。その計画を表に並べる(R0が2025年3月の100エピソード、R2が2025年5月の1万エピソード、R3が2025年9月の10万エピソード、その先にR4として100万エピソードを置く)。R2以降の読み込みについては、v3.0形式であることを理由にStreamingLeRobotDatasetを勧めている。本稿は計画表のうち実際に公開済みの版だけを本文で扱う。https://huggingface.co/blog/lerobot-goes-to-driving-school

  8. Apache Parquetの公式サイトと、Apache Software Foundationのプロジェクト一覧にある記載(いずれも2026年9月12日取得)。公式サイトは「Apache Parquet is an open source, column-oriented data file format designed for efficient data storage and retrieval. It provides high performance compression and encoding schemes to handle complex data in bulk and is supported in many programming languages and analytics tools.」と説明する。財団のプロジェクト一覧は作成日を2015年5月13日とする。形式そのものの側が価値をどこに置いているか(読める道具の広さ)を、その側の言葉で確かめるために引く。https://parquet.apache.org/ https://projects.apache.org/project.html?parquet

  9. huggingface/lerobotのプルリクエスト#1903、“Incremental parquet writing”(著者michel-aractingi、マージ済み、2025年10月11日)。記録時のメモリ消費を減らす変更を説明する一次資料である。段階的な書き込みを行わない場合、データセット全体を書き出す前にメモリへため込むことになり、大規模な収集ではメモリを使い果たすと述べる。この変更により、消費するメモリの量は全フレーム数に比例する量からエピソードごとのフレーム数に比例する量へ減る。このプルリクエストは「記録が終わったときに呼び出す必要がある、Parquetのライターを正しく閉じるための追加のfinalize()メソッド」を加えたと記す。変更されたのはソースとテストの8ファイルで、ドキュメントは含まれない(未呼び出し時の挙動の説明は2側にある)。https://github.com/huggingface/lerobot/pull/1903

  10. Eventual-Inc/DaftリポジトリのGitHub APIメタデータとpypistats.orgのダウンロード集計(いずれも2026年9月12日取得)。GitHub APIはリポジトリ作成日を2022年4月25日、スターを5,756、ライセンスをApache-2.0、説明を「High-performance data engine for AI and multimodal workloads」と返す。PyPIのパッケージ名はdaftで、そのJSONのproject_urlsがこのリポジトリを指す。pypistats.orgの直近集計はlast_month 6,496,553、last_week 404,225(ミラーやCIの取得も含む値である)。ライブラリの立ち位置(開発元・履歴・利用の規模)を示すためだけに引く。https://github.com/Eventual-Inc/Daft https://pypistats.org/packages/daft

  11. Eventual-Inc/Daftリポジトリのdaft/datasets/lerobot.pyとそのコミット履歴(2026年9月11日取得)。2026年6月27日の「feat(lerobot): Add daft.datasets.lerobot for working with LeRobot v3 datasets」(#7090)で追加され、7月8日にシャード単位の映像フレーム復号(#7184)、8月17日にv2.0とv2.1のレイアウト対応(#7381)が入った。#7090の説明は、設計をこの議論(#6313)に「おおむね基づく」ものと自分で書いている。load_episode_framesの引数はHugging FaceのリポジトリIDまたはローカル・リモートのディレクトリで、docstringはs3://...hf://datasets/...を例に挙げる。meta/info.jsonの読み込みはライブラリ内部の関数が行う。議論の開始(2026年2月28日)から追加(6月27日)までがおよそ4か月にあたる。https://github.com/Eventual-Inc/Daft/blob/main/daft/datasets/lerobot.py https://github.com/Eventual-Inc/Daft/pull/7090

この記事はAIが執筆しています。内容には誤りが含まれる可能性があります。ご注意ください。