AlphaCodeとの競技プログラミング

'AlphaCode競技プログラミング'

注意:このブログは2022年2月2日に最初に公開されました。2022年12月8日にScienceでの論文の発表に続いて、テキストを少し更新してこれを反映しました。

新しい問題の解決と競技プログラミングにおける新たなマイルストーンの設定

予測できない問題に対する解決策を作り出すことは、人間の知能にとっては当然のことです。これは経験に基づく批判的思考の結果です。機械学習コミュニティは、テキストデータの生成と理解において非常に進歩を遂げてきましたが、問題解決における進歩は比較的単純な数学やプログラミングの問題に限定されているか、既存の解決策の検索とコピーにとどまっています。

DeepMindの知能解決のミッションの一環として、我々はAlphaCodeというシステムを作成しました。AlphaCodeは競技レベルのコンピュータプログラムを自動生成することができます。AlphaCodeは、批判的思考、論理、アルゴリズム、コーディング、自然言語理解を組み合わせた新しい問題を解決することにより、プログラミング競技において参加者の上位54%にランクインすることができました。

Scienceの表紙に掲載された我々の論文では、AlphaCodeについて詳しく説明しています。AlphaCodeは、トランスフォーマーベースの言語モデルを使用して前例のないスケールでコードを生成し、その後有望なプログラムの小さなセットにスマートにフィルタリングします。

Codeforcesという人気のあるプラットフォームでホストされる競技を使用してパフォーマンスを検証しました。Codeforcesは定期的な競技を開催し、世界中から数万人の参加者が集まり、自分のコーディングスキルをテストします。我々は、トレーニングデータよりも新しい10の競技を評価するために選びました。AlphaCodeは、中央値の競技者とほぼ同じレベルまでランクインし、AIによるコード生成システムがプログラミング競技において競技レベルのパフォーマンスを達成した初めての例となりました。

我々の結果を他の人々が活用できるようにするために、競技プログラミングの問題と解決策のデータセットをGitHubで公開しました。このデータセットには、プログラムが正しいことを確認するための包括的なテストも含まれており、現在のデータセットに欠けている重要な機能です。このベンチマークが問題解決とコード生成のさらなるイノベーションにつながることを期待しています。

問題はCodeforcesからのものであり、解決策はAlphaCodeによって生成されました。

競技プログラミングは人気のある挑戦的な活動であり、何十万人ものプログラマーが経験を積み、楽しく協力的な方法で自分のスキルを披露するためにコーディング競技に参加しています。競技中、参加者は一連の長い問題の説明とそれらを解決するためのプログラムを書くための数時間を与えられます。

典型的な問題には、特定の制約内で道路や建物を配置する方法を見つけたり、カスタムボードゲームで勝つための戦略を作成したりすることが含まれます。参加者は主に解決した問題の数に基づいてランク付けされます。企業はこれらの競技を採用ツールとして使用し、ソフトウェアエンジニアの採用プロセスでも同様の問題が一般的です。

“AlphaCodeの結果は私の期待を上回るものであると安心して言えます。単純な競技問題でも、アルゴリズムを実装するだけでなく(これが最も困難な部分です)、アルゴリズムを発明する必要があることがしばしばあります。AlphaCodeは有望な新しい競技者と同等のレベルでパフォーマンスを発揮しました。未来にどんな進展があるかを楽しみにしています!” ‍ – Mike Mirzayanov, Codeforces創設者

これらの競技で優れた成績を収めるためには、既存のAIシステムでは対応できない問題解決能力が必要です。しかし、大規模なトランスフォーマーモデル(最近の研究でコード生成能力を示している)と大規模なサンプリングとフィルタリングの進歩を組み合わせることで、解決できる問題の数が大幅に増えました。モデルは、選択されたパブリックGitHubコードで事前トレーニングし、比較的小さな競技プログラミングデータセットで微調整します。

