ロボットはできる、ただ指示の仕方を知らなかっただけ

ロボットはすでにできるのに、やらせる方法がなかった。身体は固定したまま『報酬プログラム』という指示書だけを進化させ、提案は言語モデルが、判定は手を触れられない検証器が担い、成功率を2.5倍に引き上げる。
← 목록으로
온
온틀 리서치
2026년 10월 04일 更新 2026.10.17 読了 14分 閲覧 1

人の動作を見て学んだヒューマノイド(人型ロボット)がいる。箱を押し、持ち上げ、運ぶ。指先で小さな物をつまむこともなかなかこなす。そこに新しい指示が下る。「その箱を横に倒してみて」。ロボットが止まる。

おかしいのは、倒すのに必要な動作をロボットはすべてできる、という点だ。押す、もたれる、重心を移す——部品はすべて手元にある。ないのは「これらの動作をこう組み合わせろ」と書かれた指示書だけだ。身体はできている。言葉がなかった。

InterEvolveというロボット学習法は、ここで方向を変える。身体をより賢くするのではない。身体に渡す言葉をより賢くするのだ。すでに学習を終えた身体(コントローラ)はそのまま凍結しておき、課題を『報酬プログラム』——何をすればうまくいったのかを書いたルールの束——に置き換え、その指示書だけを書き直していく。基本を身につけたベテランを再び学校に送らず、新しい作業指示書だけを渡すやり方だ。

身体は固定、指示書だけを変える

正直に言おう。この身体が最初から完全に準備できていたわけではない。従来のヒューマノイドコントローラは自分の身体しか見ておらず、目の前の箱は見ていなかった。だから『箱を左へ』と『右へ』が、コントローラの目には同じ動作としてつぶれてしまった。追跡実験では、この自分の身体しか見ないモデルは箱をほとんど取り逃した(成功率8%)。

直した方法は、身体をまるごと教え直すことではなかった。身体を担う部分は凍結しておき、対象を読み取る部分だけを上に重ねた。ここで『残差(residual)』という言葉が出てくる——既存のものを作り直さず、変わった差分だけをその上に付け足して学ぶ、という意味だ。重要なのは、この作業がたった一度きりだという点だ。箱を見ることのできる身体を一度作っておけば、その後新しい課題が次々に押し寄せても、身体は学び直さない。

こうして完成した身体を前に、指示書だけを書き直す。報酬プログラムは三つのパーツからなる。何を報酬とするか、いつ次の段階へ移るか、その二つをどんな数値で補正するか。持ち上げから押しに変えたいなら、関節の軌道を一から組み立てはしない。対象をどこへ動かすかという報酬と、段階の条件だけをいじればいい。

指示書は誰が書き直すのか。二つのループが噛み合う。外側のループでLLM(人の言葉を扱う言語モデル)がプログラムの『構造』を変える。どんな報酬と段階を使うか、だ。内側のループでは数値最適化器が、その構造に付随する『数値』を合わせる。なぜ分けたのか。構造が良くても数値が間違っていれば失敗するからだ。だからすべての提案は、審査にかけられる前にまず数値を合わせる。創造的な分解は言葉を扱う側に、粘り強い数値合わせは最適化に任せた分業である。

審査基準はロックしておく。課題が言葉で与えられると、成功基準(検証器)を一度立てて固定する。エージェントが基準をこっそり緩めて課題を簡単にしてしまう道を塞ぐためだ。入れ替えも慎重だ。新しい候補は同じ状況の数々で現在の最良と競い、上位の候補はそれぞれ三回ずつ再評価される。改善幅が実行ごとに生じるノイズを超えたときにだけ、入れ替えを承認する。運の良い一回を実力とはみなさない、ということだ。こうして生き残ったプログラムは『スキルライブラリ』に要約され、次の課題が白紙から始まらないよう助ける。

なぜ成功率が二倍以上に跳ね上がったのか

表を読む前に、指標を二つだけ。SR(成功率)は、課題のすべての基準と物理的制約が一回の試行で同時に成り立った割合だ。転んだり目標を取り逃したりすれば、その試行は失敗だ。Earnedは通過した基準の平均割合だが、落とし穴がある。じっと立っているだけでも基準の半分近くは自然に通過してしまう(下のInactionのEarnedが49.1%)。だからEarnedは膨らみやすい。本当の主指標はSRだ。以下は八つの課題群の平均である。

プログラム 定数チューニング 進化 SR(%) Earned(%)
Inaction(静止) – – 0.0 49.1
Human(人が作成) ✗ ✗ 8.0 65.2
Agent(初期案) ✗ ✗ 32.2 73.3
Human + チューニング ✓ ✗ 18.0 75.2
Agent + チューニング ✓ ✗ 34.6 82.5
InterEvolve ✓ ✓ 86.5 95.6

人が素朴に書いた報酬は成功率8%にとどまる。身体が能力を秘めていても、手で書いた指示書ではその能力をほとんど引き出せない、ということだ。エージェントが書いた草案に数値補正まで加えても34.6%、まだ半分に満たない。構造を実行結果に基づいて直す『進化』が加わって初めて86.5%に達する。

