DeepMindは2月2日、同社が開発した問題解決型AIによるコード生成システム「AlphaCode」が、Codeforcesの競技プログラミングで上位54%の推定ランクを達成したと発表した。

一般的に競技プログラミングでは、ある制約の中で道路や建物を配置する方法を見つけたり、カスタムボードゲームに勝つための戦略といった問題を参加者が受け取り、ソリューションとなるプログラムを作成する。機械学習技術はテキストデータの理解や生成で大きな進歩を遂げてきた一方で、問題解決能力は比較的単純な数学やプログラミングの問題であったり、既存の解決策を検索してコピーするソリューションにとどまっていた。創造的なソリューションが求められるコーディングコンペティションで既存のAIシステムは優れた成績を収められなかったが、AI界で勢いを増すTransformerモデルの近年の進歩に、大規模なサンプリングとフィルタリングを組み合わせたAlphaCodeによってAIの問題解決能力を引き上げることに成功した。

公開されているGitHubコードをデータにモデルを事前学習させ、Deepmindのプログラミングデータセットで調整。評価時には、問題ごとに大量のC++とPythonのプログラムを作成し、それらをフィルタリング、クラスタリング、再ランクして10個の候補プログラムに絞り込んで外部評価に送る。その自動化されたシステムが、デバッグ、コンパイル、テスト、提出といったプロセスに相当する。

Deepmindは、Codeforcesの協力を得て最近開催された10のコンテストへの参加をシミュレーションしてAlphaCodeを評価した。Codeforcesでは単純な問題でもアルゴリズムの実装だけではなく、それを生み出すことを求め、そこに重点を置いている。

Codeforcesでは時間内に解いた問題数で参加者をランキングしており、AlphaCodeの成績は5000人以上の参加者の上位54.3%。ほぼ中央値でトップレベルには程遠いのが現状だが、AIの問題解決能力という点で認識を変える進歩であり、CodeforcesのファウンダーであるMike Mirzayanov氏は「AlphaCodeの成績は私の期待以上だと断言できます」とコメントしている。

  • AlphaCodeに解かせた問題とAlphaCodeのソリューション

    AlphaCodeに解かせた問題「D.Backspace」と、AlphaCodeが導き出したソリューション(DeepMindブログから)

DeepMindによると、現時点でAlphaCodeのスキルセットは競技プログラミングの領域内でしか適用できないが、その可能性はアシスタントとしてプログラマーを支援して生産性を向上させ、またプログラマーではない人達にプログラミングをより身近なものにする。そして、問題解決型のAIの成長が現実の様々な問題を解決する未来のアプリケーションの扉を開くものになると期待している。