トラフィックエンジニアリングによりコード生成の精度が2倍に向上: 19%から44%

トラフィックエンジニアリングによりコード生成の精度が2倍に向上: 19%から44%

新しい論文の著者は、コード生成を「強化」する方法を提案しています。

コード生成は人工知能においてますます重要な機能となっています。これは、必要なプログラム機能の自然言語による記述に基づいてコンピューター コードを自動的に生成するように機械学習モデルをトレーニングすることを指し、ソフトウェア仕様を使用可能なコードに変換することから、バックエンド開発の自動化、人間のプログラマーの支援に至るまで、多くの潜在的な用途があります。

しかし、翻訳や要約などの関連言語タスクと比較すると、高品質なコードを生成することは AI システムにとって依然として課題となっています。コードは、対象プログラミング言語の構文に正確に一致し、コーナーケースや予期しない入力を適切に処理し、問題の説明で指定された多くの細かい詳細を正確に処理する必要があります。他の領域では無害な小さなエラーであっても、プログラムの機能を完全に破壊し、コンパイルや実行に失敗する可能性があります。

最近、CodiumAI の研究者は、GPT-4 などの大規模言語モデルのコード生成機能を大幅に向上できる AlphaCodium と呼ばれる新しい方法を提案しました。彼らの主な主張は、プロンプトの文言を単純に調整するだけでは、複雑なエンコードの問題に対して固有の制限があるということです。代わりに、彼らは、テストケースに対してコードを繰り返し生成、実行、デバッグすることに重点を置いた多段階のプロセスを設計し、モデルが経験から学習できるようにしました。

エンジニアリングの限界を思い出す

自然言語タスクにおいて、プロンプト エンジニアリングとは、プロンプトの文言と構造を慎重に調整して、モデルが目的の出力を生成するように導くことを指します。たとえば、入力テキストの前に「簡潔な要約を書いてください」というフレーズを追加すると、モデルからより的を絞った要約が生成されます。

ヒント エンジニアリングは、テキスト生成のための大規模言語モデルの動作をガイドするのに非常に効果的であることが示されています。しかし、コーディングの問題に関しては、広範囲にわたるタイムリーな調整を行っても、わずかな利益しか得られないことが研究者らによって判明した。その理由は考えさせられるものです。高品質なコードを生成するには、次のものが必要です。

  • 対象プログラミング言語の構文に正確に一致する
  • コーナーケースや予期しない入力を適切に処理する
  • 問題ステートメントに記載されているすべての細かい詳細とニーズに対処する
  • すべての有効な入力に対してコードが正しくコンパイルされ、実行されることを確認する

これらの構造上の要件は、テキスト生成をはるかに超えています。プロンプトにハードコーディングしても、複雑な問題には対応できません。プロンプトだけでは、モデルがこれらのエンコード手法やニュアンスを学習するために必要な具体的なフィードバックが不足しています。

AlphaCodium 反復プロセス

これらの課題に対処するために、研究者はコード生成問題を構造化する反復プロセスを設計しました。重要な革新は、生成されたコードをテスト ケースに対して実行して、直接的な学習シグナルを提供することです。

AlphaCodium のプロセスには主に 2 つの段階があります。

前処理

  • モデルは問題の説明を箇条書きに言い換えて、重要な詳細を抽出します。
  • 各入力/出力例の背後にある予想されるロジックを説明します。
  • 2 つまたは 3 つの自然言語ソリューションを提供します。
  • コード カバレッジ用に追加のさまざまなテスト ケースを生成します。

コードの反復

  • モデルは初期コード ソリューションを生成します。
  • 一般的なテスト ケースに対してコードを繰り返し、発生したエラーを修正します。
  • モデルによって生成されたテスト ケースに対しても同じことを行います。
  • 回帰を防ぐために、増え続ける「テスト アンカー」スイートに追加のテスト ケースが追加されます。

問題について段階的に推論し、解決策の仮説を立て、テスト範囲を拡大し、コードの生成とデバッグを繰り返すことで、モデルは経験を通じて学習します。これはまさに、高品質のコード生成に必要なスキルです。

図 1. 構造化された出力を伴うプロンプトの例 (可能な解決策の生成フェーズ)

研究者たちは、明確なインターフェースと目標を持つモジュールとしてプロセスを設計すると、エンドツーエンドのモデルと比較してより良い結果が得られることを発見しました。各ステージでは、まず単純なサブタスクに焦点を当てて知識を蓄積し、下流のステージに役立つ洞察を明らかにします。テスト生成などの上流段階では、完全なソリューションは必要なく、基本的な推論だけが必要です。

実験結果

研究者らは、競争的なプログラミングコンテストからの何百ものコーディング問題で構成される CodeContests ベンチマークで AlphaCodium を評価しました。

