トラフィックエンジニアリングによりコード生成の精度が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」をリリース

ブログ    
ブログ    

推薦する

ChatGPT を使用して Web アプリケーションを構築する方法は?

翻訳者 |ブガッティレビュー | Chonglou ChatGPTの最大のセールスポイントの 1 つ...

Google Cloud が AI を活用したパーソナライズされたおすすめ商品をオンライン小売業者向けに提供開始

海外メディアの報道によると、1月22日、Google Cloudは、世界中の小売業者が電子商取引機能...

機械学習と古典的なアルゴリズムの概念をわかりやすい言葉で説明しました。初心者必読

データ分野では、多くの人が機械学習について語っていますが、それが何であるかを明確に説明できる人はごく...

...

...

ダニエル・ウーの顔を5秒で変える!人気のAIアプリ「ZAO」は依然として技術的な問題に直面しています。あなたの「顔」は認証されましたか?

制作:ビッグデータダイジェスト編集部ZAOは一夜にして人気者になった。一昨夜、文翁の友人の輪には、さ...

IBMは信頼性の低い量子コンピューティングの問題を克服し、エラー軽減を使用して有用な計算を実現し、Natureの表紙を飾った。

量子コンピューティングは長い間、特定の問題に関して従来のコンピューティングよりも高速であると期待され...

機械学習に必須: TensorFlow を使用するための 11 のヒント

[[326623]] TensorFlow 2.x は、モデルの構築と全体的な使用において多くの利便...

...

「天機」が本日ネイチャー誌の表紙を飾る:清華大学のShi Luping氏のチームが世界初の異種融合脳型チップをリリース!

清華大学は、世界初の異種融合脳型コンピューティングチップ「天機チップ」を開発しました。このチップで駆...

「疑似人工知能」が飛び交う。スマートホームで実現できるのか?

AlphaGo から Master まで、人工知能 (AI) は再びテクノロジー界の最前線に押し上...

...

Minglue TechnologyのCTO、Hao Jie氏との独占インタビュー:ビッグモデルも破壊され、製品の臨界点を見つける必要がある!

ゲスト | ハオ・ジエインタビュー | 袁偉執筆者 | Yun Zhao 「短期的な価値を過大評価し...

ML と AI の違い: 詳細ガイド

人工知能 (AI) と機械学習 (ML) は互換性があると考えられる場合もありますが、概念的には関連...