プログラミングAIが上級者99.5%を凌駕の衝撃

プログラミングAIがコンテストに参加した上級者99.5%を勝るスコアを出した。ソフトウェアエンジニアの仕事をこれまでになく拡張するだけでなく、初学者への障壁も取り払うことになる。


12月6日に公開されたグーグルのAIコード生成ツール「AlphaCode 2」は、同日に発表されたAIモデル「Gemini Pro」を搭載しており、オンライン・プログラミング・コンテストに参加した参加者の99.5%を上回るスコアを記録したと報告されている。

Google DeepMindの研究者たちは、AlphaCode 2を作成するために、Gemini Proをデータセット上で微調整し、問題解決能力を強化した。このデータセットには、プログラミング競技サイトCodeForcesから取得した約15,000の問題と、人間が書いたコードのサンプル3,000万が含まれる。

このモデルは、「より質の高い」追加データセットでさらに微調整されたが、技術報告書によると、どのようなデータが使われたのか、具体的にどの程度使われたのかは明確ではないようだ。それでも、AlphaCode 2が12のCodeForcesコンテスト(合計8,000人以上のプログラマーと競った)で77の問題をテストしたところ、43%の問題を解くことができた。別の問題セットの25パーセントを解くことができた、初代のAlphaCodeから進歩している。

CodeForcesのランキングに当てはめると、AlphaCode 2は平均85パーセンタイルに位置し、つまりCodeforcesの「エキスパート」と「マスター候補」カテゴリーのちょうど中間に位置し、85パーセントの参加者よりも優れたパフォーマンスを発揮していると推定される、と研究者は主張した。

AlphaCode 2は、出場した12のコンテストのうち2つのコンテストでは、参加者の99.5パーセントを上回った。ただし、機械と人間では競争条件が異なっていた。人間は1つの問題に対して1つの解答を行うが、AlphaCode 2は各問題に対して最大10種類の解答を提出することができ、そのうちの1つが正しければ得点となる。

AlphaCode 2は荒々しい問題の解き方をしている。問題が与えられると、AlphaCode 2は約100万種類のコードサンプルを生成する。問題の説明と無関係で一致しないランダムなスクリプト、あるいは間違った答えを生成することも躊躇しない。

AlphaCode 2が作成したコードサンプルのうち、95%はフィルタリング工程で除外され、残る5万のプログラムがクラスタリング・アルゴリズムによって類似性でランク付けされ、それぞれが異なるグループに分けられる。次に、このプロセスで形成された10の主要なクラスタが、精度の予測に特化した別のGemini Proモデルを使用して評価される。こうして、10の異なるクラスターにわたるサンプルが最も優れたものから最も劣るものまで順位付けされ、各クラスターのトップにランクされたものが選ばれる。

人間のプログラマーは通常、問題を解決するためのさまざまな戦略を考え、最も有望なアイデアに絞ってそれを書き上げる。しかし、AlphaCode 2の総当たり作戦は、コンピュータ資源をたくさん使うことに依存する。「AlphaCode 2の素晴らしい結果にもかかわらず、最高の人間のコーダーのパフォーマンスに確実に到達できるシステムを見るまでには、まだまだ多くのことが必要である。我々のシステムは多くの試行錯誤を必要とし、大規模に運用するにはコストがかかりすぎる。さらに、明らかに悪いコードサンプルをフィルタリングできるかどうかに大きく依存しています」と研究者たちは認めている。

それでも、AlphaCode 2は旧AlphaCodeより大きく改善されており、サンプルを抽出する効率は1万倍以上だと研究者らは主張した。AlphaCodeが100万サンプル必要なところを、AlphaCode 2は100サンプルしか生成しないようだ。

Google DeepMindは、Gemini Proよりも大きく強力な大規模言語モデルであるGemini Ultraを使用することで、さらに優れたコード記述モデルを構築できると考えており、その能力を開発者に提供できるよう努力しているとみている。