新しい論文の著者は、コード生成を「強化」する方法を提案しています。 コード生成は人工知能においてますます重要な機能となっています。これは、必要なプログラム機能の自然言語による記述に基づいてコンピューター コードを自動的に生成するように機械学習モデルをトレーニングすることを指し、ソフトウェア仕様を使用可能なコードに変換することから、バックエンド開発の自動化、人間のプログラマーの支援に至るまで、多くの潜在的な用途があります。 しかし、翻訳や要約などの関連言語タスクと比較すると、高品質なコードを生成することは AI システムにとって依然として課題となっています。コードは、対象プログラミング言語の構文に正確に一致し、コーナーケースや予期しない入力を適切に処理し、問題の説明で指定された多くの細かい詳細を正確に処理する必要があります。他の領域では無害な小さなエラーであっても、プログラムの機能を完全に破壊し、コンパイルや実行に失敗する可能性があります。 最近、CodiumAI の研究者は、GPT-4 などの大規模言語モデルのコード生成機能を大幅に向上できる AlphaCodium と呼ばれる新しい方法を提案しました。彼らの主な主張は、プロンプトの文言を単純に調整するだけでは、複雑なエンコードの問題に対して固有の制限があるということです。代わりに、彼らは、テストケースに対してコードを繰り返し生成、実行、デバッグすることに重点を置いた多段階のプロセスを設計し、モデルが経験から学習できるようにしました。 エンジニアリングの限界を思い出す自然言語タスクにおいて、プロンプト エンジニアリングとは、プロンプトの文言と構造を慎重に調整して、モデルが目的の出力を生成するように導くことを指します。たとえば、入力テキストの前に「簡潔な要約を書いてください」というフレーズを追加すると、モデルからより的を絞った要約が生成されます。 ヒント エンジニアリングは、テキスト生成のための大規模言語モデルの動作をガイドするのに非常に効果的であることが示されています。しかし、コーディングの問題に関しては、広範囲にわたるタイムリーな調整を行っても、わずかな利益しか得られないことが研究者らによって判明した。その理由は考えさせられるものです。高品質なコードを生成するには、次のものが必要です。
これらの構造上の要件は、テキスト生成をはるかに超えています。プロンプトにハードコーディングしても、複雑な問題には対応できません。プロンプトだけでは、モデルがこれらのエンコード手法やニュアンスを学習するために必要な具体的なフィードバックが不足しています。 AlphaCodium 反復プロセスこれらの課題に対処するために、研究者はコード生成問題を構造化する反復プロセスを設計しました。重要な革新は、生成されたコードをテスト ケースに対して実行して、直接的な学習シグナルを提供することです。 AlphaCodium のプロセスには主に 2 つの段階があります。 前処理
コードの反復
問題について段階的に推論し、解決策の仮説を立て、テスト範囲を拡大し、コードの生成とデバッグを繰り返すことで、モデルは経験を通じて学習します。これはまさに、高品質のコード生成に必要なスキルです。 図 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」をリリース
130 億のパラメータを持つモデルが実際にトップの GPT-4 に勝つのでしょうか?下の図に示すよ...
[[357620]]科学技術の発展に伴い、人類は機械工学、材料科学、電子技術、自動制御、コンピュータ...
[[438491]]情報データ伝送のセキュリティは、常に非常に重要なテーマです。プログラマーとして働...
近年、強化学習に対する研究熱は高まり続けており、インテリジェント製造、自動運転、大規模言語モデルなど...
[[277927]] [51CTO.com クイック翻訳] 今日、私たちは日常生活や仕事を実現する...
[[378769]]海外メディアの報道によると、AIは長年にわたり、あらゆる古典的なボードゲームで...
トランスフォーマーは、ペアワイズ依存関係を記述し、シーケンス内のマルチレベル表現を抽出できるため、時...