この34.6%から86.5%への跳躍——約2.5倍——がこの論文の一行要約だ。注目すべきは数字の大きさではない。人でもそう簡単には思いつかない動作を、言語モデルの提案と進化の選別が協力して見つけ出した、という事実だ。箱をその場で回す動作は学習データになかった。進化したプログラムは、身体を新しい使い方で用いてそれをやってのけた。シミュレーションでこうして見つかった技術の一部は、実際のUnitree G1ロボットがカメラとセンサーだけで自ら実行した。

その『なぜ』の底には、はっきりとした姿勢がある。この研究が追い求めたのは、正解をそっくり真似る能力ではなく、どんな状況が来ても任務をやり遂げる頑健さだった。成功率が高いということは、決められた軌道を完璧に真似られなくても、転んだり箱を完全に取り逃したりする致命的な失敗を減らす、という意味だ。追跡課題の数値がこれを物語っているが、詳細は付録に回した。一つ判断を添えるなら——AIを実際の現場に送り出すほど、ベンチマークスコアの小数点よりも、この頑健さのほうが重要になる。

どこまでで、私たちにとって何を意味するのか

誇張しないために、まず線を引こう。コントローラは固定で、InterEvolveは身体がすでに持つ能力を改めて引き出して使うにすぎない。身体が出せる動作の目録(モーターレパートリー)にそもそもない能力を、新たに作り出すことはできない。その範囲を外れた課題なら、身体そのものを育てなければならない。

進化が回る場所もはっきりさせておこう。進化はシミュレーションで起こる。実機ロボットの結果は、そこで選んだプログラムを持ってきて再生したものだ。『実機で自律的にやり遂げた』と『進化が実機で起こった』はまったく別の話で、後者は事実ではない。成功の定義が検証器に委ねられているのも諸刃の剣だ。その基準を誰がどう立てるかが解釈を左右する。扱った物体も箱類と小さな物であり、より多様な形状・材質への一般化は、この結果だけでは断定できない。

この設計がロボティクスの外でも読める理由がここにある。『課題の指示書そのものを探索する』という発想は、ONTLEで私たちが取り組んでいる問いと同じ急所に触れる。AIエージェントをどこまで信じられるのか。

一つの場面でたどってみよう。ONTLEのAIプロジェクトマネージャーに、顧客が「来週の納期を前倒ししてほしい」と依頼する。プロジェクトの途中で入ってきた、もともと手順になかった仕事だ。ここで私たちがInterEvolveと共有する原則は一つだ。提案は言語モデルが行うが、実行と判定はエージェントが手を触れられないサーバー側の決定論レイヤー——決められたルールどおりにだけ処理し、即興の判断が割り込まない層——が担う。エージェントが「処理しました」と言葉でごまかしたり、『完了』の基準を自分の都合で緩く変えてしまったりする道を塞ぐためだ。

そのためには『終わった』を、言葉ではなく条件として書かなければならない。納期変更が完了したとは、たとえば関連工程のスケジュールが新しい日付に更新され、資材の入荷日がその前に設定され、顧客が変更を受け入れた状態——これらがすべて真であるときだ。この条件が真になる前には、誰も『完了』を宣言できない。

ただし、ロボット研究と私たちの現場のあいだには、無視できない違いが一つある。InterEvolveは候補の指示書をシミュレータで何度も回して『この処理の仕方のほうが良い』を事前に検証する。そこでは『ノイズを超える改善のときだけ採択』が成り立つ。繰り返せるからだ。だが、実際の顧客の依頼一つひとつには、その再試行がない。一度の実行がそのまま実際の結果になる。だから私たちが繰り返し検証するのは『処理の仕方』であり、実際の依頼に対してできるのは、上の条件による『完了の確認』だ。この二つは分けて見なければならない。だから残る問いはあっさりしている。私たちの『完了』は、本当に人が手を触れられない条件として書かれているか。

付録:数値と用語メモ

本文から外した詳細な数値と用語をまとめた。

追跡課題——誤差が低いことが、そのまま成功率の高さにはならない。決められた正解軌道をそのままなぞる課題では、専用の追跡器ULTRAが誤差が最も低い(身体15.68cm、物体21.45cm、成功率66%)。ところがInterEvolveのコントローラは進化なしでも成功率60%(27.20/30.80cm)で肉薄し、追跡用の報酬を乗せて進化させると72%(19.80/24.92cm)で専用追跡器を上回る。誤差はULTRAが低いのに、成功率はInterEvolveが高い。エージェントが見つけ出した報酬は『対象を基準点にした揺れ補正』だった。コントローラは自分の身体周りの座標(自己中心座標)しか見ない。だから世界全体を基準にすると少しずつずれていく(ドリフト)のに、自分ではそれが見えない。目の前の箱を基準点にしてこの死角を埋めたところ、胴体の基準点(ルート)と箱の最終的なずれがほぼ半分に減った(論文Figure 5)。

