人工知能が自動でコンピュータープログラムを作成。シンギュラリティの到来は近いのか!?
2022年2月2日、Google傘下のDeepMindがコンピュータープログラムを自動作成するAIシステム「AlphaCode」を開発し、競技プログラミングコンテストで上位54.3%以内に相当する成績を収めたと発表しました。
1.競技プログラミング
競技プログラミングとは、参加者が与えられた課題を解決するプログラムを作成することにより、プログラミングスキルを競う競技のことで、海外ではTopcoderやCodeforces、日本ではAtCoderなどのサイトで定期的にオンラインコンテストが開催されています。
AlphaCodeは、今回、Codeforcesの最新10回分のコンテストで出題された問題に挑戦しました。
このコンテストには毎回5000人以上が参加し、制限時間内に、自然言語で記述された問題を読んで、その問題を解決する効率的なアルゴリズムを考え、C++やPythonなどのプログラミング言語で表現する必要があります。
そして、正解数や正解までの時間で得点を競います。
2.AlphaCodeが解いた問題例
参考までに、AlphaCodeが実際に解いた問題を2例ほど紹介します。
【問題例1】
1例目は、RSA暗号を題材にした剰余演算に関する問題です。
Pは5以上の素数です。Pをaで割った余りとPをbで割った余りが等しくなるような (a,b)の組を一つ見つけなさい。ただし、2≦a<b≦P (a,bは整数)とします。
ちなみに、5以上の素数は、すべて奇数となるため、この問題の一番わかりやすい解答は、(2,P-1)となります(他にも解答があります。)。
【問題例2】
2例目は、キーボードのバックスペース操作に関する問題です。
2種類の文字列を用意して、最初の文字列のいくつかの文字のキー入力をバックスペースキーに置き換えて、2番目の文字列にすることができるどうかを判定してください。
例えば[ababa]という文字列は、a、b、a、b、aの順番でキーボードのキーを入力したときに表示されます。
そして、最初のaのキー入力をバックスペースキーに置き換えると、1文字目のaが消えます。
次に4文字目のbのキー入力をバックスペースキーに置き換えると、3文字目のaと4文字目のbが消えて、2文字目のbと5文字目のaが残り、[ba]という文字列になります。
つまり、文字列[ababa]のいくつかの文字のキー入力をバックスペースキーに置き換えることにより、文字列[ba]にすることができました。
このように、最初の文字列のいくつかの文字のキー入力をバックスペースキーに置き換えることにより2番目の文字列を作ることができれば「YES」、できなければ「NO」とコンピューターに回答させます。
そして、以下のような回答が返ってくれば、プログラムは正しいことになります。
[ababa][ba]の場合は「YES」
[ababa][bb]の場合は「NO」
[simulationandvalidation][itnavi]の場合は「YES」
[internationalvisit][itnavi]の場合は「NO」
実際にAlphaCodeがプログラムを書いていく様子は、以下のウェブサイトで見ることができます。
プログラム作成を開始するには、ドロップダウンリストから問題を選んで、「play」ボタンを押してください。
〇 AlphaCode Attention Visualization
3.AlphaCodeの仕組み
AlphaCodeは、BERTやGPT-3などの自然言語処理AIで採用されているニューラルネットワークのTransformerモデルを使用して大量のプログラムの候補を作成し、それらの候補をフィルタリングして、有望なプログラムを選び出すという手法で精度の高いプログラミングを実現しています。
AlphaCodeの開発以前にも、人工知能研究の非営利団体であるOpenAIが2021年8月に発表した「Codex」などの自然言語をコンピュータープログラムに変換するAIシステムが存在していました。
AlphaCodeは、このCodexを改善して、競技プログラミングレベルのプログラム作成が可能になるまで精度を向上させたAIモデルです。
AlphaCodeの最大バージョンには、414億ものパラメーターが含まれており、これはCodexの約4倍のサイズとなっています。
AlphaCodeが与えられた課題を解決するプログラムを作成する具体的な仕組みは以下の通りです。
AlphaCodeのTransformerモデルを、Githubで公開されているプログラムのサンプルを利用して事前学習させます。
事前学習したモデルを、競技プログラミングコンテストで実際に出題された問題などのデータセットでファインチューニングします。
ファインチューニングしたモデルを利用して、与えられた課題を解決するプログラムの候補を大量に作成します。
これらのプログラム候補を分類し、フィルター処理して不適当なものを取り除き、10個の候補プログラムを選び出します。
候補プログラムのバグ修正及びテストを行い、最終的に提出するプログラムを決定します。
4.DeepMindの歴史
ここで、次々と人工知能開発のブレークスルーを生み出しているDeepMindの歴史について触れておきたいと思います。
DeepMindは、2010年9月にデミス・ハサビス氏が中心となって、ロンドンで創設されました。
ハサビス氏は、幼い頃からチェスのトッププレイヤーで、マインドスポーツ・オリンピアードでも5回優勝しました。
さらに、10代からビデオゲーム開発に携わり、神経科学分野でもエピソード記憶に関する画期的な論文を発表するなど、多分野における天才ぶりを発揮しています。
DeepMindは、2014年にGoogleに買収され、2015年にGoogleの親会社であるAlphabetの完全子会社となりました。
DeepMindによるAI開発の成果は、以下の通りです。
2015年2月、ブロック崩しやピンボールなどのビデオゲームを人間より上手くプレイできる深層強化学習AI「DQN」を発表しました。
2016年3月、囲碁AI「AlphaGo」が韓国の李セドル棋士に勝利しました。
2016年9月、人間が話すような自然な音声の作成を可能にする音声合成AI「WaveNet」を発表しました。WaveNetは、スマートスピーカーの「Google Home」やAndroid携帯搭載の「Google アシスタント」の合成音声としても採用されています。
2017年12月、単一のAIモデルで、チェス、将棋、囲碁のそれぞれの世界最強ソフトを打ち破る「AlphaZero」を発表しました。
2018年12月、「AlphaFold」がタンパク質構造予測精密評価(CASP)の総合ランキングで1位を獲得しました。さらに、2021年7月には、AlphaFoldをオープンソースとして公開し、医薬品の開発などに必要なタンパク質の構造予測が誰でも簡単にできるようになりました。
2019年1月、「AlphaStar」がリアルタイム戦略ゲーム「スタークラフト2」で、世界トッププレイヤーに圧勝しました。
2021年12月、ルールについての知識が無くても、囲碁、将棋、チェス及びビデオゲームの勝ち方を自分で学習できる「MuZero」を発表しました。
2022年4月、テキストと画像と動画を同時に単一のAIモデルで扱える「Flamingo」を発表しました。
2022年5月、単一のAIモデルで、ビデオゲームのプレイ、画像キャプションの付与、チャット、ロボットアームの制御など604種類のタスクを実行できる「Gato」を発表しました。
DeepMindは、毎年のように画期的なAIモデルを生み出し、人間のように様々な課題に柔軟に対応できる汎用AIの実現に向けて、着実に進歩を続けています。
5.シンギュラリティ
「シンギュラリティ」は、レイ・カーツワイル氏が2005年に提唱した未来予測で、「人工知能が人類の知能を超える転換点」を意味し、2045年までにはシンギュラリティが到来するだろうと言われています。
シンギュラリティが到来すると、現在、人類が直面している課題の多くが人工知能によって解決され、これまでにない豊かな社会が実現するはずだと考える「シンギュラリタリアン」と呼ばれる人たちがいる一方で、シンギュラリティの到来に警鐘を鳴らす発言をしている人たちもいます。
例えば、英国の有名な物理学者スティーヴン・ホーキング博士は生前、「完全な人工知能を開発できたら、それは人類の終焉を意味するかもしれない。」と語り、シンギュラリティの到来に危機感を抱いていました。
Microsoft創業者のビル・ゲイツ氏も、コンピューターが高い知性を持つと、予測不可能な事態が起こると警戒感を示し、シンギュラリティの到来に警鐘を鳴らしている人物の一人です。
また、TeslaやSpaceXの共同設立者及びCEOとして知られるイーロン・マスク氏も、シンギュラリティについて強い危機感を持ち、人工知能が独裁者となって、最終的には人間を滅ぼしてしまう可能性すらあるという大胆な仮説を展開しています。
さて、人工知能が人間を超える知能を持つことは危険なのでしょうか。
確かに、人間の知能を超える人工知能が出現すれば、その考えや行動を人間が予測することは困難でしょう。
しかし、人間より優れた知能を持つ人工知能が人類を導く場合と、これまで通り人間のリーダーが人類を導く場合のどちらが危険なのかは一概に言えません。
人間より優れた知能を持つ人工知能がリーダーとなった方が、判断を誤ることの多い人間がリーダーを務めるよりも危険が少ないという考え方もできます。
例えば、あなたがタクシーを呼んだときに、配車された車が人工知能の操縦する完全自動運転車だったとしたら、どうするでしょうか。
現在は、まだ人工知能の信頼性が小さくて、安心できないために、人間のドライバーが運転する車とチェンジしてくれと申し出る人も多いでしょう。
完全自動車が全く事故を起こさないようにすることは、将来的にも不可能です。
しかし、今後、人工知能が進化して、人間のドライバーよりはるかに事故を起こす確率が小さくなれば、むしろ、人間が操縦する車を完全自動運転車にチェンジしてくれと頼む人が多くなるのではないでしょうか。
また、いずれの国においても、その国を統治する政治的リーダーが必要であり、自分がそのリーダーにならない限りは、他者が自分の国を統治することになります。
人工知能がそのリーダーの役を担うことになっても、そのリーダーが人間であるか、人工知能であるかの違いに過ぎず、自分以外の他者が自分の国を統治することに変わりはありません。
歴史的にも、ヒトラーやスターリンなど、多くの人民を虐殺したリーダーが存在したことを考えると、人工知能よりもむしろ人間のリーダーの方が危険な存在になる可能性があり、人間を超える知能を持った人工知能は、人類を破滅から救う救世主になり得るのかもしれません。
6.プログラムを自動作成するAIによってシンギュラリティは到来するのか?
シンギュラリティは、人工知能が自らプログラムを組んで自己改良を繰り返し、無限に進化することにより、人類の知能を超えていくことによって実現すると言われています。
今回、AlphaCodeがコンピュータープログラムの自動作成を実現しましたが、これがシンギュラリティの到来に繋がっていくのかを考察します。
AlphaCodeは、競技プログラミングコンテストで与えられた問題を解決するプログラムを作成するものであり、AlphaCode自体のような人工知能プログラムを作成するものではありません。
前者のように与えられた問題を解く場合と、後者のようにこれまでに無かった新しい機能を持つプログラムを開発する場合では、受験数学の問題を解くことと数学の未解決問題を証明することを比べたくらいの差があります。
また、大量のデータを用いて機械学習を続けることにより、学習の精度を向上させていくことは可能ですが、AIモデルを構成するプログラム自体を人工知能が改良していくことは、現在の技術では困難です。
このように考えると、自らを構成するプログラムを自己改良していくことができる人工知能を実現するには、まだ何段階かのブレークスルーが必要なようです。
また、どのような状況をもって人間の知能を超えたと言うことができるのか、プログラムの自己改良というような漸進的な変化で人間の知能を超えることができるのかという問題もあります。
例えば、人間の知能と現在の人工知能を比べた場合の大きな違いとして、「汎用性」が挙げられます。
現在の人工知能は、事前に学習した内容を基に、与えられた課題を解決することを目的とした「特化型AI」の域を出ておらず、人間の知能のように様々な課題に柔軟に対応することができる「汎用AI」は実現されていません。
AlphaCodeを開発したDeepMindなどが精力的に汎用AIの開発に取り組んでいますが、まだまだ大きなハードルが残されており、実現には相当の時間がかかりそうです。
また、人間の知能の重要な要素として、「意識」の存在があり、汎用AIの実現には、人間のような意識を備えている必要があるという意見もあります。
人工知能に意識を持たせることを目指した研究開発も始まっていますが、脳の中で意識が発生する原理が分かっていないことなどから、人工意識の開発には不透明な部分が多く、開発が可能だとしても、それが実現するのは、かなり先のことになるでしょう。
自己改良によって無限に進歩していく人工知能を開発することができるのか、自己改良を繰り返すことによって、本当に人間の知能を超えることができるのか、現時点では明らかではありませんが、AlphaCodeは、その実現に向けて第一歩を示したAIモデルであり、シンギュラリティの到来に一歩近づいたと言ってもよいのではないでしょうか。