論文の概要: SkCoder: A Sketch-based Approach for Automatic Code Generation
- arxiv url: http://arxiv.org/abs/2302.06144v4
- Date: Thu, 7 Sep 2023 11:26:46 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-24 13:14:38.408262
- Title: SkCoder: A Sketch-based Approach for Automatic Code Generation
- Title(参考訳): skcoder:自動コード生成のためのスケッチベースアプローチ
- Authors: Jia Li, Yongmin Li, Ge Li, Zhi Jin, Yiyang Hao, Xing Hu
- Abstract要約: そこで我々は,SkCoderというスケッチベースのコード生成手法を提案する。
自然言語の要件が与えられたら、SkCoderは同様のコードスニペットを取得し、コードスケッチとして関連する部分を抽出し、スケッチを所望のコードに編集する。
実験結果によると、SkCoderはより正確なプログラムを生成でき、3つのデータセットで最先端のCodeT5ベースを30.30%、35.39%、29.62%上回っている。
- 参考スコア(独自算出の注目度): 44.39900916450189
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Recently, deep learning techniques have shown great success in automatic code
generation. Inspired by the code reuse, some researchers propose copy-based
approaches that can copy the content from similar code snippets to obtain
better performance. Practically, human developers recognize the content in the
similar code that is relevant to their needs, which can be viewed as a code
sketch. The sketch is further edited to the desired code. However, existing
copy-based approaches ignore the code sketches and tend to repeat the similar
code without necessary modifications, which leads to generating wrong results.
In this paper, we propose a sketch-based code generation approach named
SkCoder to mimic developers' code reuse behavior. Given a natural language
requirement, SkCoder retrieves a similar code snippet, extracts relevant parts
as a code sketch, and edits the sketch into the desired code. Our motivations
are that the extracted sketch provides a well-formed pattern for telling models
"how to write". The post-editing further adds requirement-specific details to
the sketch and outputs the complete code. We conduct experiments on two public
datasets and a new dataset collected by this work. We compare our approach to
20 baselines using 5 widely used metrics. Experimental results show that (1)
SkCoder can generate more correct programs, and outperforms the
state-of-the-art - CodeT5-base by 30.30%, 35.39%, and 29.62% on three datasets.
(2) Our approach is effective to multiple code generation models and improves
them by up to 120.1% in Pass@1. (3) We investigate three plausible code
sketches and discuss the importance of sketches. (4) We manually evaluate the
generated code and prove the superiority of our SkCoder in three aspects.
- Abstract(参考訳): 近年、ディープラーニング技術は自動コード生成で大きな成功を収めている。
コードの再利用に触発された一部の研究者は、同様のコードスニペットからコンテンツをコピーしてパフォーマンスを向上させるコピーベースアプローチを提案している。
実際、人間開発者は、コードスケッチと見なすことができる、自身のニーズに関連する類似したコードのコンテンツを認識します。
スケッチはさらに、所望のコードに編集される。
しかし、既存のコピーベースのアプローチはコードのスケッチを無視し、必要な修正なしに類似のコードを繰り返す傾向があるため、間違った結果が発生する。
本論文では,SkCoderというスケッチベースのコード生成手法を提案する。
自然言語の要件が与えられたら、SkCoderは同様のコードスニペットを取得し、コードスケッチとして関連する部分を抽出し、スケッチを所望のコードに編集する。
私たちのモチベーションは、抽出されたスケッチがモデルに"書き方"を伝えるためのよくできたパターンを提供するということです。
ポストエディタはスケッチに要求固有の詳細を追加し、完全なコードを出力する。
本研究で収集した2つの公開データセットと1つの新しいデータセットについて実験を行った。
5つの広く使用されているメトリクスを使って、私たちのアプローチを20のベースラインと比較します。
実験の結果、(1)skcoderはより正確なプログラムを生成でき、3つのデータセットで最先端のcodet5ベースを30.30%、35.39%、29.62%上回る。
2) このアプローチは、複数のコード生成モデルに有効であり、pass@1で最大120.1%改善します。
3) 3つの妥当なコードスケッチを調査し,スケッチの重要性について考察する。
(4) 生成したコードを手作業で評価し,skcoderの優位性を3つの面から証明する。
関連論文リスト
- CodeS: Natural Language to Code Repository via Multi-Layer Sketch [33.29324601674667]
コードリポジトリ(NL2Repo)に自然言語という新しいソフトウェアエンジニアリングタスクを導入する。
このタスクは、自然言語要求からコードリポジトリ全体を生成することを目的としている。
多層スケッチによりNL2Repoを複数のサブタスクに分解する,シンプルで効果的なフレームワークCodeSを提案する。
論文 参考訳(メタデータ) (2024-03-25T06:09:55Z) - SparseCoder: Identifier-Aware Sparse Transformer for File-Level Code
Summarization [51.67317895094664]
本稿では,大規模なソースコードプロジェクトの理解と維持を支援するファイルレベルのコード要約について検討する。
長いコードシーケンスを効果的に処理するための識別子対応スパース変換器であるSparseCoderを提案する。
論文 参考訳(メタデータ) (2024-01-26T09:23:27Z) - Soft-Labeled Contrastive Pre-training for Function-level Code
Representation [127.71430696347174]
textbfSoft-labeled contrastive pre-training framework with two positive sample construction method。
大規模コードコーパスにおけるコード間の関連性を考慮すると、ソフトラベル付きコントラスト付き事前学習は、きめ細かいソフトラベルを得ることができる。
SCodeRは、7つのデータセットで4つのコード関連タスクに対して、最先端のパフォーマンスを新たに達成する。
論文 参考訳(メタデータ) (2022-10-18T05:17:37Z) - CERT: Continual Pre-Training on Sketches for Library-Oriented Code
Generation [46.45445767488915]
ライブラリ指向コード生成のモデルをトレーニングするために,未実装のコードコーパスを活用する方法を示す。
PandasEvalとNumpyEvalという2つのベンチマークを作成し、ライブラリ指向のコード生成を評価します。
論文 参考訳(メタデータ) (2022-06-14T14:44:34Z) - CODE-MVP: Learning to Represent Source Code from Multiple Views with
Contrastive Pre-Training [26.695345034376388]
本稿では,ソースコードの自然言語記述と異なるビューを,マルチビューによるコントラスト事前学習と統合したフレームワークに統合することを提案する。
具体的には、まずコンパイラツールを用いて複数のコードビューを抽出し、その相補的な情報を対照的な学習フレームワークで学習する。
5つのデータセット上の3つの下流タスクの実験は、いくつかの最先端ベースラインと比較して、CODE-MVPの優位性を示している。
論文 参考訳(メタデータ) (2022-05-04T12:40:58Z) - InCoder: A Generative Model for Code Infilling and Synthesis [88.46061996766348]
InCoderは、プログラム合成(左から右への生成)と編集(埋め込み)が可能な統合生成モデルである。
InCoderは、許可されたコードの大きなコーパスからコードファイルを生成するように訓練されている。
私たちのモデルは、ゼロショットコードの埋め込みを直接実行できる最初の生成モデルです。
論文 参考訳(メタデータ) (2022-04-12T16:25:26Z) - CodeRetriever: Unimodal and Bimodal Contrastive Learning [128.06072658302165]
関数レベルのコードセマンティック表現を訓練するために,一様および二様のコントラスト学習を組み合わせたCodeRetrieverモデルを提案する。
ノンモーダルなコントラスト学習のために、文書と関数名に基づいてポジティブなコードペアを構築するためのセマンティックガイド付き手法を設計する。
バイモーダルなコントラスト学習では、コードのドキュメンテーションとインラインコメントを活用して、テキストコードペアを構築します。
論文 参考訳(メタデータ) (2022-01-26T10:54:30Z) - LLC: Accurate, Multi-purpose Learnt Low-dimensional Binary Codes [55.32790803903619]
本稿では,クラスだけでなくインスタンスの低次元バイナリコード(LLC)を学習するための新しい手法を提案する。
アノテーション付き属性やラベルメタデータなど,副作用は一切不要です。
学習したコードは、クラスに対して直感的な分類法を発見することによって、データの中で本質的に重要な特徴をキャプチャすることを示した。
論文 参考訳(メタデータ) (2021-06-02T21:57:52Z) - Self-Supervised Contrastive Learning for Code Retrieval and
Summarization via Semantic-Preserving Transformations [28.61567319928316]
Corderは、ソースコードモデルのための自己教師付きコントラスト学習フレームワークである。
重要なイノベーションは、ソースコードモデルをトレーニングし、類似した、異種のコードスニペットを認識するように要求することです。
Corderで事前訓練されたコードモデルは、コード・ツー・コード検索、テキスト・ツー・コード検索、およびコード・ツー・テキスト要約タスクにおいて、他のベースラインを大幅に上回っていることを示す。
論文 参考訳(メタデータ) (2020-09-06T13:31:16Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。