構成要素の実験——どのパーツが成果を出したのか。対象の状態や、身体と対象のあいだの距離の信号を外すと、コントローラは自分の身体はそれらしく追従しても、成功はまれになる。同じニューラルネットワークを凍結せずに一から学習させると、ほとんど動作しない。逆に、身体を凍結したうえで残差を育てるほど成績が良くなる。基本は凍結した部分が担い、相互作用は残差が学ぶ、という分業が数字で確認されたわけだ。箱を六つ一度に扱ったり、小さな物を指で繊細につまんだりする場面まで現れた。

コスト——一つの課題群を完全に進化させるのに、単一GPUで2.1時間、LLMトークン0.23Mがかかる。固定プログラム(0.6時間、0.03M)より大きいのは、五ラウンドを回り、ラウンドごとに複数の提案の数値を合わせるからだ。ラウンド数で上限を縛れば、コストの天井ははっきりする。

用語

  • ロールアウト(rollout):決められた初期条件からコントローラをシミュレーションで一度最後まで走らせる『試行』一つ。二つのループはいずれも複数の初期条件で同時に走らせて評価するので、すべての決定が一度の運ではなく、多数の試行の上に立つ。
  • FB(forward-backward)モーターモデル:『何を報酬とするか』を入れると『どう動くか』を引き出す装置。行動ルール(方策)が一つに固定されているので、報酬が変わっても方策を学習し直さず、対応する信号だけを新たに計算する。課題ごとに身体を再学習しなくて済む理由だ。
  • 潜在プロンプトと『バンク』:潜在プロンプトは、報酬を行動に移すための中間信号だ。学習を終えたあと、進化を始める前に、複数の課題・対象が混ざった過去の実行記録から『身体-対象の状態』のサンプル集(バンク)を一度抜き出して固定する。いまの段階の報酬をこれらのサンプルに割り当て、高い報酬のほうへ傾けた重み付き和で潜在プロンプトを作る。報酬がそのつど文脈を読むので、この信号は制御ステップごとに計算し直される。
  • 実演判別器(demonstration discriminator):ロボットの行動が、人の実演データのように自然かどうかを見分ける装置。残差を学習させるときに併用し、不自然な動きの代わりに人間らしい動きを導く。
  • リターゲット(retarget):人のモーションキャプチャデータをロボットの身体に合わせて置き換える作業。Unitree G1(ゴムの手)とInspireハンド版にリターゲットし、手先の器用さが必要な手にはOmniRetargetを適用した。
  • 数値最適化器(CMA-ES):定数の束を少しずつ変えながらより良い値を探す、進化ベースの探索法(共分散行列適応進化戦略)。
  • 予算:一つの課題群を五ラウンドと数え、各ラウンドは有効な提案ごとに192回のチューニング用ロールアウトと、上位候補を確認する192回のロールアウトを使う。
  • データ・身体:大きな物体の全身操作データ(OMOMO)と、小さな物体の全身把持データ(GRAB)で事前学習した。箱類4種を用い、対象ごとに評価用の50クリップを取り分け、残りの3,866個で学習した。コントローラはすべてIsaac Labで動かした。
  • 他のアプローチとの違い:リファレンス・目標状態・スキルラベルを使う方式は、望む動作/状態/行動の名前を直接要求する。Eureka系はLLMが報酬関数を書くが、候補ごとに方策を学習し直す。Language to RewardsはLLMが書いた報酬をMPCで最適化し、MotionDiscoはLLMと軌道最適化でモーションを進化させたうえでトラッカーを別に学習し、ROSETTAは言語による選好で多段階の報酬プログラムを組む。InterEvolveはコントローラを固定したまま、課題の指示書そのものを探索するという点で、これらと袂を分かつ。

FAQ

指示書を書き直す言語モデルも、課題ごとに学習し直すのか?

いいえ。重みは固定で、毎ラウンド『プロンプトの中でだけ』学ぶ。そのプロンプトには、課題の依頼、場面の文脈、検証器、現在の最良プログラムとその実行フィードバック、スキルライブラリが入る。言語モデルはこの文脈だけを見て、構造を変えた新しいプログラムを複数提示する。

検証器をロックしても、エージェントが宣言していない情報をこっそり読んで反則したら?

妥当性チェッカーが実行前にそうした提案をふるい落とす。ルールを破った提案は、そもそも実行の段階へ進めない。検証器を課題ごとに一度立ててロックすることに加えて、エージェントが課題を自分の都合で簡単にしてしまう二つ目の抜け道を塞ぐ装置だ。

スキルライブラリには具体的に何がたまるのか?

課題ごとに、場面、課題文、基準別の通過率、そしてチューニングまで終えたプログラム(構造と定数)をテキスト文書として書き残す。だから次の課題は白紙から始まらず、この資産を組み合わせ・変形するところから出発する。

いっそ課題ごとにコントローラを学習し直せばいいのでは?

それが従来のやり方で、遅い理由もそこにある。報酬を一度直すたびに、方策を一から学習し直さなければならなかった。InterEvolveでは固定のモーターモデルが再学習なしで実行するので、候補一つを確認するコストが『RL一回』ではなく『ロールアウト一束』で済む。だから複数の候補を素早く回して比較できる。

参考資料