expand_less

グーグルに、自分自身をプログラミングする強者ロボット現る

  • 未来
2023/1/20

Top Image:シャーロット・フー

適切に稼働するコードを書くのは、難しい場合がある。HTMLのようなどちらかというと簡単な言語でも、特有の構文と使用可能なツールを理解する必要がある。ましてや、ロボットを制御するコードとなるとさらに複雑で、複数のステップに分かれることが多い。例えば、物体を検知するコード、ロボットの手足を動かすアクチュエーターを作動させるコード、タスクの完了を指定するコードといった具合だ。赤ではなく黄色のブロックをロボットに拾わせるような簡単なプログラミングであっても、そのロボットを動かすコーディング言語を知らなければ書くことはできない。

しかし、グーグルのロボット工学研究チームは、この問題を解決する方法を探っている。そして開発したのが、自然言語の命令に基づいて自らのブログラミングコードを書けるロボットだ。ロボットの設定ファイルを開いて、「block_target_color」を「#FF0000」から「#FFFF00」に変更しなくても、代わりに「黄色のブロックを拾え」と入力すれば、あとはロボットがやってくれる。

Code as Policies(CaP)」は、グーグルの「Pathways Language Model(PaLM)」を発展させて、自然言語の命令を解釈して実行可能なコードに翻訳するようにしたコーディング特化の言語モデルだ。グーグルの研究チームは、命令の例と対応するコードとをモデルとして与えて訓練した(命令の例は、開発者がレビューする人に対して、何をするコードなのかを説明する際に書く「コードコメント」の形式にした)。そこからは、新しい命令を理解できるようになり「APIコールの再作成、新しい関数の作成、そしてフィードバックループの表現によって実行時に新しい動きを組み立てる、新たなコードを自律的に生成する」ことができたと、グーグルのエンジニアは2022年11月2日付のブログ記事で説明している。すなわち、コメントのような指示があれば、それらしいロボットコードを考え出せたということだ。研究のプレプリントはこちらで読むことができる。

Google is testing a new robot that can program itselfグーグル  AI

研究チームは、具体的なタスクに向けた新しいコードをCaPに書かせるべく、使用可能なAPIやツールといった「ヒント」と、命令とコードをペアにしたいくつかの例をCaPに与えた。するとCaPはそこから、新しい命令に対する新しいコードを書くことができた。CaPは、「新しい関数の再帰的な定義、時間をかけたライブラリー構築、動的なコードベースの自己設計」などをCaPに促す「階層的なコード生成(hierarchical code generation)」を使うことでこれを可能にした。言い換えると、命令が1セット与えられれば、その後は同様の命令に対して転用可能なコードを作成できるということだ。

[関連記事:Google’s AI has a long way to go before writing the next great novel]

さらにCaPは、算術演算と複数の特定言語のロジックを使うことができる。例えば、Pythonで訓練されたモデルは、if/elseやfor/whileのループを必要に応じて使えるほか、サードパーティのライブラリーを使って機能を追加することもできる。「もっと速く(faster)」や「左へ(to the left)」といった曖昧な説明を、タスクの実行に必要な正確な数値に翻訳することもできる。CaPは標準的な言語モデル上に構築されているため、絵文字や英語以外の言語の理解のような、コードに関係ない機能もいくつか備えている。

CaPができることは、今のところまだかなり限定されている。命令に対し文脈を提供することに関して、CaPのベースとなる言語モデルに依存しているのだ。理解できなかったり、対応していないパラメーターが使われていたりすると、CaPはコードを書くことができない。同様に、単一のプロンプトではごくわずかなパラメーターを扱うことしかできない。何十ものパラメーターが必要な、もっと複雑な一連のアクションはまったくできない。さらに、安全上の懸念もある。ロボットをプログラミングして自らのコードを書かせると、映画『ターミネーター』のスカイネットに少し似てくる。「タスク達成には、伸ばした腕を高速で回転させるのが最善の手段だ」とロボットが考えたとして、そのそばに人間がいれば、けが人が出るおそれがある。

とはいえ、非常に刺激的な研究だ。ロボットにとって特に難しいタスクの一つに、訓練された動きを一般化することがある。卓球をするようにロボットをプログラミングしても、野球やテニスなど他のスポーツをできるようにはならない。こうした現実世界における広範な応用にはまだほど遠いが、CaPならタスクに特化した訓練なしで、ロボットが複雑なタスクを幅広く実行することを可能にする。これは大きな一歩だ。このまま進めばいつの日か、あるゲームをプレイできるロボットに対して、別のゲームのプレイ方法を教えられるようになるだろう。何から何まで細かく分けて人間が新しいコードを書く必要なく、だ。

この投稿「Google is testing a new robot that can program itself」は、最初にPopular Scienceに掲載されました。
この記事はPopular Scienceに掲載されました。

この記事は、Popular ScienceのHarry Guinnessが執筆し、Industry Dive Content Marketplaceを通じてライセンスされたものです。ライセンスに関するお問い合わせはlegal@industrydive.comまでお願いいたします。

同カテゴリの新着記事