論文の概要: Training Language Models on Synthetic Edit Sequences Improves Code Synthesis
- arxiv url: http://arxiv.org/abs/2410.02749v3
- Date: Tue, 11 Feb 2025 18:59:47 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-02-12 14:04:48.426113
- Title: Training Language Models on Synthetic Edit Sequences Improves Code Synthesis
- Title(参考訳): 合成編集シーケンスに基づく学習言語モデルによるコード合成の改善
- Authors: Ulyana Piterbarg, Lerrel Pinto, Rob Fergus,
- Abstract要約: 言語モデル(LM)はプログラムを1回のパスで自動的に合成する。
コード合成のための高品質な命令データが不足している一方で、合成のための編集データが不足している。
我々はこのギャップを埋めるためにLintSeqと呼ばれる合成データ生成アルゴリズムを開発した。
- 参考スコア(独自算出の注目度): 33.13471417703669
- License:
- Abstract: Software engineers mainly write code by editing existing programs. In contrast, language models (LMs) autoregressively synthesize programs in a single pass. One explanation for this is the scarcity of sequential edit data. While high-quality instruction data for code synthesis is scarce, edit data for synthesis is even scarcer. To fill this gap, we develop a synthetic data generation algorithm called LintSeq. This algorithm refactors programs into sequences of synthetic edits by using a linter to procedurally sample across interdependent lines of source code. Synthetic edits sampled with LintSeq reflect the syntax and semantics of their programming language. To test the algorithm, we use it to refactor a dataset of instruction + program pairs into instruction + program-diff-sequence tuples. Then, we fine-tune a series of smaller LMs ranging from 2.6B to 14B parameters on both the re-factored and original versions of this dataset. We perform comprehensive evaluations comparing edit sequence code LMs against baselines on HumanEval, MBPP(+), CodeContests, DS-1000, and BigCodeBench. We show that models fine-tuned to iteratively synthesize code match or outperform baselines on pass@1, and exhibit better scaling across higher pass@k as a function of total test-time FLOPs. Finally, we also pretrain our own tiny LMs for code understanding. We show that fine-tuning these models to synthesize code edit-by-edit results in strong performance on HumanEval and MBPP(+) compared to existing code language models of similar scale such as CodeT5+, AlphaCode, and Codex.
- Abstract(参考訳): ソフトウェアエンジニアは主に既存のプログラムを編集してコードを書く。
対照的に、言語モデル(LM)はプログラムを単一のパスで自動回帰的に合成する。
これの1つの説明は、シーケンシャルな編集データの不足である。
コード合成のための高品質な命令データが不足している一方で、合成のための編集データが不足している。
このギャップを埋めるため,LintSeqという合成データ生成アルゴリズムを開発した。
このアルゴリズムは、プログラムをlinterを用いて合成編集のシーケンスにリファクタリングし、依存関係のあるソースコードの行を手続き的にサンプリングする。
LintSeqでサンプル化された合成編集は、プログラミング言語の構文と意味を反映している。
このアルゴリズムをテストするために、命令+プログラムペアのデータセットをインストラクション+プログラム-差分シーケンスタプルにリファクタリングする。
次に、このデータセットのリファクタリングされたバージョンとオリジナルのバージョンの両方において、2.6Bから14Bまでの小さなLMを微調整する。
我々は、HumanEval、MBPP(+)、CodeContests、DS-1000、BigCodeBenchのベースラインに対して、編集シーケンスコードLMを比較し、包括的な評価を行う。
本稿では,パス@1でコードマッチングやベースラインの最適化を反復的に行うモデルについて述べるとともに,テストタイムのFLOPの関数として,パス@kをまたいでより優れたスケーリングを実現していることを示す。
最後に、コード理解のために独自の小さなLMを事前訓練します。
これらのモデルを微調整して、コード編集を編集することで、CodeT5+、AlphaCode、Codexといった類似スケールの既存のコード言語モデルと比較して、HumanEvalとMBPP(+)の性能が向上することを示す。
関連論文リスト
- UnitCoder: Scalable Iterative Code Synthesis with Unit Test Guidance [65.01483640267885]
大きな言語モデル(LLM)は、様々なタスクにおいて顕著な能力を示してきたが、コード生成は依然として大きな課題である。
私たちは、モデル生成ユニットテストを活用してコード生成プロセスのガイドと検証を行う、システマティックパイプラインであるUnitCoderを紹介します。
我々の研究は、モデル生成単体テストを利用して、事前学習コーパスから高品質なコードデータの合成を誘導するスケーラブルなアプローチを提案する。
論文 参考訳(メタデータ) (2025-02-17T05:37:02Z) - Genetic Instruct: Scaling up Synthetic Generation of Coding Instructions for Large Language Models [54.51932175059004]
本稿では,大規模言語モデルのコード生成能力を高めるために,合成命令を生成するスケーラブルな手法を提案する。
提案したアルゴリズムは進化過程を模倣し、自己インストラクションを利用して限られた数の種子から多数の合成サンプルを生成する。
論文 参考訳(メタデータ) (2024-07-29T20:42:59Z) - Uncovering LLM-Generated Code: A Zero-Shot Synthetic Code Detector via Code Rewriting [78.48355455324688]
原符号とLLM書き換え版との類似性に基づく新しいゼロショット合成符号検出器を提案する。
以上の結果から,既存のSOTA合成コンテンツ検出装置よりも顕著な改善が得られた。
論文 参考訳(メタデータ) (2024-05-25T08:57:28Z) - SynthesizRR: Generating Diverse Datasets with Retrieval Augmentation [55.2480439325792]
トピック分類,感情分析,トーン検出,ユーモアの6つのデータセットの合成について検討した。
その結果,SynthesizRRは語彙や意味の多様性,人文との類似性,蒸留性能を大幅に向上させることがわかった。
論文 参考訳(メタデータ) (2024-05-16T12:22:41Z) - SynCode: LLM Generation with Grammar Augmentation [5.174301428591665]
SynCodeは、LLMによる効率的で一般的なデコードのための新しいフレームワークである。
形式言語のCFGに対する健全性と完全性を保証し、無効なトークンをフィルタリングしながら有効なトークンを効果的に保持する。
我々の実験は、SynCodeがすべての構文エラーを排除し、最先端のベースラインを大幅に上回ることを示した。
論文 参考訳(メタデータ) (2024-03-03T22:38:35Z) - LILO: Learning Interpretable Libraries by Compressing and Documenting Code [71.55208585024198]
LILOは、反復的に合成、圧縮、文書化を行う、ニューロシンボリックなフレームワークである。
LILOは、LLM誘導プログラム合成と、Stitchから自動化された最近のアルゴリズムの進歩を組み合わせたものである。
LILOのシンセサイザーが学習した抽象化を解釈し、デプロイするのを手助けすることで、AutoDocがパフォーマンスを向上させることが分かりました。
論文 参考訳(メタデータ) (2023-10-30T17:55:02Z) - Outline, Then Details: Syntactically Guided Coarse-To-Fine Code
Generation [61.50286000143233]
ChainCoderは、Pythonコードを段階的に生成するプログラム合成言語モデルである。
自然言語記述と構文的に整合したI/Oデータサンプルを共同で符号化するために、カスタマイズされたトランスフォーマーアーキテクチャを利用する。
論文 参考訳(メタデータ) (2023-04-28T01:47:09Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。