Octo: An Open-Source Generalist Robot Policy
はじめに
皆さんこんにちは、一関高専 村上研究室所属 小山田です。
今年ももう師走.昨年の紅白でX JapanとThe Alfeeが出演していたいのが,ついこの間のように感じますが,時間って早いですね.
※ちなみに,僕はもともとThe Alfeeが好きだったので,「お前が歌うんかい!!」とはなりませんでした.詳しくは調べてみて下さい.
さて,今年ももう終わりなので,学んだことをまとめる時期ですね.
手始めに今年読んだ論文メモでも上げてみようと思います.
論文タイトルは,「Octo: An Open-Source Generalist Robot Policy」です.
最近ホットなロボット × AIの分野の論文ですので,暇つぶしに眺めてみて下さい.
ここからは宣伝です!!
僕の周辺の学生を巻き込み,勝手に一関高専の名前を使わせて頂いてAdvent Calenderを立ち上げました.
この記事は,Advent Calender 1日目の記事となります.
埋まっていくのはゆっくりだと思いますが,是非,他の記事もご覧ください !
参考
- 元論文 : Octo: An Open-Source Generalist Robot Policy
概要
- Open X-Embodiment (800k)データセットで学習した汎用基盤モデル
- Fine-tuningを柔軟に行いやすいアーキテクチャ
- 9つのロボットプラットフォーム(4つの機構)に置いて、新らしいドメイン知識(観察・行動空間)に対して効果的にFT出来ることが判明
- Octo modelと訓練パイプラインの公開
- checkpoints with 27M and 93M parameters
- 事前学習パイプライン
- FTパイプライン
- マルチモーダル入力用Transformerの実装
- 学習進捗の監視

新規性と差分
- モデルが公開されている
- 柔軟に行動空間・観測空間・ロボット形態の変更に対応できるアーキテクチャ
- 新しいロボット設定への適応時に小規模な変更・リソースでFTが可能
- 新ドメイン情報に対応するアダプタの追加
- トークンの追加
限界と展望
- 新しいアクション能力に対しての対応能力が弱い
- 手首のカメラに対しての処理能力が弱い。3人称カメラのみを使用した方が性能が良いことが判明した。
- データのモダリティに偏りがある
- データの27%のみに手首カメラ画像が含まれる
- データの56%のみにタスクの言語アノテーションが含まれる
- 言語や音声出力についての記述が無い
- 言語アクション出力が可能であれば周りとの意思疎通が可能であるが、この手法のモデルではパラメタサイズが足りないのではないか
- ロボットアーム型のロボット以外 (e.g. 4足歩行) での検証データが少ない
- より激しくかつ生物の直感的な動作が求められる制御において、果たして適応できるのだろうか (対向2輪が関の山ではなかろうか)
手法

アーキテクチャ
- input tokenizers : 言語指示、行動目標、環境状態をトークン化
- transformer backbone : トークンをエンベディングとして投影
- readout heads : エンベディングから情報を読み取る(i.e. action)
- アクションはチャンクで出力
タスク、言語指示、画像入力などのトークン化
それぞれの入力が以下のような手順でトークン化され順番に入力される
- Language inputs
- テキストをトークナイズ後、事前学習済みTransformerで射影されembedding tokenとなる
- 実験ではt5-base(111M)を使用
- Image observations and goals
- 浅い畳み込み層 → flatten → パッチへ分割
Transformer backboneとReadout heads
Block-wise mask
- タスクトークン
: 時刻\mathcal{T}_{T,t} 以前の観測トークン、タスクトークンへ注意を向けるt - 観測トークン
: 時刻\mathcal{T}_{o,t} 以前の観測トークン、タスクトークンへ注意を向けるt - 読み出しトークン
: 時刻\mathcal{T}_{R,t} 以前の観測トークン、タスクトークンへ注意を向けるt
重要なのは以下の2点
- タスクトークンと観測トークンから見て読み出しトークンはマスクされるということ
- 過去のトークンのみに注意を向けるということ
Causal Self-Attentionと同じ原理である
訓練データ
データの選定と調整
Open X-Embodiment Datasetには、沢山のロボット、センサー、言語指示、タスクのデータが収録されている。
その中で以下の様なデータを削除した。
- 画像ストリームを含まないデータ
- デルタエンドエフェクタ制御を使用しないデータ
- 繰り返しの多すぎる動作データ
- 画像の解像度が低いデータ
- 過度にニッチなタスクで構成されるデータ
残りのデータセットについては以下のように調整を行った。
- タスクと環境に基づいて「多様性の高い」データセットと「多様性の低い」データセットに大まかに分類
- トレーニング中に多様性の高いデータセットの重みを2倍にした。
- 繰り返しが含まれるデータの重みを下げる。
- 欠損しているカメラチャンネルをゼロ埋め
- クリッパーの動作空間を統一(0 : グリッパー閉、1 : グリッパー開)

