DeepMindのAI「AlphaCode」は競技プログラミングレベルのコードを書ける

DeepMind(ディープマインド)は、任意の問題を解決するためにコードを書くことができるAIを開発した。このAIはコーディングチャレンジに参加し、中間あたりの成績を収めたことで実証されている。まだソフトウェアエンジニアの仕事を奪うまでには至っていないが、基本的な作業の自動化に役立つ可能性がある。

Alphabet(アルファベット)の子会社であるDeepMindのチームは、できる限り多くの形で知能を創造することを目指しており、最近ではもちろん、多くの優秀な頭脳が取り組んでいる作業としてコーディングが挙げられる。コードは、言語、論理、問題解決の融合であり、コンピュータの能力に自然に適合すると同時に、難題でもある。

もちろん、このような試みは初めてではない。OpenAIには独自の自然言語コーディングプロジェクト「Codex」があり、GitHub Copilotと、Microsoftが提供する、GPT-3にコードを完成させるテストの両方を支えている。

関連記事:OpenAIが自然言語AIコーダーのCodexをアップグレード、プライベートベータを開始

DeepMindの論文では、競技プログラミングを狙う理由を説明する中で、フレンドリーながらも競争相手を遠回しに侮辱している。

近年の大規模な言語モデルは、コード生成能力に優れており、簡単なプログラミングタスクをこなすことができるようになってきた。しかし、これらのモデルは、単に命令をコードに変換するだけでなく、問題解決能力を必要とする、より複雑で見たことがない問題で評価すると、いまだに性能が低い。

それについてOpenAIは言いたいことがあるかもしれないが(そして、同社の次の論文ではこの点についての反論が期待できるだろう)、研究者たちが指摘するように、競技プログラミングの問題は一般的に、既存のコードAIには見られないレベルの解釈と創意工夫の組み合わせを必要とする。

DeepMindは、この分野に挑戦するために、GitHubの厳選されたライブラリと、コーディング問題とその解決策のコレクションを使って、新しいモデルをトレーニングした。言葉にすると簡単に聞こえるが、些細なことではない。完成したモデルを、この種のコンテストを主催するCodeforcesが最近開催した(言うまでもなく、AIはそれ以前に見ていない)10のコンテストに投入した。

その結果、50パーセンタイルを少し超える中位の成績を収めた。人間であれば中途半端な成績かもしれないが(決して簡単ではない)、機械学習(ML)モデルの最初の試みとしては、かなり注目に値する。

CodeforcesのMike Mirzayanov(マイク・ミルザヤノフ)CEOはこう述べている。「AlphaCodeの成績は、私の期待を超えていたと断言できます。なぜなら、競技プログラミングでは単純な問題であっても、アルゴリズムを実装するだけでなく、それを発明することも求められることが多いので(これが一番難しい)、半信半疑でした。AlphaCodeは、新人の有望なコンペティターと同レベルの性能を発揮してのけました」。

AlphaCodeが解決した課題とそのソリューションの一例は以下の通り。

画像クレジット:DeepMind

(DeepMindへのメモ:SVGはこのような図には厄介なフォーマットだ。)

ご覧のとおり、これは賢いソリューションだが、エンタープライズ向けSaaS級のものではない。心配無用、それはもっと先の話だ。今は、このモデルが複雑に書かれた課題を一度に解析して理解し、ほとんどの場合、首尾一貫した実行可能な回答を生み出すことができると示すだけで十分だ。

DeepMindチームはこう書いている。「コード生成に関する私たちの探求には改善の余地が大きく残されており、将来はプログラマーの生産性を向上させ、現在コードを書いていない人々にもこの分野を開くことができるような、よりエキサイティングなアイデアを示唆しています」。最後の部分は、筆者に当てはまる。もしAlphaCodeがCSSでレスポンシブレイアウトを変更できるなら、私よりもよほど優れている。

こちらのデモサイトでは、AlphaCodeがどのように構築されたのか、また、さまざまな問題に対するAlphaCodeの解決策をより詳しく見ることができる。

画像クレジット:Krisztian Bocsi/Bloomberg / Getty Images

[原文へ]

(文:Devin Coldewey、翻訳:Aya Nakazato)