プログラミングは人間がコンピュータを利用するうえで欠かせないものです。
プログラマーたちは、ひとつのソフトウェアを動かすために、何万行かもしくはそれ以上のソースコードを書いてきました。
ところが最近、そんなプログラミング作業を自動で行ってしまうAIが開発されました。
イギリスの人工知能会社「DeepMind」が、自動プログラミングAI「AlphaCode」を発表したのです。
しかもこのAI、何十万人ものプログラマーが参加するコンテストで中位の成績を収めたとのこと。
まさに人間に匹敵する自動プログラミングAIが誕生したのです。
目次
人間の言語をコンピュータの言語に翻訳する
ハイレベルな自動プログラミングAIがコンテストで中位を獲得
人間の言語をコンピュータの言語に翻訳する
私たち人間は、日本語や英語といった「自然言語」でコミュニケーションをとっています。
例えば誰かに「今朝の予定は?」と尋ねるなら、すぐに返答が得られるでしょう。
しかしコンピュータが相手だと、そう簡単にはいきません。
人間の自然言語を理解できないため、「今朝」とか「予定」という単語の意味から教えなければいけないでしょう。
しかもコンピュータは、人間の脳のように融通がききません。
「今朝」を「だいたい朝の時間帯」と教えても理解できないため、「午前6時~9時」などと定義づけしなければいけないのです。
ここで活躍するのがプログラマーです。
彼らは自然言語で書かれた指示書を、コンピュータが理解できるプログラミング言語に翻訳する役目を担っています。
膨大なコードを書くことで、コンピュータを意図通りに動作させていますが、この作業には、言語、論理的思考、問題解決における高い能力が求められます。
さてDeepMind社は、こうしたプログラミングを自動で行ってしまうAIを開発しました。
ハイレベルな自動プログラミングAIがコンテストで中位を獲得
DeepMind社が開発した自動プログラミングAI「AlphaCode」は、人間のプログラマーのように働きます。
自然言語で指示が与えられると、それを理解し、コンピュータを動作させるためのコードを自動で書いてくれるのです。
もちろん、これまでにも自動プログラミングAIは開発されてきました。
しかしDeepMind社は、問題解決能力の点で、AlphaCodeが既存のAIより優秀であると主張しています。
彼らによると、「これまでのAIは、既存のコードを検索して、そのままコピーするだけであり、新しい問題を解決する能力をもっていない」とのこと。
対してAlphaCodeは、「競技プログラミング」レベルの問題を解決できます。
通常、競技プログラミングのコンテストでは、言語・論理・問題解決能力を必要とする新しい問題が出題されます。
当然ながら、人間のプログラミング能力を試すためのものであり、何十万人ものプログラマーが参加します。
ところがAlphaCodeは、このコンテストにチャレンジし、参加者の中で「上位54%以内」という中位ランクを獲得しました。
AlphaCodeは人間に匹敵することを証明してしまったのです。
次項では、AlphaCodeが実際にどのようなコードを書けるのか紹介します。