訓練目的と手法
ロボット制御用ポリシーの学習にあたって、条件付き拡散デコーディングを用いる。
※Readout headの学習手法紹介である。
デノイジングネットワーク\epsilon_\theta (x^k, e, k) の入出力
- 入力
- ガウシアンノイズ :
x^K \sim \mathcal{N}(0, I) - 読み出し埋め込み (readout embedding、transformer backboneから生成) :
e - ステップ :
k
- ガウシアンノイズ :
- 出力
- ノイズ(これを
ステップ減算してアクションを生成)k
- ノイズ(これを
事前学習と微調整
- 事前学習・FT通して同じパイプラインで学習する
- 100個の軌跡を持つ小ドメインデータセットの場合
- コサイン学習率減衰 (cosine learning rate decay)・線形Warmupを使用
- 50kステップの学習
訓練の詳細
モデル
| model | param size |
|---|---|
| Octo-Small | ViT-S |
| Octo-Base | ViT-B |
学習設計
- オプティマイザ : AdamW
- 学習率スケジュール : Inverse Square Root Schedule
- weight decay : 0.1
- gradient clipping : 1.0
環境入力設計
- 観測画像フレームを2枚(現在、1ステップ前)入力
- 予備実験で3枚にしたが、あまり性能向上が無かったため中止
Hindsight Goal Relabeling
※先行研究が存在、新規提案ではない
- 未来の行動軌跡上の状態を均一に選択し、状態目標として設定する
- 言語による指示ラベリングの手間を削減できる
- 言語指示のみ・画像指示のみの訓練データを生成し、どちらの指示でも柔軟に動作できるように学習
実験
評価軸
Octoのモデルを以下の形式で評価する
- 複数種類のロボット形態を制御し、言語・目標タスクをすぐに解決できるのか
- 新しいタスクを学習させるFTの初期重みとして機能するか
- 一般的にこの手のFTに用いられるベースモデルよりも優れているか
- ゼロからの学習を行うよりもFTでよい性能を得られるか
- Octoにおける汎用ロボットポリシーの構築において最も重要な設計上のポイントは何か
評価タスク
4つの研究機関の9つのロボット学習セットアップを用いて評価
- デルタエンドエフェクタ制御のロボット
- 手先の座標を制御する形式
- 観測状態がRGB画像
新環境FTの検証
- Berkeley Insertion : ペグの挿入タスク
- 状態入力の追加 : force-torque (力)
- Berkeley Pick-Up : ピックアップタスク
- アクション形式の変更 : joint position control (関節角度制御)
- Berkeley Bimanual : 両手制御
- アクション形式の変更 : joint position control (関節角度制御)
- 新しいロボット環境
- Berkeley Coke : コーラを掴むタスク
- 新しいロボット環境
Zero-shot性能の検証環境
- WidowX BridgeV2
- UR5 Tabletop
- RT-1

結果
Zero-shot性能の比較
比較モデル
- RT-1-X
- Octoと同じで、OpenX-Embodiment Robot Datasetでの学習が行われている
- 複数種類のロボットをセロショットで制御することを狙っている
- RT-2-X
- VLMをOpenX-Embodiment Robot DatasetでFTしている
※ただし、これらのモデルは350kのエピソードで学習しており、Octoの800kよりも少ない
設定
- 各ロボットに対して2つの言語タスクを選択
- 各タスク10回の試行
- 初期条件を変えて試行
- オブジェクトの初期位置の変更
- 光の当たり具合
- 背景
- 妨害オブジェクト- RT-1-Xよりも29%高いタスク成功率
- RT-2-Xでは近い性能
- RT-1-XとRT-2-Xでは言語条件付きタスクのみのサポートに対し、Octoは目標イメージ条件付けをサポートしている
- WidowXタスクで言語条件付けタスクより目標イメージ条件付けの方が25%高い成功率
- 目標イメージがよりタスク解決のための情報を提供するためと主張
性能
- すべての環境でRT-1-Xよりも高い性能
- RT-2-Xに迫る性能を達成

新ドメイン情報の種類による性能差
- 新しいオブジェクトに対しての対応は性能が高く80%
- 新しい環境では40%
- 新しい動作スキルでは格段に下がって5%
- 反転や正確な挿入などの新しい動作

Full Scratch / FTの効率比較
比較モデル
- 対象のタスクを初めから学習 (Full Scratch)
- モデル : ResNet+Transforme (ResNet visual encoder with FiLM language conditioning)
- パラメタサイズ : 28M (RT-1に近いサイズ)
- OctoでのFull Scratchは過学習が発生するためなし
- モデル : ResNet+Transforme (ResNet visual encoder with FiLM language conditioning)
- 他のFT基盤モデル
- FTが成功した例は、存在しないと主張
- モデル : VC-1 (ViT-B、事前学習済みの視覚表現)
- Octo FT
設定
- パラメタ設定を共通化
- 100件の教師データを学習
- 各ドメインタスクで20回のトライアルを試行し成功率を算出
パフォーマンス
- すべてのタスクでFull Scratch / FT with VC-1を圧倒的に上回る性能を発揮
- 単一のカメラ入力とエンドエフェクタの位置制御を超えた幅広い単腕および双腕ロボット操作問題に適用

各種設計と性能への影響
- モデルアーキテクチャ
- 訓練データ
- 訓練目的
- モデルの規模
※計算予算の都合上、Octo-Smallで実験を実施
モデル構造検討
- 既存の画像入力付きTransformerでは、巨大なResNetエンコーダが付属していた
- Octoでは薄いCNNパッチエンコーダのみを実装し、殆どパラメタサイズとFLOPSをTransformer Backboneに集中させた (標準的なViTに類似)
- ViTよりもResNetベースの構造の方が小さいデータセットの学習に置いて有利
- e.g. 上記FT検証のFrom Scratch学習の様な検証
- 大規模なTransformerポリシーが多様なデータセットを用いたスケーラブルな学習に特に適している

訓練データの検討
- データミックスについて検討
- RT-X dataset mix
- Single robot dataset
- 訓練データの増加に伴ってパフォーマンスも向上
- データ選別のベストプラクティスの調査が今後の課題
訓練目的
- 拡散ヘッドがマルチモーダルな行動分布をモデル化できるのに加え、連続値の行動の精度を維持できるため性能が高い
- MSEでの学習よりも決定的
- 離散的な行動空間による学習よりも精度が高いアクションを生成
モデル規模
- 大きいモデルの方が初期状況の変化に対してのロバスト性が高い
- 大きいモデルの方が早期にオブジェクトを把持しようとする失敗が少ない
- 大型モデルは視覚的認識の性能が高く、より注意深く周囲を観察するためと主張

おわりに
最後まで読んで頂きありがとうございました.
現在この分野は,4足歩行ロボットやヒューマノイド,ロボットアーム等の市販流通,高性能AIの普及によって,Physical AIの分野への注目が高まっていますよね.
僕の研究でも,4足歩行ロボットを扱っており,その調査の一環としてこの論文を読みました.
この研究がベースラインとなって,より多様なロボットが高度なタスクをこなせるようになると良いですね!
このAdvent Calenderに書けるかは分かりませんが,4足歩行ロボット制御に関する論文メモなども公開していきたいと考えております.
是非,この後の記事もご覧いただけると嬉しいです!
Discussion