AI がコーディング コンテストの問題解決をより上手に行えるようにする

AI がコーディング コンテストの問題解決をより上手に行えるようにする

インタビュー 商用の大規模言語モデルが競技プログラミングの問題を解決する能力は、賢明なプロンプト エンジニアリングを通じてプロセスを慎重にガイドすることで大幅に向上します。

これを実証するために、イスラエルに拠点を置く Codium AI は AlphaCodium を構築し、 リリース 今月の GitHub 上のソフトウェア。 AlphaCodium 自体は大規模な言語モデルではありません。その代わりに、CEO のイタマール・フリードマン氏が「フロー エンジニアリング」と呼ぶものを使用して、GPT-4 のような生成 AI ツールの問題解決能力を向上させる方法です。

まず、プログラミングの質問が基礎となる大規模言語モデルに与えられ、問題を説明して要約するように求められます。その情報は、問題の解決に向けてどのように始めるべきかを導きます。 AlphaCodium は、ソリューションを考えるときに、入力と出力がどうあるべきかなどを定義します。これらはすべて自然言語で指定されます。

次に、モデルは、説明した仕様に一致するコードの生成を開始します。仕様に準拠したコードを参加者に求めるプログラミング コンテストでは、通常、特定の入力に対してスクリプトが何を出力するかを示すテストが提供されます。 AlphaCodium はこれらのテスト ケースをさらに生成し、考えられるソリューションを実行して、コードが期待どおりに動作するかどうかを確認します。

いずれのテストで定義された出力とも一致しない場合、モデルはすべてのテストに合格するか失敗するまで、さまざまなソリューションを生成します。コードがコンパイルされないか、単に間違っている場合、エラーが発生する可能性があります。

以下の図で、フロー エンジニアリング プロセスのさまざまなステップを確認できます。これは主に、システムが自然言語で問題を分析する前処理フェーズと、公開テストおよび AI 生成のテストに対して考えられる解決策を実行するコード反復ステージに分かれています。

アルファコジウム

AlphaCodium が問題を解決するためのコードを生成するためのすべての広範な手順

「私たちは問題を取り上げてモデルのところに行って『最終的な解決策を生成してください』と言うわけではありません」とフリードマン氏は語った。 登録。 「モデルに対して、この問題を箇条書きで再定義するようお願いします。」単純化していくつかのチャンクに分割すると、後でモデルがアルゴリズムのさまざまな部分のコードを生成しやすくなります。

基本的に、フロー エンジニアリングは、モデルの問題解決プロセスを明確に定義されたステップに分割することでガイドする手順です。 「生成されたコードを意味のある名前と機能を持つ小さなサブ関数に分割する」よう促すと、バグが減り、コードのテストと修正が容易になると言われています。

「私たちは基本的に時間の 95% をフロー エンジニアリングに費やし、プロンプト エンジニアリングには 5% だけを費やしました。また、[ステップ] ごとにプロンプ​​トを変更しませんでした」とフリードマン氏は付け加えました。

Codium のエンジニアは、2 年前に Google DeepMind によってコンパイルされた CodeForces データセットの検証およびテスト部分で使用された数百の問題でモデルのパフォーマンスをテストしました。彼らは、AlphaCodium は Google DeepMind の AlphaCode モデルや AlphaCodeXNUMX モデルよりもコーディング問題の解決に優れていたと主張しています。

arXiv で報告された結果では [PDF]、AlphaCodium は質問の 44% に正解できたのに対し、AlphaCode は 24% でしたが、107 の検証問題に対して AlphaCode が選択した 165 つのソリューションと比較して、生成したソリューションは 29 つだけでした。興味深いことに、28 のテスト問題に関しては、AlphaCode の XNUMX パーセントと比較して、AlphaCodium は XNUMX パーセントを解決し、その差は縮まりました。

AlphaCode は、生成される可能性のある数万、または数十万のスクリプトの中から最も有望な 10 個のソリューションを選択します。そのため、実行には大量の計算が必要になります。

「私たちはテストの全体の流れにより重点を置きました」とフリードマン氏は語った。 「[Google] に関しては、この世代に関して非常に多くの作業を行いました。彼らは何百もの他のオプションを生成しようとしていますが、私たちが生成するソリューションはほとんどありませんが、コードの改善を導くためにそれらを非常によくテストしています。」

AlphaCodiumは、以前のAlphaCodeよりも2倍効率的であるGoogle DeepMindの最新のAlphaCode10,000モデルよりもわずかに優れている、と彼は付け加えた。

アルファコジウム_2

精度と効率の点で AlphaCodium を他の最先端モデルと比較する方法

フリードマン氏は、AlphaCodiumのパフォーマンスはデータ漏洩によるものではなく、基礎となるモデルが同じ問題でトレーニングされ、テストされていると確信していると述べた。 AlphaCodium を動かしている GPT-4 バージョンは、2021 年 XNUMX 月までにインターネットから収集したテキストに基づいてトレーニングされましたが、システムをテストした問題は、ずっと後にリリースされた前述の CodeForces データセットから取得されました。

ただし、フロー エンジニアリング プロセスを評価するより適切な比較は、AlphaCodium を適用した場合と適用しない場合で同じ問題を解決する GPT-4 の能力に注目することです。従来の GPT-4 は、検証セットとテスト セットの問題のそれぞれ 19 パーセントと 12 パーセントしか正しく答えることができませんでしたが、AlphaCodium を搭載したバリアントでは 44 パーセントと 29 パーセントでした。

つまり、コードの生成方法をガイドし、テスト プロセスを改善するための追加データを生成する慎重なパイプラインを実装することは、大規模な言語モデルを最初からトレーニングしようとするよりも効果的である可能性があるようです。

Codium は最近、Python 開発者をサポートする新しいツールをリリースしました。Python 開発者は、AlphaCodium を呼び出して、IDE でコーディングの問題を直接解決できるようになりました。一緒に遊ぶことができます ここに。 ®

タイムスタンプ:

より多くの 登録