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

機械学習

NODE:表形式に特化したニューラルツリー

近年、機械学習は人気が爆発し、ニューラルディープラーニングモデルは画像やテキストなどの複雑なタスクにおいて、XGBoost [...

機械学習

「Rodinに会ってください:さまざまな入力ソースから3Dデジタルアバターを生成する革新的な人工知能(AI)フレームワーク」

生成モデルは、コンピュータサイエンスの多くの困難なタスクに対する事実上の解決策となっています。それらは視覚データの分...

AIニュース

ベストプロキシサーバー2023

プロキシサーバーは、コンピュータが自分の代わりにリクエストを行うためのネットワーク上で動作するアプリケーションまたは...

機械学習

2023年に検討すべきトップのAutoMLフレームワーク

AutoMLフレームワークは、データアナリストや機械学習の専門家にとって強力なツールであり、データ前処理、モデル選択、ハイ...

データサイエンス

ドローンは、液体ニューラルネットワークを使用して未知の環境をナビゲートします

MITの研究者たちは、脳に着想を得た液体ニューラルネットワークを使用して、自律ドローンのナビゲーションにおける新しい進歩...

AI研究

スタンフォードの研究者たちは、「EquivAct」というロボット学習における画期的な提案を行いましたこの提案は、異なる規模や方向でのタスクを一般化するためのものです

人間は、標準的なオブジェクトでタスクを完了する方法のわずかな例だけを与えられた場合でも、対象物の視覚的または物理的属...