論文の概要: TRACED: Execution-aware Pre-training for Source Code
- arxiv url: http://arxiv.org/abs/2306.07487v1
- Date: Tue, 13 Jun 2023 01:30:14 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-23 19:45:54.087474
- Title: TRACED: Execution-aware Pre-training for Source Code
- Title(参考訳): TRACED: ソースコードのための実行対応事前トレーニング
- Authors: Yangruibo Ding, Ben Steenhoek, Kexin Pei, Gail Kaiser, Wei Le,
Baishakhi Ray
- Abstract要約: TRACEDは、ソースコードに対する実行対応事前学習戦略である。
私たちの目標は、事前トレーニング中に複雑な実行ロジックをコードモデルに教えることです。
TRACEDは静的に事前訓練されたコードモデルを、完全な実行パス予測では12.4%、実行時変数値予測では25.2%改善している。
- 参考スコア(独自算出の注目度): 24.101763959136058
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Most existing pre-trained language models for source code focus on learning
the static code text, typically augmented with static code structures (abstract
syntax tree, dependency graphs, etc.). However, program semantics will not be
fully exposed before the real execution. Without an understanding of the
program execution, statically pre-trained models fail to comprehensively
capture the dynamic code properties, such as the branch coverage and the
runtime variable values, and they are consequently less effective at code
understanding tasks, such as retrieving semantic clones and detecting software
vulnerabilities.
To close the gap between the static nature of language models and the dynamic
characteristics of programs, we introduce TRACED, an execution-aware
pre-training strategy for source code. Specifically, we pre-train code language
models with a combination of source code, executable inputs, and corresponding
execution traces. Our goal is to teach code models the complicated execution
logic during the pre-training, enabling the model to statically estimate the
dynamic code properties without repeatedly executing code during task-specific
fine-tuning.
To illustrate the effectiveness of our proposed approach, we fine-tune and
evaluate TRACED on three downstream tasks: static execution estimation, clone
retrieval, and vulnerability detection. The empirical results show that TRACED
relatively improves the statically pre-trained code models by 12.4% for
complete execution path prediction and by 25.2% for runtime variable value
predictions. TRACED also significantly outperforms statically pre-trained
models in clone retrieval and vulnerability detection across four public
benchmarks.
- Abstract(参考訳): ソースコードの既存のトレーニング済み言語モデルのほとんどは、静的コードテキストの学習に重点を置いており、通常は静的コード構造(抽象構文木、依存性グラフなど)で拡張されている。
しかし、実際の実行前にプログラムセマンティクスが完全には公開されない。
プログラム実行の理解がなければ、静的に事前訓練されたモデルは、ブランチカバレッジや実行時変数値などの動的なコードプロパティを包括的にキャプチャすることができないため、セマンティッククローンの検索やソフトウェア脆弱性の検出といったコード理解タスクでは効果が低い。
言語モデルの静的な性質とプログラムの動的特性のギャップを埋めるために,ソースコードの実行を意識した事前学習戦略であるTRACEDを導入する。
具体的には,ソースコード,実行可能入力,および対応する実行トレースの組み合わせによる事前学習を行う。
私たちの目標は、事前トレーニング中に複雑な実行ロジックをコードモデルに教えることで、タスク固有の微調整中にコードを繰り返すことなく、動的コードプロパティを静的に推定できるようにすることです。
提案手法の有効性を説明するために,静的実行推定,クローン検索,脆弱性検出という3つの下流タスクのトレースを微調整し,評価した。
実験の結果、TRACEDは静的に事前訓練されたコードモデルを、完全な実行パス予測では12.4%、実行時変数値予測では25.2%改善した。
TRACEDはまた、4つの公開ベンチマークでクローン検索と脆弱性検出において、静的に事前訓練されたモデルよりも大幅に優れている。
関連論文リスト
- Code Representation Learning At Scale [75.04686476303436]
2段階の事前学習スキームを用いて,大量のコードデータを用いてコード表現学習を行う。
まず、マスキング言語モデリングにおけるランダム性と、プログラミング言語の構造的側面の両方を活用して、エンコーダを訓練する。
そして、教師なしの方法で強陰性かつ強正に構築された対照的な学習を通して表現を強化する。
論文 参考訳(メタデータ) (2024-02-02T22:19:15Z) - Code Representation Pre-training with Complements from Program
Executions [29.148208436656216]
テストケースで明らかになったプログラムの動的情報を調べ,それを補体としてコードの特徴表現に埋め込むために,FuzzPretrainを提案する。
FuzzyPretrainは、ソースコードやASTのみをトレーニングしたコード検索に対して、6%/9%のmAP改善を実現した。
論文 参考訳(メタデータ) (2023-09-04T01:57:22Z) - Towards Safe Automated Refactoring of Imperative Deep Learning Programs
to Graph Execution [4.786072763033669]
より自然な、エラーの少ない命令型DLフレームワークは、実行時のパフォーマンスを犠牲にして、熱心な実行を奨励しています。
我々は、開発者が命令型DLコードをグラフとして確実に効率的に実行できるかどうかを規定する自動化アプローチについて、現在進行中の作業について紹介する。
このアプローチはPyDev Eclipseプラグインとして実装されており、WALA Ariadne分析フレームワークを使用している。
論文 参考訳(メタデータ) (2023-08-22T20:50:19Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - Code Execution with Pre-trained Language Models [88.04688617516827]
コードインテリジェンスのトレーニング済みモデルのほとんどは実行トレースを無視しており、ソースコードと構文構造のみに依存している。
我々は,大規模かつ現実的なPythonデータセットとコード実行タスクを作成するために,突然変異に基づくデータ拡張手法を開発した。
次に、コード実行事前学習とカリキュラム学習を活用して意味理解を強化するトランスフォーマーモデルであるCodeExecutorを提案する。
論文 参考訳(メタデータ) (2023-05-08T10:00:05Z) - Towards Efficient Fine-tuning of Pre-trained Code Models: An
Experimental Study and Beyond [52.656743602538825]
微調整された事前訓練されたコードモデルは、大きな計算コストを発生させる。
我々は、レイヤーワイドで事前訓練された表現と、微調整中に符号化されたコード知識に何が起こるのかを実験的に検討する。
本稿では,レイヤ凍結により事前学習したコードモデルを効率的に微調整するTellyを提案する。
論文 参考訳(メタデータ) (2023-04-11T13:34:13Z) - CLSEBERT: Contrastive Learning for Syntax Enhanced Code Pre-Trained
Model [23.947178895479464]
CLSEBERTは,構文強化符号事前学習モデルのための構築学習フレームワークである。
事前学習段階では、抽象構文木(AST)に含まれるコード構文と階層について検討する。
ひとつは抽象構文木内のノード間のエッジを予測することであり、もう一つはコードトークンの型を予測することである。
論文 参考訳(メタデータ) (2021-08-10T10:08:21Z) - GraphCodeBERT: Pre-training Code Representations with Data Flow [97.00641522327699]
本稿では,コード固有の構造を考慮したプログラミング言語の事前学習モデルであるGraphCodeBERTを提案する。
これは変数間の"where-the-value-comes-from"の関係をエンコードするコードのセマンティックレベルの構造です。
コード検索,クローン検出,コード翻訳,コード改良の4つのタスクにおいて,本モデルを評価する。
論文 参考訳(メタデータ) (2020-09-17T15:25:56Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。