ホームページ テクノロジー周辺機器 AI 「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習

Mar 16, 2024 pm 03:55 PM
ai データ

大規模言語モデル (LLM) の進歩は、コード生成の分野を大きく推進してきました。以前の研究では、強化学習 (RL) とコンパイラのフィードバック信号を組み合わせて LLM の出力空間を調査し、コード生成の品質を最適化しました。

#しかし、まだ 2 つの問題があります:

#1. 強化学習の探索は、「人間の複雑なニーズ」に直接適応するのが困難です。つまり、LLM は「長いシーケンス コード」を生成する必要があります;

2. 単体テストは複雑なコードをカバーしていない可能性があるため、未実行のコード スニペットを使用して LLM を最適化することは効果的ではありません。

これらの課題に対処するために、研究者らは、復旦大学、華中科学技術大学、王立工科大学の専門家が共同開発した StepCoder と呼ばれる新しい強化学習フレームワークを提案しました。 。 StepCoder には、コード生成の効率と品質を向上させるために設計された 2 つの主要なコンポーネントが含まれています。

#1. CCCS長いシーケンスのコード生成タスクをコード補完のサブタスク コースに分割することで、探索の課題に対処します。

2. FGO未実行のコード セグメントをマスクしてモデルを最適化し、きめ細かい最適化を実現します。

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習

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

プロジェクトリンク: https://github.com/Ablustrund/APPS_Plus

研究者らはまた、強化学習トレーニング用の APPS データセットを構築し、単体テストの正確性を確認するために手動で検証しました。

実験結果は、この方法が出力空間を探索する能力を向上させ、対応するベンチマークで最先端の方法よりも優れたパフォーマンスを発揮することを示しています。

StepCoder

コード生成プロセスにおいて、通常の強化学習の探索(探索)では「報酬が希薄で遅れた環境」や「長いシーケンス」に対応することが困難です。複雑なニーズ」。

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習

CCCS (コード補完サブタスクのカリキュラム) ステージでは、研究者は複雑な探索問題を一連のサブタスクに分解します。正規解の一部をプロンプトとして使用して、LLM は単純なシーケンスから探索を開始できます。

報酬の計算は実行可能なコードの断片のみに関連するため、コード全体 (図の赤い部分) を使用して LLM (図の灰色の部分) を最適化するのは不正確です。 。

FGO (Fine-Grained Optimization) ステージでは、研究者は単体テストで未実行のトークン (赤色の部分) をマスクし、実行されたトークン (緑色の部分) のみを使用します。損失関数を計算します。 、きめ細かい最適化を提供できます。

予備知識

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習 がコード生成に使用されるトレーニング データ セットであると仮定します。ここで、x、y、および u は人間のニーズ (つまり、タスクの説明)、標準ソリューション、および単体テストを表します。それぞれサンプル。

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習 は、標準解 yi の抽象構文ツリーを自動的に解析して得られる条件文のリストです。st と en はそれぞれ文の開始位置と終了位置を表します。 。

人間のニーズ x について、その標準解 y は 「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習 として表現できます。コード生成段階では、人間のニーズ x が与えられた場合、最終状態は次のようになります。ユニットを通して、あなたをテストするコードのコレクション。

メソッドの詳細

StepCoder は、CCCS と FGO という 2 つの主要コンポーネントを統合します。CCCS の目的はコースです。コード生成タスクがコード補完サブタスクに分解されることで、RL での探索の課題が軽減されます。FGO はコード生成タスク専用に設計されており、実行されたコード フラグメントの損失のみを計算することできめ細かい最適化を提供します。

CCCS

コード生成プロセスでは、人間の複雑なニーズを解決するために、ポリシー モデルは通常、相対的に複雑な長いアクションシーケンス。同時に、コンパイラーのフィードバックは遅延し、まばらになります。つまり、ポリシー モデルは、コード全体が生成された後でのみ報酬を受け取ります。この場合、探索は非常に困難です。

