論文の概要: CAT-LM: Training Language Models on Aligned Code And Tests
- arxiv url: http://arxiv.org/abs/2310.01602v1
- Date: Mon, 2 Oct 2023 19:52:22 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-04 19:09:29.865764
- Title: CAT-LM: Training Language Models on Aligned Code And Tests
- Title(参考訳): CAT-LM: 標準化されたコードとテストによる言語モデルのトレーニング
- Authors: Nikitha Rao, Kush Jain, Uri Alon, Claire Le Goues, Vincent J.
Hellendoorn
- Abstract要約: テストはソフトウェア開発プロセスにおいて不可欠な部分だ。しかし、テストを書くのに時間がかかり、しばしば無視される。
我々は270億のパラメータを持つGPTスタイルの言語モデルであるAligned Code And Tests Language Model (CAT-LM)を提案する。
- 参考スコア(独自算出の注目度): 19.526181671936243
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Testing is an integral part of the software development process. Yet, writing
tests is time-consuming and therefore often neglected. Classical test
generation tools such as EvoSuite generate behavioral test suites by optimizing
for coverage, but tend to produce tests that are hard to understand. Language
models trained on code can generate code that is highly similar to that written
by humans, but current models are trained to generate each file separately, as
is standard practice in natural language processing, and thus fail to consider
the code-under-test context when producing a test file. In this work, we
propose the Aligned Code And Tests Language Model (CAT-LM), a GPT-style
language model with 2.7 Billion parameters, trained on a corpus of Python and
Java projects. We utilize a novel pretraining signal that explicitly considers
the mapping between code and test files when available. We also drastically
increase the maximum sequence length of inputs to 8,192 tokens, 4x more than
typical code generation models, to ensure that the code context is available to
the model when generating test code. We analyze its usefulness for realistic
applications, showing that sampling with filtering (e.g., by compilability,
coverage) allows it to efficiently produce tests that achieve coverage similar
to ones written by developers while resembling their writing style. By
utilizing the code context, CAT-LM generates more valid tests than even much
larger language models trained with more data (CodeGen 16B and StarCoder) and
substantially outperforms a recent test-specific model (TeCo) at test
completion. Overall, our work highlights the importance of incorporating
software-specific insights when training language models for code and paves the
way to more powerful automated test generation.
- Abstract(参考訳): テストはソフトウェア開発プロセスにおいて不可欠な部分です。
しかし、テストを書くのに時間がかかり、しばしば無視される。
EvoSuiteのような古典的なテスト生成ツールは、カバレッジを最適化することで振る舞いテストスイートを生成するが、理解しにくいテストを生成する傾向がある。
コードでトレーニングされた言語モデルは、人間が書いたものと非常によく似たコードを生成することができるが、現在のモデルは、自然言語処理の標準的なプラクティスと同様に、各ファイルを別々に生成するように訓練されているため、テストファイルを生成する際にテスト中のコンテキストを考慮できない。
本稿では,Python および Java プロジェクトのコーパスでトレーニングされた,270 億のパラメータを持つ GPT スタイルの言語モデルである Aligned Code And Tests Language Model (CAT-LM) を提案する。
我々は、利用可能なコードとテストファイル間のマッピングを明確に検討する新しい事前学習信号を利用する。
また、入力の最大シーケンス長を通常のコード生成モデルより4倍多い8,192トークンに劇的に増やし、テストコードを生成する際にモデルにコードコンテキストが利用可能になるようにしました。
フィルタによるサンプリング(例えば、コンパイル性やカバレッジ)によって、開発者が記述スタイルに類似したカバレッジを実現するテストが効率的に作成できることを示すことで、現実的なアプリケーションでの有用性を分析した。
コードコンテキストを利用することで、CAT-LMはより多くのデータ(CodeGen 16BとStarCoder)でトレーニングされたより大きな言語モデルよりも有効なテストを生成し、テスト完了時に最新のテスト固有モデル(TeCo)を大幅に上回っている。
全体として、コードのための言語モデルをトレーニングする場合、ソフトウェア固有の洞察を取り入れることの重要性を強調し、より強力な自動テスト生成への道を開く。
関連論文リスト
- TestGenEval: A Real World Unit Test Generation and Test Completion Benchmark [24.14654309612826]
TestGenEvalは、1,210のコードから68,647のテストと、11の保守されたPythonリポジトリにまたがるテストファイルペアで構成されている。
初期テストのオーサリング、テストスイートの補完、コードカバレッジの改善をカバーしている。
パラメータは7Bから405Bまで様々である。
論文 参考訳(メタデータ) (2024-10-01T14:47:05Z) - Multi-language Unit Test Generation using LLMs [6.259245181881262]
静的解析を組み込んだジェネリックパイプラインを記述し,コンパイル可能な高カバレッジテストケースの生成においてLCMをガイドする。
パイプラインをさまざまなプログラミング言語、特にJavaとPython、そして環境モックを必要とする複雑なソフトウェアに適用する方法を示します。
以上の結果から,静的解析によって導かれるLCMベースのテスト生成は,最新のテスト生成技術と競合し,さらに性能も向上することが示された。
論文 参考訳(メタデータ) (2024-09-04T21:46:18Z) - PyTester: Deep Reinforcement Learning for Text-to-Testcase Generation [20.441921569948562]
テスト駆動開発(TDD)は、実際のコードを書く前に要件に基づいてテストケースを書くことを義務付ける。
テストケースを書くことはTDDの中心ですが、時間がかかり、コストがかかり、開発者が悩まされることも少なくありません。
PyTesterは、テキストからテストケースを生成するアプローチで、正しい、実行可能な、完全な、効果的なテストケースを自動的に生成します。
論文 参考訳(メタデータ) (2024-01-15T10:21:58Z) - REST: Retrieval-Based Speculative Decoding [69.06115086237207]
本稿では,言語モデル生成の高速化を目的とした新しいアルゴリズムであるRetrieval-Based Speculative Decoding(REST)を紹介する。
投機的復号化のためのドラフト言語モデルに依存する従来の方法とは異なり、RESTは検索の力を利用してドラフトトークンを生成する。
単一バッチ環境で7Bと13Bの言語モデルでベンチマークすると、RESTはコードやテキスト生成において1.62Xから2.36Xの大幅なスピードアップを達成する。
論文 参考訳(メタデータ) (2023-11-14T15:43:47Z) - Prompting Code Interpreter to Write Better Unit Tests on Quixbugs
Functions [0.05657375260432172]
単体テストは、ソフトウェア工学において、記述されたコードの正確性と堅牢性をテストするために一般的に使用されるアプローチである。
本研究では,コードインタプリタが生成する単体テストの品質に及ぼす異なるプロンプトの影響について検討する。
生成した単体テストの品質は、提供されたプロンプトのマイナーな詳細の変更に敏感ではないことがわかった。
論文 参考訳(メタデータ) (2023-09-30T20:36:23Z) - Code Execution with Pre-trained Language Models [88.04688617516827]
コードインテリジェンスのトレーニング済みモデルのほとんどは実行トレースを無視しており、ソースコードと構文構造のみに依存している。
我々は,大規模かつ現実的なPythonデータセットとコード実行タスクを作成するために,突然変異に基づくデータ拡張手法を開発した。
次に、コード実行事前学習とカリキュラム学習を活用して意味理解を強化するトランスフォーマーモデルであるCodeExecutorを提案する。
論文 参考訳(メタデータ) (2023-05-08T10:00:05Z) - Using Large Language Models to Generate JUnit Tests: An Empirical Study [0.4788487793976782]
コード生成モデルは、コードコメント、既存のコード、または両方の組み合わせからプロンプトを受け取り、コードを生成する。
我々は,3つのモデル (Codex, GPT-3.5-Turbo, StarCoder) がどの程度単体テストを生成するかを検討した。
CodexモデルはHumanEvalデータセットの80%以上のカバレッジを達成したが、EvoSuite SF110ベンチマークの2%以上のカバレッジを持つモデルはない。
論文 参考訳(メタデータ) (2023-04-30T07:28:06Z) - CodeExp: Explanatory Code Document Generation [94.43677536210465]
既存のコード・トゥ・テキスト生成モデルは、コードの高レベルな要約のみを生成する。
我々は、コードのための高品質な説明記述の基準を特定するために、人間の研究を行う。
タスクのための多段階微調整戦略とベースラインモデルを提案する。
論文 参考訳(メタデータ) (2022-11-25T18:05:44Z) - Interactive Code Generation via Test-Driven User-Intent Formalization [60.90035204567797]
大きな言語モデル(LLM)は、非公式な自然言語(NL)の意図からコードを生成する。
自然言語は曖昧であり、形式的な意味論が欠けているため、正確性の概念を定義するのは難しい。
言語に依存しない抽象アルゴリズムと具体的な実装TiCoderについて述べる。
論文 参考訳(メタデータ) (2022-08-11T17:41:08Z) - CodeT: Code Generation with Generated Tests [49.622590050797236]
テストケースを自動的に生成するための事前学習言語モデルについて検討する。
CodeTは生成されたテストケースを使ってコードソリューションを実行し、次に最良のソリューションを選択します。
我々は,HumanEvalとMBPPのベンチマークを用いて,5種類の事前学習モデル上でCodeTを評価する。
論文 参考訳(メタデータ) (2022-07-21T10:18:37Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。