見出し画像

イリヤ・サツケヴァー | AIは様々な分野で人間を一歩ずつ打ち負かしている | それは良いことでもあり悪いことでもある

リッチ、ご紹介ありがとうございます。ここに来られて本当に嬉しいです。今日の講演では、OpenAIで行った研究についてお話しします。私たちは、当時は不可能だと思われていたことを、ディープラーニングの非常にシンプルなツールを使って実現しました。
講演を始める前に、一言申し上げたいと思います。リッチが言及したように、私は学部生の頃からジェフと一緒に仕事をしてきました。ジェフと一緒に仕事ができたのは本当に素晴らしい経験でした。12年間ずっと一緒に仕事をしてきて、そのような機会を得られたことに本当に感謝しています。ありがとうございます。
では、私たちの結果についてお話ししていきます。私たちは単に大規模なディープニューラルネットワークを大量のデータに適用しました。これは基本的にコネクショニストの夢です。大きなニューラルネットワークがあれば、与えられたデータの連続的で分散した表現を学習できます。適切なデータを与えるだけでいいのです。
まず、OpenAIについて一言。私たちの目標は、人間よりも賢いコンピューター、人間と同じくらい賢いコンピューターが全人類の利益になるようにすることです。現在、私たちは技術的進歩に焦点を当てています。大規模な強化学習に関する私たちの研究についてお話ししていきます。
昨年の最も刺激的な結果の1つから始めましょう。OpenAI FiveというDOTAボットが、DOTAの人間の世界チャンピオンをライブマッチで打ち負かすことができました。実況者がこう言っています。「そして、これでGG。ゲームオーバーです。OpenAIがゲーム2を取り、シリーズを2-0で制しました。特にこの2試合目は、プロの選手として素晴らしい例となりました。」
つまり、実況者が興奮していたということです。私たちは世界チャンピオンではありませんが、他の3つのトップクラスのチームと対戦し、それぞれ3戦2勝のマッチで2-0で勝利しました。そして世界チャンピオンをライブマッチで打ち負かしたのです。
DOTAについて少し説明しましょう。皆さんの中にはこのゲームをプレイしたことがない方もいるかもしれませんね。知っておく必要があるのは、これがリアルタイムストラテジーゲームで、部分的に観測可能な状態があり、1時間近く続く長いゲームで、連続的な行動空間があるということです。
このゲームについてもう1つ重要なことは、プロフェッショナルが人生を捧げて可能な限り上手くなろうとする難しいゲームだということです。1万時間、時には2万時間もの意図的な練習を重ねて、できる限り上手くプレイしようとする人々がいます。このゲームの年間賞金総額は3500万ドルです。つまり、本物のゲームで、人々はこのゲームを上手くプレイすることでキャリアを築いているのです。
私たちは世界チャンピオンを打ち負かすことができました。その方法は、非常に大規模な強化学習を使うことでした。4万5000年分のゲームプレイを使用し、1億5000万パラメータのLSTMポリシーを使用しました。人間のトレーニングデータは一切使用しませんでした。ポリシーは自己対戦を通じて多くのゲームをプレイすることで学習しました。ゲーム序盤でのリソース蓄積を促すためにいくつかの報酬形成を行いましたが、それがレシピです。シンプルで、これがディープラーニングの一般的な物語です。コアはシンプルで、ツールはどの問題を解くかを気にしません。非常に強力なハンマーであり、それが機能したのです。
これは、時間の経過に伴うボットの強さを示す素晴らしいグラフです。X軸はボットのトレーニングに使用されたFLOPS数の対数で、Y軸はチェスのELOレーティングに似たTrueSkillです。トレーニングを重ねるほど強くなり、さらにトレーニングを続ければおそらくさらに強くなるでしょう。これが、エージェントが自分のコピーと対戦することの魅力的な点の1つです。自分で訓練データを生成できるのです。
私たちが行ったもう1つのことは、このボットを一般に公開したことです。数百、あたるいは数千のチームが、ゲームを本当に愛する人々、DOTAを本当に愛する人々が、ボットに対して多くのゲームをプレイし、戦略を攻略する方法を見つけようとしました。私たちの勝率は99.4%でしたが、いくつかのチームは戦略のギャップを見つけ、ボットを繰り返し打ち負かすことができました。つまり、まだ改善の余地があるということです。
これは、OpenAIのDOTAチームと世界チャンピオンチームの写真です。OpenAIチームが立っていて、人間のプレイヤーである世界チャンピオンのDOTAチームが座っています。これは本当に楽しいプロジェクトでした。
面白いことに、私たちのボットに負けた後、人間の世界チャンピオンはプレイスタイルを変え、ボットとの対戦から学んだことで、他のチームに対してより高い頻度とより大きなマージンで勝利できるようになりました。詳細な論文がまもなく公開される予定です。
次に、もう1つの非常に楽しいプロジェクトについてお話ししたいと思います。DOTAプロジェクトと非常に似ています。環境があり、ディープ強化学習があり、他のエージェントとゲームをプレイするエージェントがいます。エージェントが上手くなるにつれて環境がより複雑になることを期待しています。
私たちは、興味深いツールの使用が形成される可能性のある環境をデザインできるかどうかを見たいと思いました。ここに、エージェントが鬼ごっこをするという小さなボックス環境をデザインしました。青いエージェントが隠れる側で、赤いエージェントが探す側です。
トレーニングの初期段階では、彼らはただ右往左往しているだけで、あまり何もしていませんでした。トレーニングが進むにつれて、探す側は隠れる側を捕まえることを学びました。さらにトレーニングが進むと、隠れる側はバリケードを築くことを学び、探す側は近づけなくなりました。
その後、隠れる側はバリケードを築くことを学びましたが、探す側はスロープを使って隠れる側に近づくことを学びました。そこで隠れる側は、探す側が捕まえられないようにスロープを掴むことで対応しました。
ここでの面白い点は、私たちの動機が「非常に興味深いシミュレーション環境をデザインするのは難しいが、エージェントが賢くなれば環境の一部として環境がより興味深くなることがわかっている」という考えに沿っていたことです。人間の世界が興味深いのは、他の人間がいるからです。雨や太陽といった要素はありますが、本当に人間社会を作り上げているのは人間なのです。
これが、この研究の一部のインスピレーションでした。小さな環境を作り、強化学習が興味深い複雑性と、ある程度知的な行動を生成できるかどうかを少し試してみることができるでしょうか。
私たちは多くのバリエーションを試しました。その1つが、ここにあるようなすべての壁がない場合です。ここでは、探す側がすべての物体を移動させます。スロープをロックしているのがわかりますね。これで探す側はスロープを使えなくなります。探す側は隠れる側を捕まえられなくなり、隠れる側は自分たちのための小さな要塞を築きました。
ここで私のお気に入りの部分をお見せしましょう。この画像では、探す側が小さな要塞を作り、2つの小さなスロープに小さなロックアイコンを置いているのがわかります。意図としては、「これらのスロープにロックがあれば、探す側は私の小さな要塞に入れない」というものでした。しかし、探す側がどうするか見てください。ただキューブを押して、そのキューブの上に乗ることができました。
これは基本的に完全に予想外でした。以前の鬼ごっこの行動では、私たちはこれが欲しいものだと考えていました。学習の自然な進化がこれらの戦略を生み出すような環境をデザインしようとしましたが、彼らはこのようなことも行いました。これは予想外でした。
どうやってこれを作るのでしょうか?これは創造的な問題解決と言えるでしょうか?確かに創造的です。そのため、私の意見では、自己対戦には非常に興味深い点があります。将来的には、非常に賢いエージェントが自分たちの小さな社会を運営する、はるかに複雑で興味深い世界を作り出せる可能性があります。
ああ、そうそう、前の結果について1つ重要なことを言い忘れていました。これらの単純な行動を得るには、約5億エピソードが必要でした。つまり、かなり高価だったということです。ディープ強化学習はデータを大量に必要とするように見えるという正しい観察ができます。つまり、コンピューターゲームや他のシミュレーション環境には素晴らしいですが、現実世界には適用できない可能性があります。それは妥当な批判です。
しかし、ここで私たちの別の結果についてお話ししたいと思います。DACTYLという人型ロボットハンドで、ルービックキューブを解くことができました。ここで最後の解決ステップを見ることができます。
私たちが行ったのは、完全にシミュレーションで訓練することでした。実際、私たちはシミュレーションから現実への移行問題を解決するために懸命に取り組みました。ここで大きな考え方を説明したいと思います。
DOTAの研究や、道具の使用が現れるシミュレーション環境の研究から見てきたように、ディープ強化学習は非常に強力です。良いシミュレーターがあれば、多くのことができます。基本的に何でもできます。
ロボット工学に関しては、シミュレーションで強化学習を使えば、シミュレーションされたロボットに何でもさせることができます。私たちの考えは、「明らかにシミュレーションで何でもできる。シミュレーションから現実への問題も解決でき、何らかの方法でシミュレーションから現実世界に知識を移転できれば、ロボットは現実世界で協力できるだろう」というものでした。
これが非常に単純な問題ではない理由を少し説明したいと思います。根本的な理由は、現実世界を正確に測定することができないからです。このルービックキューブを例に取っても、異なる面の摩擦を正確に知ることはできませんし、質量も正確にはわかりません。ロボットの指の異なる部分がキューブとどのように相互作用するかもわかりません。
また、絶対的な精度でその位置を測定することもできません。つまり、キューブがどのように落ちるかを正確に予測することはできないのです。これは動的なオブジェクトなので、その場で対応する必要があります。
シミュレーションで何かを訓練し、それを単純に現実世界に移そうとしても、うまくいきません。ここで、この研究の基礎となった非常にシンプルなアイデアについてお話ししたいと思います。それはドメインランダム化です。
ドメインランダム化では、現実世界を正確にモデル化することを諦めます。代わりに、知らないことをすべてランダム化すると言います。キューブの質量がわからない?キューブの質量をランダム化しましょう。システムのさまざまな部分の摩擦がわからない?それらをランダム化しましょう。キューブのサイズがわからない?それもランダム化しましょう。
つまり、ニューラルネットワークポリシーを訓練し、これらのランダム化されたシミュレーションの1つに配置しますが、どのシミュレーションなのかは教えません。これらのランダム化されたシミュレーションをすべて解決するために、ポリシーは適応する必要があります。適応することを学ぶ必要があるのです。
もし本当に新しい設定やシミュレーションに適応することが上手くなれば、おそらく現実世界にも適応できるでしょう。それがどのようにうまくいったか、お見せしましょう。
ロボットハンドがルービックキューブを完全に解く過程の動画の一部をお見せします。成功しました。解決過程をよく見ていると、時々キューブが落ちそうになり、指がぎりぎりのところでキャッチしているように見えることがあったことに気づいたかもしれません。明らかに、状況に応じてその場で反応し、問題を解決しているのです。
もう1つ強調したいのは、自動ドメインランダム化のアイデアです。ドメインランダム化を行う際の課題の1つは、ランダム化の範囲を設定することです。各パラメータをどこまでランダム化すべきかということです。
ここで私たちは、問題が難しいままであることを確認するために、ランダム化の範囲を徐々に増やす方法を考案しました。シミュレーションされたポリシーが特定のバージョンの問題を解決することが上手くなるとすぐに、ランダム化の範囲を増やしてより難しくするのです。
この画像では、自動ドメイン組織化によって決定された、トレーニングが進むにつれてのキューブのサイズの範囲が見えます。この技術には2つの利点があります。1つは、ハイパーパラメータの調整がはるかに簡単になることです。もう1つは、結果がはるかに良くなることです。手動で調整したドメインランダム化と比較して、はるかに優れたロバスト性を達成します。
ここでも大規模な強化学習を使用しました。重要なことは、訓練時にシミュレーションで13,000年分の経験が必要だったということです。しかし、ポリシーネットワークと価値ネットワーク自体はかなり小さいものです。
ここで技術的な詳細を1つ挙げると、価値ネットワークは、ポリシーがアクセスできない秘密のシミュレーション状態にアクセスできました。例えば、ポリシーをシミュレーションされた世界に置いて、一部の摩擦がどのようなものか分からない場合、価値関数はそれらの摩擦を知ることが許可されています。これによって学習が相当加速されました。
そして、はい、トーナメントで使用される標準的な方法でキューブをスクランブルした場合、60%のスクランブルを解くことができます。60%解くというのは、キューブを一度も落とさずに最初から最後まで解くということです。つまり、非常に多くの動きを行う5分間の連続的な操作について話しています。
キューブを絶対的な最大限までスクランブルした場合、現時点で20%の確率で解くことができます。ハードウェアとセンサーが良くなれば、成功率は大幅に上がると考えられます。
興味深い事実として、このロボットハンドを製造している会社は、年間約10台しか販売していません。というのも、プログラムする方法が明確ではないからです。より一般的に使用されるようになれば、より堅牢になり、性能も向上するでしょう。
いくつかのロバスト性能もお見せしたいと思います。ここでは、明らかに訓練されていないことを行っています。それはゴム手袋です。ロボットハンドにゴム手袋を付けると、少し時間がかかり、少し苦戦しますが、最終的には成功します。
これはかなりの外乱です。もちろん、例えば実際のデータでトレーニングすることでさらに改善できます。このシステムは全くそれを行っていません。完全にシミュレーションでトレーニングされていますが、シミュレーションでトレーニングし、非常に大量の強化学習トレーニングデータが必要だとしても、実際に有用なシステムを構築できることを示しています。
これらのシステムは、シミュレーションで実際にトレーニングされていない状況であっても、非常に迅速に適応する能力を持つことができるのです。これが本当にここでの教訓であり、メッセージです。ディープ強化学習はトレーニングに多くのデータを必要としますが、結果として得られるシステムは、実際に非常に速く適応する能力を持つことができるのです。
また、異なるルービックキューブの進化を示す歴史的な流れもお見せしたいと思います。しばらくの間、私たちはフェイススペースと呼ばれるセンサーを使用していました。これは、キューブに埋め込まれた小さな発光ダイオードがあり、特殊なカメラがこれらの発光ダイオードの位置を記録し、推測するというものです。
最初の3つのキューブはフェイススペースに基づいていました。そして最後のキューブは、面の向きを測定するセンサーに基づいていましたが、キューブの全体的な状態は推定視覚で測定されていました。これがOpenAIロボティクスチームの流れです。
はい、長期にわたるプロジェクトで、その進歩を見るのは本当に楽しかったです。
最後に、大規模な生成モデルについてお話ししたいと思います。特にGPT-2について話します。これは大規模な言語モデルで、非常に優れたテキスト生成能力を持ち、多くのNLP問題を非常にうまく解決できることがわかりました。
現時点で、このようなモデルはインターネット上で公開され、多くの人々がテキストをどのようにうまく生成するかを見てきました。ここでは、私たちの研究の歴史、どのようにしてセンチメントニューロンからGPT-2に至ったかについて少し時間を割いてお話ししたいと思います。
2年前、私たちはAmazonレビューの次の文字を予測するために大規模なLSTMを訓練しました。そして、そのLSTMの隠れ状態がセンチメントの予測に非常に優れていることに気づきました。
その後、Transformerが登場し、TransformerはLSTMよりも優れているはずだと考えました。そこで、Transformerで同じ作業を行い、それがGPTにつながりました。すでにそのモデルは、モデルがリリースされた当時の以前の最先端の技術と比較して非常に大きな改善を達成することができました。それでもまだ比較的小さなモデルでした。
そして、GPT-2をリリースしました。これは単に、ウェブテキストという多様性の高いデータで訓練された大規模な言語モデルです。このモデルがリリースされたとき、多くの異なる言語モデリングタスクや、Winogradeスキーマのようなタスクでかなりの改善を達成することができました。
Winogradeスキーマがどのように機能するか、そしてそれが言語モデリングにどのように関連しているかを説明したいと思います。
ここに例があります。「トロフィーは茶色のスーツケースに入りません。なぜなら、それが大きすぎるからです。」この場合、「それ」という言葉がトロフィーを指していることがわかります。
しかし、代わりに「それは茶色のスーツケースに入りません。なぜなら、それが小さすぎるからです。」と言えば、「それ」がスーツケースを指していると結論づけることができます。
言語モデルでこれをテストする方法は、単に「それ」という言葉を「トロフィー」または「スーツケース」に置き換えて、対数確率を測定するだけです。これは言語モデルで簡単にできます。
ああ、大規模な言語モデルでできるもう1つの面白いことは、質問をして、どのような回答を得られるかを見ることです。時にはかなりうまくいきます。
例えば、質問回答タスクからのデータセットを取り、テストセット内のすべての質問をモデルが割り当てた信頼度でソートしました。ちなみに、テストセットと言いましたが、これはすべてゼロショットです。つまり、モデルが割り当てた信頼度でソートしただけです。
「『種の起源』という本を書いたのは誰ですか?」と尋ねると、モデルは「チャールズ・ダーウィン」と生成します。では、ミスを見つけてみましょう。「最初のスター・ウォーズ映画はいつ公開されましたか?」「1997年」。実際、これは正解です。
では、ミスはどこでしょうか。ああ、このページの一番下に、「オリジナルの『ターミネーター』でジョン・コナー役を演じたのは誰ですか?」という質問があります。ここでモデルは間違えて「アーノルド・シュワルツェネッガー」と答えています。
このように、言語モデルを改良すると、構文に焦点を当てるのをやめて意味に焦点を当て始めるのがわかります。これは理にかなっています。構文に焦点を当て終わったら、次に何に焦点を当てるのでしょうか?意味に焦点を当てるのは妥当なことのように思えます。
ここに要約の別の例があります。読み上げはしませんが、知っておく必要があるのは、すべてがゼロショットだということです。これはどういう意味でしょうか。言語モデルにこれら2つの段落をコンテキストとして与え、その後、スライドの右側にある質問と回答のペアのプロンプトを与えました。
これを行う理由は、モデルに質問に答えてほしいということをゼロショットで教えるためです。質問と回答、質問と回答、質問と回答、質問と回答があり、そして「彼らは山に登りましたか?」と尋ねると、モデルは「エベレスト」と答えます。
これらの例をチェックすることをお勧めします。非常に興味深いです。繰り返しますが、これはすべてゼロショットです。モデルはこの問題を解決するように明示的に訓練されていません。これは本質的に言語モデリングをうまく行うことから生まれる特性です。
ゼロショット学習のもう1つの興味深い例は、要約を行いたい場合です。段落を与え、その後に「TL;DR」(長すぎるので読まない)を付けると、それなりに良い要約を生成します。
また、ゼロショット翻訳も実現しました。フランス語の文とそれに相当する英語の文、別のフランス語の文と別の英語の文を与え、言語モデルのコンテキストサイズに収まるように10個程度しか与えなくても、驚くほどのゼロショット翻訳を達成できます。まだ完全ではありませんが、長い道のりがありますが、モデルがタスクを理解していることは encouraging(励みになる)です。
クールなサンプルはスキップしますが、リリース段階について簡単に触れたいと思います。大規模な言語モデルを一度にリリースするのではなく、段階的にリリースしました。最初に小さなものをリリースし、その後、いくつかの大学の研究室と協力して、これらの大規模なモデルを研究しました。
私の見方では、基本的に機械学習はより強力になっています。今、私たちは機械学習の青年期の終わりの段階にいるように感じます。将来、モデルは現在よりもかなり強力になり、誤用しやすくなるでしょう。そのため、段階的リリースの先例を作ることが望ましいのです。
最後に、小さなボーナスをお見せしたいと思います。GPT-2と全く同じモデルを使用し、データセットをMIDIに置き換えたらどうなるでしょうか。これが結果です。
[音楽]
そして、これは長い間続きます。
要約すると、私が皆さんにお見せしたのは、過去1年間にOpenAIで生み出した結果の一部です。この講演のタイトルを「ディープラーニングの力」としたのは、これらの結果のシンプルさゆえです。
単に強化学習をスケールアップするだけで、以前は解決不可能だと思われていた非常に難しい問題を解決できることを示しました。そして、大規模な生成モデルも同様に、以前に信じられていたよりもはるかに強力であることがわかりました。
私は、将来さらに多くの刺激的な進歩が見られると思います。以上で私の話は終わりです。ご清聴ありがとうございました。


この記事が気に入ったらサポートをしてみませんか?