このメソッドの核心は、このような長い探索問題のリストを、探索しやすい一連の短いサブタスクに分解することです。研究者らは、コード生成をコード補完サブタスクに縮小しました。ここで、サブタスクはトレーニング データセット内の典型的なソリューションから自動的に構築されます。

人間のニーズ x について、CCCS の初期トレーニング段階では、探索の開始点 s* は最終状態に近い状態です。

具体的には、研究者は人間のニーズ x と標準ソリューションの前半部分 「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習 を提供し、xp を予測するためのポリシー モデルをトレーニングします)。コード。

y^ が xp と出力軌跡 τ の結合シーケンス、つまり y^=(xp,τ) であると仮定すると、報酬モデルは、入力として y^ を持つコード フラグメント τ 報酬 r。

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習

研究者らは、近接政策最適化 (PPO) アルゴリズムを使用して、報酬 r と軌道 τ を利用して政策モデル πθ を最適化しました。

最適化フェーズ中、ヒントの提供に使用される正規解コード セグメント xp は、ポリシー モデル πθ 更新の勾配に影響を与えないようにマスクされます。

CCCS は、反対関数を最大化することによってポリシー モデル πθ を最適化します。ここで、π^ref は PPO の参照モデルであり、SFT モデルによって初期化されます。

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習

学習が進むにつれて、探索の開始点 s* は標準解の開始点に向かって徐々に移動していきます。具体的には、学習サンプルごとに閾値 ρ が設定されます。 πθによって生成されたコードセグメントの累積正解率がρより大きい場合、開始点は先頭に移動します。

トレーニングの後半段階では、このメソッドの探索プロセスは元の強化学習の探索プロセス、つまり s*=0 と同等であり、ポリシー モデルは次のコードのみを生成します。人間のニーズをインプットとして。

条件文の開始位置で最初の認識点 s* をサンプリングして、残りの未記述のコード セグメントを完成させます。

具体的には、条件ステートメントが増えるほど、プログラムの独立したパスが増え、ロジックの複雑さが増します。複雑になると、トレーニングの品質を向上させるためにより頻繁なサンプリングが必要になり、プログラムの数が少なくなります。条件ステートメントは、それほど頻繁にサンプリングする必要はありません。

このサンプリング方法では、トレーニング データ セット内の複雑な意味構造と単純な意味構造の両方を考慮しながら、代表的なコード構造を均等に抽出できます。

トレーニング フェーズを高速化するために、研究者らは i 番目のサンプルのコース数を 「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習 に設定しました。ここで、Ei はそのコースの数です。条件文。 i 番目のサンプルのトレーニング コース スパンは、1 ではなく 「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習 です。

CCCS の要点をまとめると次のようになります:

1. 目標に近い状態から検討を開始しやすい(つまり、最終状態);

2. 目標からさらに離れた状態から探索するのは困難ですが、既に学習した状態を利用できれば探索は容易になります。ゴールに到達する。

FGO

コード生成における報酬とアクションの関係は、他の強化学習タスク (たとえば、 Atari ) では、コード生成において、生成されたコード内の報酬の計算に関係のない一連のアクションを除外することができます。

具体的には、単体テストの場合、コンパイラのフィードバックは実行されたコード フラグメントにのみ関連しますが、通常の RL 最適化目標では、軌道上のすべてのアクションが勾配計算に関与します。 . 、勾配の計算が不正確です。

最適化の精度を向上させるために、研究者たちは単体テストで実行されなかったアクション (つまり、トークン) と戦略モデルの損失を保護しました。

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習

#実験部分

APPS データセット

強化学習には大量の高品質のトレーニング データが必要ですが、研究者らは調査中に、現在利用可能なオープンソース データセットの中で、この要件を満たしているのは APPS だけであることを発見しました。

しかし、APPS には、入力、出力、または標準ソリューションの欠落など、標準ソリューションがコンパイルまたは実行されない場合や、実行出力に違いがある場合など、正しくないインスタンスがいくつかあります。

