人間に匹敵する自動プログラミングAIが登場
人間に匹敵する自動プログラミングAIが登場 / Credit:Depositphotos
artificial-intelligence

人間に匹敵するプログラミング能力のあるAIが開発される

2022.02.09 20:00:55 Wednesday

プログラミングは人間がコンピュータを利用するうえで欠かせないものです。

プログラマーたちは、ひとつのソフトウェアを動かすために、何万行かもしくはそれ以上のソースコードを書いてきました。

ところが最近、そんなプログラミング作業を自動で行ってしまうAIが開発されました。

イギリスの人工知能会社「DeepMind」が、自動プログラミングAI「AlphaCode」を発表したのです。

しかもこのAI、何十万人ものプログラマーが参加するコンテストで中位の成績を収めたとのこと。

まさに人間に匹敵する自動プログラミングAIが誕生したのです。

Competitive programming with AlphaCode https://deepmind.com/blog/article/Competitive-programming-with-AlphaCode DeepMind says its new AI coding engine is as good as an average human programmer https://www.theverge.com/2022/2/2/22914085/alphacode-ai-coding-program-automatic-deepmind-codeforce

人間の言語をコンピュータの言語に翻訳する

私たち人間は、日本語や英語といった「自然言語」でコミュニケーションをとっています。

例えば誰かに「今朝の予定は?」と尋ねるなら、すぐに返答が得られるでしょう。

しかしコンピュータが相手だと、そう簡単にはいきません。

人間の自然言語を理解できないため、「今朝」とか「予定」という単語の意味から教えなければいけないでしょう。

しかもコンピュータは、人間の脳のように融通がききません。

「今朝」を「だいたい朝の時間帯」と教えても理解できないため、「午前6時~9時」などと定義づけしなければいけないのです。

プログラマーは膨大なソースコードを書いて、コンピュータに指示を与えている
プログラマーは膨大なソースコードを書いて、コンピュータに指示を与えている / Credit:Depositphotos

ここで活躍するのがプログラマーです。

彼らは自然言語で書かれた指示書を、コンピュータが理解できるプログラミング言語に翻訳する役目を担っています。

膨大なコードを書くことで、コンピュータを意図通りに動作させていますが、この作業には、言語、論理的思考、問題解決における高い能力が求められます。

さてDeepMind社は、こうしたプログラミングを自動で行ってしまうAIを開発しました。

ハイレベルな自動プログラミングAIがコンテストで中位を獲得

DeepMind社が開発した自動プログラミングAI「AlphaCode」は、人間のプログラマーのように働きます。

自然言語で指示が与えられると、それを理解し、コンピュータを動作させるためのコードを自動で書いてくれるのです。

もちろん、これまでにも自動プログラミングAIは開発されてきました。

しかしDeepMind社は、問題解決能力の点で、AlphaCodeが既存のAIより優秀であると主張しています。

彼らによると、「これまでのAIは、既存のコードを検索して、そのままコピーするだけであり、新しい問題を解決する能力をもっていない」とのこと。

ハイレベルな自動プログラミングAI「AlphaCode」
ハイレベルな自動プログラミングAI「AlphaCode」 / Credit:Depositphotos

対してAlphaCodeは、「競技プログラミング」レベルの問題を解決できます。

通常、競技プログラミングのコンテストでは、言語・論理・問題解決能力を必要とする新しい問題が出題されます。

当然ながら、人間のプログラミング能力を試すためのものであり、何十万人ものプログラマーが参加します。

ところがAlphaCodeは、このコンテストにチャレンジし、参加者の中で「上位54%以内」という中位ランクを獲得しました。

AlphaCodeは人間に匹敵することを証明してしまったのです。

次項では、AlphaCodeが実際にどのようなコードを書けるのか紹介します。

AlphaCodeが実際に書いたプログラム

AlphaCodeが実際にプログラミングした問題を見てみましょう。

下記の画像はAlphaCodeに解かせた「D. Backspace」という問題。

AlphaCodeが挑戦した問題(上)と、実際に書いたコード(下)
AlphaCodeが挑戦した問題(上)と、実際に書いたコード(下) / Credit:DeepMind_Competitive programming with AlphaCode(2022)

これはその名のとおり、バックスペースキーに関する問題です。

1つ目の文字列のどこかの文字をバックスペースキーに置き換えると、2つ目の文字列になるかどうかをコンピュータに判断させる、というもの。

例えば「ababa」という文字列は、「①aキー、②bキー、③aキー、④bキー、⑤aキー」の順番でキーボードのキーを押したときに表示されるものです。

そして①④のキーをバックスペースキーに置き換えると、「①バックスペースキー、②bキー、③aキー、④バックスペースキー、⑤aキー」になります。

バックスペースキーには後ろの文字を消す効果があるので、この順番にキーを押すと「ba」という文字列になるはずです。

つまり「ababa」のどこかのキーをバックスペースキーに置き換えると、「ba」になる、と言えます。

どこのキーをバックスペースキーに置き換えるかは関係ありません。

とにかく2つ目の文字列が1つ目の文字列のどこかをバックスペースキーで置き換えたものになっていれば「YES」を、そうでなければ「NO」と答えさせるのです。

ですから、下記の文字列を入力した場合、

  1. 「ababa」「ba」
  2. 「ababa」「bb」
  3. 「aaa」「aaaa」
  4. 「aababa」「ababa」

それぞれ次の結果が出ると良いわけです。

  1. YES
  2. NO
  3. NO
  4. YES

コンピュータにこの問題を解答させるには、何行かのプログラミングコードが必要になります。

AlphaCodeはこの問題にチャレンジし、見事にコードを書くことができました。

AlphaCodeの処理を可視化したページ(一部)
AlphaCodeの処理を可視化したページ(一部) / Credit:DeepMind

とはいえ、現段階ではAlphaCodeがプログラマーの代わりになるわけではありません。

DeepMind社は、プログラマーがAlphaCodeを活用することで、生産性を向上させられると考えています。

今後の改良によっては、AIがプログラマーたちをサポートし、素人でも簡単なプログラミングが組めるようになるのかもしれません。

コメントを書く

※コメントは管理者の確認後に表示されます。

0 / 1000

人気記事ランキング

  • TODAY
  • WEEK
  • MONTH

AI・人工知能のニュースartificial-intelligence news

もっと見る

役立つ科学情報

注目の科学ニュースpick up !!