Hugging Faceがロボット学習ツールLeRobot v0.7.0を公開した。ロボット開発者は、大容量データを丸ごとダウンロードせずに学習に使ったり、ロボットのそばの小型コンピューターではなくリモートサーバーで大きなモデルを実行したりできる。インストールから学習・推論・モーター接続まで変わり、既存ユーザーの移行作業も増えた。
1. 大きなモデルを分割して学習し、保存の負担を減らす
新しい学習基盤はFSDP2とHSDPに対応する。モデルが学習で調整した値である重みなどを複数のGPUに分散し、1枚のGPUメモリに収まりにくいモデルを学習する方式だ。これとは別に、分散チェックポイントは学習状態を分割して保存し、複数のGPUで再び読み込む役割を担う。
LeRobotチームの分散学習の発表によると、H200 GPU 8基のサーバー1台で60億パラメーターのFastWAMを学習した際、分散チェックポイントの保存速度は従来の3倍になった。パラメーターはモデルが学習する数値だ。同条件で、学習再開時のGPU当たりの最大メモリ使用量は143GBから42GBに低下した。両値から計算すると約71%の減少で、学習中のメモリ分散とは別に保存・再開の負担も減らす変更だ。
表:学習再開時のGPU当たりの最大メモリ使用量
条件:LeRobotチーム発表、8×H200サーバー1台、6B FastWAM、分散チェックポイント導入前後
単位:GB
| 再開経路 | 最大メモリ使用量 |
|---|---|
| 従来 | 143 |
| 分散チェックポイント | 42 |
実験記録ツールはWeights & BiasesからTrackioに変更された。ローカル実行は登録やログインなしで監視でき、実行コマンドやエラーを含むコンソール出力も記録する。チェックポイントを、実験結果を保管するファイル群であるアーティファクトとして追跡サービスにアップロードする動作は、デフォルトで無効になった。
2. データは必要な動画区間だけ読み込む
新しいストリーミング読み込み方式は、学習に必要な動画のバイト範囲だけをハブやストレージバケットから取得する。LeRobotチームのストリーミングの発表によると、読み込み用ワーカープロセスを4つ使った場合、毎秒のサンプル数は従来の2.1~2.5倍になった。データ全体を1回走査する学習の各周回で、各フレームを正確に1回ずつ参照し、再開時にも順序を再現する。
表:ストリーミングデータ読み込みの処理量の変化
条件:LeRobotチーム発表、新しいストリーミングリーダーでDataLoaderワーカー4つを使用、サンプル/秒基準
単位:従来比の倍率
| 測定対象 | 従来値 | 新しい値 |
|---|---|---|
| 毎秒のサンプル数 | 絶対値の提示なし | 2.1–2.5x |
LanceDBに保存したデータセットは、元のMP4を再エンコードせずに読み込める。以下はブログのデータセット読み込み例だ。
from lerobot.datasets import LeRobotDataset
dataset = LeRobotDataset("lance-format/pusht-lance")学習画像を変形して学習データを増やすデータ拡張も、GPUで処理できる。LeRobotチームのGPU拡張の発表によると、ロボット動作学習モデルACTに適用した際の学習速度は、H100では2.8倍、A100では3.3倍だった。
チームによると、ハブで公開されているLeRobot形式のフィジカルAIデータは300TB近くに達する。全データをローカルディスクに収めにくい環境で、ストリーミングの活用範囲が広がった背景だ。
3. ロボットは現場に置き、モデルはサーバーで動かす
ポリシーサーバーを使えば、カメラ・モーター・録画はロボットの近くで処理し、学習済み動作モデルであるポリシーはリモートGPUサーバーで実行できる。ロボットの状態を表す入力情報である観測値と指示を送ると、サーバーが次の動作群を返す。ロボットが受信済みの動作を実行する間に、学習済みモデルで結果を計算する次の推論を進め、計算と動作を重ねる。新しい動作群は残りの動作軌跡に合わせつつ、時刻が過ぎたステップは捨て、重なる目標は混ぜて滑らかにつなぐ。
対話型実行では、ロボット接続とポリシーの重みを維持したまま指示を変えたり、ロボットが見ている内容を質問したりできる。目標を与えるとポリシーが個別の作業を選ぶ方式にも対応する。質問と自動操縦には、テキストを生成するポリシーか外部プランナーが必要だ。外部プランナーは、画像と文章を扱う視覚言語モデルをOpenAI互換APIで接続し、質問に答えて次の作業ステップを選ぶ。
リモート実行は、ロボット側のコンピューターのモデル用メモリ負担を軽減する。一方で開発者は推論サーバーとネットワークも運用し、応答が戻るまでの時間である遅延に合わせて実行方式を調整する必要がある。通信には、安全な接続のための暗号化であるTLSとアクセス制御の設定を提供するZenohを使う。
4. シミュレーターとモーター接続も共通基盤にまとめる
性能比較の試験であるベンチマークごとに、個別のシミュレーターを同じ環境にインストールしていた構造は、共通の実行基盤に整理された。シミュレーターはLeRobotプロセス内で実行するか、別のDockerイメージのサーバーとして起動できる。実際のロボットがなくても実行・録画・遠隔操作の流れを試せる。
評価結果には成功回数と、成功率の不確実性を示す範囲である95%ウィルソン信頼区間が併記される。少ない試行回数から得た成功率を見る際に、結果の不確実性も読み取れるようにした変更だ。
FeetechとDynamixelのモーターは、機器が順番に通信する接続方式であるシリアルバスの実装を共有する。メーカーのソフトウェア開発キットに代わりrustypotベースの実装をインストールし、モーターの基準値を合わせる既存のキャリブレーションファイルは維持する。モーターの動作モードは、バスに直接コマンドを送って設定する方式に変わった。
5. 更新前にインストールと学習再開の経路を点検する
リリースノートのインストール項目によると、LinuxのPyTorchとTorchVisionはCUDA 13ビルドに変わり、NVIDIAドライバー580.65以上が必要になる。古いドライバーを使う場合は、CUDA 12のインデックスから先にPyTorchをインストールする手順が案内されている。
リリースノートの学習項目によると、従来のFSDP1経路は新しい分散学習基盤に置き換わり、以前の設定は新しいオプションに合わせて移行する必要がある。v0.6.xまでに保存したFSDPチェックポイントは重みを読み込めるが、学習状態をそのまま再開できない。AccelerateのYAML・環境変数設定はデフォルトで拒否され、引き続き許可するにはリリースノートに記載された別の設定が必要だ。
リリースノートの推論・実行項目によると、従来の非同期推論モジュールは削除され、リモート推論経路への移行が必要になった。ポリシーを直接呼び出すコードは、動作と予測情報を一緒に返せる新しい戻り値の形式にも対応する必要がある。
LeRobot v0.7.0の要点は、より大きなモデルとデータを扱う余地を広げる一方で、既存ユーザーにインストール・学習・実行経路の移行を求める点にある。