APPS データセットを完成させるために、研究者たちは、入力、出力、または標準ソリューションが欠落しているインスタンスをフィルターで除外し、単体テストの実行を容易にするために入力と出力の形式を標準化しました。その後、各インスタンスの単体テストと手動分析が行われ、不完全または無関係なコード、構文エラー、API の誤用、またはライブラリの依存関係が欠落しているインスタンスが排除されました。

出力の違いについては、研究者が手動で問題の説明を確認し、予想される出力を修正するか、インスタンスを削除します。

最後に、7456 個のインスタンスを含む APPS データ セットが構築されました。各インスタンスには、プログラミングの問題の説明、標準ソリューション、関数名、単体テスト (つまり、入力と出力)、およびスタートアップ コード (つまり、標準溶液の始まりです)。

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習

#実験結果

コード生成における他の LLM と StepCoder のパフォーマンスを評価するために、研究者は実験を行いました。 APPS データセット上で実施されました。

結果は、RL ベースのモデルが、基本モデルや SFT モデルを含む他の言語モデルよりも優れていることを示しています。

「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習

#研究者らは、強化学習がコンパイラーのフィードバックに基づいてモデルの出力空間をより効率的に参照することで、パフォーマンスをさらに向上させることができると推測する理由を持っています。コード生成の品質。

さらに、StepCoder は、他の RL ベースの手法を含むすべてのベースライン モデルを上回り、最高スコアを達成しました。

具体的には、この方法は 59.7%、高スコアは 23.5%、8.6% を達成しました。

他の強化学習ベースの手法と比較して、この手法は複雑なコード生成タスクをコード補完サブタスクに単純化することで出力空間の探索に優れており、FGO プロセスは Played a戦略モデルを正確に最適化する上で重要な役割を果たします。

また、同じアーキテクチャ ネットワークに基づく APPS データ セットでは、バックボーン ネットワークと比較して、微調整に関して StepCoder のパフォーマンスが教師あり LLM よりも優れていることもわかります。後者では、生成されたコードの合格率がほとんど向上しません。これは、コンパイラのフィードバックを使用してモデルを最適化することで、コード生成における次のトークンの予測よりも生成されるコードの品質を向上できることを直接示しています。

以上が「コード生成」タスクを完了してください。 Fudan ら、StepCoder フレームワークをリリース: コンパイラのフィードバック信号からの強化学習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ビットコインの価値はいくらですか ビットコインの価値はいくらですか Apr 28, 2025 pm 07:42 PM

ビットコインの価格は20,000ドルから30,000ドルの範囲です。 1。ビットコインの価格は2009年以来劇的に変動し、2017年には20,000ドル近くに達し、2021年にはほぼ60,000ドルに達しました。2。価格は、市場需要、供給、マクロ経済環境などの要因の影響を受けます。 3.取引所、モバイルアプリ、ウェブサイトを通じてリアルタイム価格を取得します。 4。ビットコインの価格は非常に不安定であり、市場の感情と外部要因によって駆動されます。 5.従来の金融市場と特定の関係を持ち、世界の株式市場、米ドルの強さなどの影響を受けています。6。長期的な傾向は強気ですが、リスクを慎重に評価する必要があります。

2025年のトップ10の通貨取引プラットフォームのどれがトップ10の通貨取引プラットフォームの1つです 2025年のトップ10の通貨取引プラットフォームのどれがトップ10の通貨取引プラットフォームの1つです Apr 28, 2025 pm 08:12 PM

2025年の世界の上位10の暗号通貨取引所には、Binance、Okx、Gate.io、Coinbase、Kraken、Huobi、Bitfinex、Kucoin、Bittrex、Poloniexが含まれます。これらはすべて、高い取引量とセキュリティで知られています。

世界のトップ10の通貨取引プラットフォームのどれがトップ10の通貨取引プラットフォームの最新バージョンです 世界のトップ10の通貨取引プラットフォームのどれがトップ10の通貨取引プラットフォームの最新バージョンです Apr 28, 2025 pm 08:09 PM