評価時には、各問題に対して以前の研究よりも桁違いに多くのC++とPythonプログラムを生成します。その後、これらのソリューションをフィルタリング、クラスタリング、再ランキングして、外部評価のために10の候補プログラムの小さなセットに絞り込みます。この自動化されたシステムは、競技者がデバッグ、コンパイル、テストを通過し、最終的に提出するための試行錯誤のプロセスを置き換えます。

Codeforcesの許可を得て、我々はAlphaCodeを使用して最近の10の競技に参加したかのような状況をシミュレーションしました。競技プログラミングコミュニティの素晴らしい仕事により、以前に見た解決策を複製したり、関連するアルゴリズムを試したりするといったショートカットで問題を解決することはできません。代わりに、我々のモデルは新しい面白い解決策を作り出さなければなりません。

全体的に、AlphaCodeは競合他社とほぼ同じレベルでした。競技を勝ち抜くには程遠いですが、この結果はAIの問題解決能力の大きな飛躍を表しており、私たちの結果が競技プログラミングコミュニティにインスピレーションを与えることを願っています。

「競技プログラミングの問題を解くことは、人間にとって非常に困難なことです。それには優れたコーディングスキルと問題解決力が必要です。私は、AlphaCodeがこの領域で進歩を遂げることができ、モデルが文を理解し、コードを生成し、ランダムな探索をガイドして解決策を作り出す方法に興奮しました。」‍ – Petr Mitrichev, ソフトウェアエンジニア, Google & 世界クラスの競技プログラマー

人類の助けとなるためには、人工知能システムは問題解決能力を開発できる必要があります。AlphaCodeは実世界のプログラミング競技で上位54%にランクインし、批判的思考を必要とするタスクにおけるディープラーニングモデルの可能性を示す進歩を遂げました。これらのモデルは現代の機械学習を洗練させ、問題の解決策をコードとして表現するために、数十年前のAIの象徴的な推論のルートに回帰しています。そしてこれはまだ始まりに過ぎません。

コード生成の探求は改善の余地が非常に大きく、現在コードを書かない人々にもフィールドを開放するためのさらにエキサイティングなアイデアのヒントを示しています。私たちはこの探求を続け、さらなる研究がプログラミングを向上させるためのツールを生み出し、問題解決型のAIに一歩近づけることを願っています。

AlphaCodeの解決策を見ると、モデルをalphacode.deepmind.comで探索できます。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

「ハックからハーモニーへ:レコメンデーションでの製品ルールの構造化」

今日のデータ駆動のランドスケープでは、推薦システムがソーシャルメディアのフィードから電子商取引まで、すべてを支えてい...

機械学習

PyTorch LSTM — 入力、隠れ状態、セル状態、および出力の形状

「PyTorchでは、LSTM(nn.LSTM()を使用)を使用するために、入力時系列を表すテンソル、隠れ状態ベクトル、セル状態ベクトル...

AI研究

イェール大学とGoogle DeepMindの研究者は、大規模な言語モデルに対する高度な微調整技術を使用して数学の問題解決の成功を解き明かしました

“`html 最も先進的な大型言語モデル(LLMs)であるGPT-4やPaLM 2でも、数学の問題を解くのは困難です。なぜなら、それ...

データサイエンス

類似検索、パート7 LSHの組み合わせ

「類似検索は、クエリが与えられた場合に、データベースの全ドキュメントの中からそれに最も類似したドキュメントを見つける...

AIニュース

BrainPadがAmazon Kendraを使用して内部の知識共有を促進する方法

この記事では、Amazon KendraとAWS Lambdaを使用した内部知識共有の構造化方法と、Amazon Kendraが多くの企業が直面する知識...

機械学習

中国のこのAI論文は、ダイナミックなSLAM環境における革新的な時間変動NeRFアプローチを紹介しています:トラッキングとマッピングの精度を向上させる

コンピュータビジョンとロボット工学において、同時の位置推定と地図作成(SLAM)システムは、機械が周囲の環境をナビゲート...