図 2. 問題の説明と考察 – 典型的な CodeContests の問題の例。問題に対する AI ベースの自己考察が含まれています。最初の説明は長くて複雑かもしれませんが、適切な自己反省によって問題がより明確になり、一貫性が高まり、コードソリューションが改善されます。

GPT-4 モデルの場合、AlphaCodium は、大幅に最適化された単一のプロンプトと比較して、検証セットでのコード生成精度を 19% から 44% 向上させます。この利点は、さまざまなモデル サイズとテスト セットにわたって適用され、ヒント エンジニアリングのみの場合よりも大幅に優れています。

AlphaCodium は、計算リソースの使用を抑えながら、AlphaCode や CodeChain などの以前に公開された方法よりも大幅に優れたパフォーマンスを発揮します。たとえば、不必要なブルートフォース生成を回避することで、モデルクエリを 10,000 分の 1 に抑えながら、AlphaCode と同等の精度を実現します。

これらの結果は、AI システムを汎用テキスト ジェネレーターとして扱うのではなく、タスク構造を中心に総合的に設計することの価値を示しています。 AlphaCodium は、反復的なコード実行とデバッグを組み込むことで、トレーニング プロセスを、堅牢で有用なコードを生成するという最終目標とより適切に一致させます。

より広範囲な影響

AlphaCodium で使用されている概念は、競技プログラミングの問題に対して実証されていますが、AI を活用した高度なコード生成に、より広く適用できる教訓を提供します。

  • ヒント エンジニアリングだけでは、複雑なコーディング タスクを処理するには限界があります。具体的な問題解決経験が不可欠です。
  • テストベースの開発仕様は、モデルトレーニングの基礎を提供できます。このテストは明示的な適合関数を提供します。
  • 反復的なコードデバッグでは、実際に発生したエラーに焦点を当ててモデルの改善を行います。
  • テスト範囲の拡張により、ヒントでは確認できなかった一般化のギャップが強調表示されます。
  • 二重検証による柔軟な決定により、脆弱性と偏見が軽減されます。

AlphaCodium は、ソフトウェア エンジニアリングのベスト プラクティスに基づいたコード生成のための有望な新しいパラダイムを提供します。一般化可能性と計算オーバーヘッドに関しては、まだ未解決の研究課題が残っています。しかし、ここで紹介した原則、つまり経験からの学習、テスト駆動開発、モジュール推論、反復デバッグは、AI のコーディング機能を向上させるための強固な基盤を提供するようです。

論文リンク: https://arxiv.org/pdf/2401.08500.pdf

コードリポジトリ: https://github.com/Codium-ai/AlphaCodium

原題: 「フローエンジニアリング」によりコード生成精度が 2 倍に向上 (19% 対 44%)、著者: Mike Young

リンク: https://notes.aimodels.fyi/flow-engineering-intensifies-for-code-generation/

<<:  VS Code 1.86 バージョンのハイライト: ウィンドウのズームの自由度の向上、AI 音声アシスタントの導入、複数ファイルの差分エディター

>>:  Google、かわいい動物動画生成に優れたAI動画ジェネレータ「Lumiere」をリリース

推薦する

人工知能がデータセンターを変革

[[253094]]がんの早期発見から国境を越えた人間の言語理解、リアルタイムの高解像度ビデオでの顔...

深層強化学習探索アルゴリズムの最新レビュー: 約 200 本の論文が課題と将来の方向性を明らかにする

[[434358]]現在、強化学習(深層強化学習DRL、マルチエージェント強化学習MARLを含む)は...

...

2021年までに自動運転は普及するでしょうか?業界の専門家は、さらに30年かかるかもしれないと述べている

[[402242]] 7年前、グーグルの親会社アルファベットの子会社であるウェイモは、花やシャボン玉...

AIがタンパク質構造を予測し、サイエンス誌とネイチャー誌の年間技術革新として掲載され、無限の可能性を秘めている

2021 年に AI 分野で最も画期的な賞を授与するとしたら、誰を選びますか? 「サイエンス」と「ネ...

...

...

...

分析技術は、2019-nCoVの潜在的な感染を追跡し予測するのに役立っています。

[[314175]] 2019-nCoVの最も危険な特徴は人から人へと感染する能力であり、中国では...

2021 年の人工知能のトップ 10 トレンド

コロナウイルスのパンデミック以前、AI業界は2020年に大きな成長を遂げると予想されていました。 2...

...

...

機械学習における小規模データの重要性

ビッグデータが何であるかを知っている人は多いですが、スモールデータと機械学習におけるその重要性を知っ...

日本のCGマスターがまた登場!リアルタイムの顔キャプチャのための 3D モデリング ソフトウェア

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...