世界の上位10の暗号通貨取引プラットフォームには、Binance、Okx、Gate.io、Coinbase、Kraken、Huobi Global、Bitfinex、Bittrex、Kucoin、Poloniexが含まれます。これらはすべて、さまざまな取引方法と強力なセキュリティ対策を提供します。

復号化GATE.IO戦略のアップグレード:Memebox 2.0でCrypto Asset Managementを再定義する方法は? 復号化GATE.IO戦略のアップグレード:Memebox 2.0でCrypto Asset Managementを再定義する方法は? Apr 28, 2025 pm 03:33 PM

Memebox 2.0は、革新的なアーキテクチャとパフォーマンスのブレークスルーを通じて、暗号資産管理を再定義します。 1)3つの主要な問題点を解決します。資産サイロ、収入の減少、セキュリティと利便性のパラドックスです。 2)インテリジェントアセットハブ、動的リスク管理およびリターンエンハンスメントエンジン、クロスチェーン移動速度、平均降伏率、およびセキュリティインシデント応答速度が向上します。 3)ユーザーに、ユーザー価値の再構築を実現し、資産の視覚化、ポリシーの自動化、ガバナンス統合を提供します。 4)生態学的なコラボレーションとコンプライアンスの革新により、プラットフォームの全体的な有効性が向上しました。 5)将来的には、スマート契約保険プール、予測市場統合、AI主導の資産配分が開始され、引き続き業界の発展をリードします。

トップ通貨取引プラットフォームは何ですか?トップ10の最新の仮想通貨交換 トップ通貨取引プラットフォームは何ですか?トップ10の最新の仮想通貨交換 Apr 28, 2025 pm 08:06 PM

現在、上位10の仮想通貨交換にランクされています。1。Binance、2。Okx、3。Gate.io、4。CoinLibrary、5。Siren、6。HuobiGlobal Station、7。Bybit、8。Kucoin、9。Bitcoin、10。BitStamp。

トップ10の仮想通貨取引アプリは何ですか?最新のデジタル通貨交換ランキング トップ10の仮想通貨取引アプリは何ですか?最新のデジタル通貨交換ランキング Apr 28, 2025 pm 08:03 PM

Binance、OKX、Gate.ioなどの上位10のデジタル通貨交換は、システムを改善し、効率的な多様化したトランザクション、厳格なセキュリティ対策を改善しました。

CでChronoライブラリを使用する方法は? CでChronoライブラリを使用する方法は? Apr 28, 2025 pm 10:18 PM

CでChronoライブラリを使用すると、時間と時間の間隔をより正確に制御できます。このライブラリの魅力を探りましょう。 CのChronoライブラリは、時間と時間の間隔に対処するための最新の方法を提供する標準ライブラリの一部です。 Time.HとCtimeに苦しんでいるプログラマーにとって、Chronoは間違いなく恩恵です。コードの読みやすさと保守性を向上させるだけでなく、より高い精度と柔軟性も提供します。基本から始めましょう。 Chronoライブラリには、主に次の重要なコンポーネントが含まれています。STD:: Chrono :: System_Clock:現在の時間を取得するために使用されるシステムクロックを表します。 STD :: Chron

推奨される信頼できるデジタル通貨取引プラットフォーム。世界のトップ10のデジタル通貨交換。 2025 推奨される信頼できるデジタル通貨取引プラットフォーム。世界のトップ10のデジタル通貨交換。 2025 Apr 28, 2025 pm 04:30 PM

推奨される信頼できるデジタル通貨取引プラットフォーム:1。OKX、2。Binance、3。Coinbase、4。Kraken、5。Huobi、6。Kucoin、7。Bitfinex、8。Gemini、9。Bitstamp、10。Poloniex、これらのプラットフォームは、セキュリティ、ユーザーエクスペリエンス、ユーザーエクスペリエンス、ユーザーエクスペリエンス、ユーザーエクスペリエンスのデジタルエクスペリエンス、デジタルエクスペリエンスのデジタルエクスペリエンス、デジタルエクスペリエンスのために知られています。

See all articles