論文の概要: Understanding Programs by Exploiting (Fuzzing) Test Cases
- arxiv url: http://arxiv.org/abs/2305.13592v1
- Date: Tue, 23 May 2023 01:51:46 GMT
- ステータス: 処理完了
- システム内更新日: 2023-05-24 19:53:23.701329
- Title: Understanding Programs by Exploiting (Fuzzing) Test Cases
- Title(参考訳): 爆発(ファジィ)テストケースによるプログラム理解
- Authors: Jianyu Zhao and Yuyang Rong and Yiwen Guo and Yifeng He and Hao Chen
- Abstract要約: プログラムのより深い意味理解を実現するために,入力と出力/振る舞いの関係を学習に取り入れることを提案する。
コードの大部分の実行をトリガーするのに十分な入力を得るために,ファズテストを採用し,ファズチューニングを提案する。
提案手法の有効性は,コードクローン検出とコード分類を含む2つのプログラム理解タスクにおいて検証され,最先端技術よりも大きなマージンで優れている。
- 参考スコア(独自算出の注目度): 26.8259045248779
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Semantic understanding of programs has attracted great attention in the
community. Inspired by recent successes of large language models (LLMs) in
natural language understanding, tremendous progress has been made by treating
programming language as another sort of natural language and training LLMs on
corpora of program code. However, programs are essentially different from texts
after all, in a sense that they are normally heavily structured and
syntax-strict. In particular, programs and their basic units (i.e., functions
and subroutines) are designed to demonstrate a variety of behaviors and/or
provide possible outputs, given different inputs. The relationship between
inputs and possible outputs/behaviors represents the functions/subroutines and
profiles the program as a whole. Therefore, we propose to incorporate such a
relationship into learning, for achieving a deeper semantic understanding of
programs. To obtain inputs that are representative enough to trigger the
execution of most part of the code, we resort to fuzz testing and propose fuzz
tuning to boost the performance of program understanding and code
representation learning, given a pre-trained LLM. The effectiveness of the
proposed method is verified on two program understanding tasks including code
clone detection and code classification, and it outperforms current
state-of-the-arts by large margins. Code is available at
https://github.com/rabbitjy/FuzzTuning.
- Abstract(参考訳): プログラムの意味理解はコミュニティに大きな注目を集めている。
自然言語理解における大規模言語モデル(LLM)の最近の成功に触発されて、プログラミング言語を別の自然言語として扱い、プログラムコードのコーパス上でLLMを訓練することで大きな進歩を遂げた。
しかし、プログラムは基本的にはテキストと異なり、通常は重く構造化され、構文に制約がある。
特に、プログラムとその基本ユニット(関数とサブルーチン)は、様々な動作を示し、異なる入力を与えられた出力を提供するように設計されている。
入力と出力/振る舞いの関係は関数/サブルーチンを表し、プログラム全体をプロファイルする。
そこで,このような関係を学習に取り入れ,プログラムの意味理解の深化を図ることを提案する。
コードの大部分の実行をトリガーするのに十分なインプットを得るためには、fuzzテストとfuzzチューニングを提案し、事前訓練されたllmを与えられたプログラム理解とコード表現学習のパフォーマンスを向上させる。
提案手法の有効性は,コードクローン検出とコード分類を含む2つのプログラム理解課題において検証され,現状よりも大きなマージンで評価された。
コードはhttps://github.com/rabbitjy/fuzztuningで入手できる。
関連論文リスト
- Which Programming Language and What Features at Pre-training Stage Affect Downstream Logical Inference Performance? [26.91104188917787]
大規模言語モデル(LLM)は、数学や論理的推論タスクにおいて顕著な一般化能力を示している。
本研究の目的は,事前学習中の言語と特徴が論理推論性能にどのような影響を及ぼすかを検証することである。
論文 参考訳(メタデータ) (2024-10-09T10:13:13Z) - Learning to Reason via Program Generation, Emulation, and Search [33.11955431589091]
言語モデル(LM)によるプログラム合成は、多くの推論能力を解放した。
すべての推論タスクは、コードとして容易に表現できるわけではない。例えば、常識的推論、道徳的意思決定、皮肉な理解を含むタスクである。
我々は,プログラム合成スキルをこのようなタスクに拡張するために,コード生成とエミュレートされた実行(CoGEX)を提案する。
論文 参考訳(メタデータ) (2024-05-25T19:40:50Z) - AIOS Compiler: LLM as Interpreter for Natural Language Programming and Flow Programming of AI Agents [38.580779075892636]
我々は、コード表現と実行(CoRE)のための新しいシステムを開発する。
提案システムは,自然言語プログラミング,擬似コードプログラミング,フロープログラミングを同一表現で統合し,言語エージェントを構築する。
実行中に、冗長性を最小化するために外部メモリを組み込む。
論文 参考訳(メタデータ) (2024-05-11T04:29:03Z) - CodeGRAG: Bridging the Gap between Natural Language and Programming Language via Graphical Retrieval Augmented Generation [58.84212778960507]
我々は,LLMの性能を高めるため,グラフィカル検索拡張コード生成フレームワークであるCodeGRAGを提案する。
CodeGRAGは、制御フローとデータフローに基づいて、コードブロックのグラフィカルなビューを構築し、プログラミング言語と自然言語のギャップを埋める。
ハードメタグラフプロンプト、ソフトプロンプト技術、事前訓練されたGNN専門家の目的の有効性を検証するために、C++言語とピソン言語の両方を含む4つのデータセットで様々な実験と改善が行われた。
論文 参考訳(メタデータ) (2024-05-03T02:48:55Z) - Natural Language Embedded Programs for Hybrid Language Symbolic Reasoning [84.12154024070024]
本研究では,数学・記号的推論,自然言語理解,後続の課題に対処するための統合フレームワークとして,自然言語組み込みプログラム(NLEP)を提案する。
我々のアプローチは,構造化知識の自然言語表現を含むデータ構造上の関数を定義する完全なPythonプログラムを生成するよう,言語モデルに促す。
Pythonインタープリタが生成されたコードを実行し、出力をプリントする。
論文 参考訳(メタデータ) (2023-09-19T17:54:21Z) - Code Representation Pre-training with Complements from Program
Executions [29.148208436656216]
テストケースで明らかになったプログラムの動的情報を調べ,それを補体としてコードの特徴表現に埋め込むために,FuzzPretrainを提案する。
FuzzyPretrainは、ソースコードやASTのみをトレーニングしたコード検索に対して、6%/9%のmAP改善を実現した。
論文 参考訳(メタデータ) (2023-09-04T01:57:22Z) - LEVER: Learning to Verify Language-to-Code Generation with Execution [64.36459105535]
本稿では,プログラムの実行結果の検証を学習することで,言語からコードへの生成を改善するシンプルな手法であるLEVERを提案する。
具体的には、LLMからサンプリングされたプログラムが、自然言語入力、プログラム自体とその実行結果に基づいて正しいか否かを判定するために、検証者を訓練する。
LEVER はベースコード LLMs (4.6% から 10.9% まで) を継続的に改善し、それらすべてに対して新しい最先端の結果を得る。
論文 参考訳(メタデータ) (2023-02-16T18:23:22Z) - Natural Language to Code Translation with Execution [82.52142893010563]
実行結果-プログラム選択のための最小ベイズリスク復号化。
そこで本研究では,自然言語からコードへのタスクにおいて,事前訓練されたコードモデルの性能を向上することを示す。
論文 参考訳(メタデータ) (2022-04-25T06:06:08Z) - Unified Pre-training for Program Understanding and Generation [46.89905110678675]
PLBARTは、プログラムおよび言語理解および生成タスクの幅広い範囲を実行できるシーケンス・ツー・シーケンスモデルである。
PLBARTは、JavaとPythonの関数と関連するNLテキストの広範なコレクションに、自動エンコーディングを通知することで事前トレーニングされている。
論文 参考訳(メタデータ) (2021-03-10T20:32:59Z) - Latent Programmer: Discrete Latent Codes for Program Synthesis [56.37993487589351]
プログラム合成や文書要約などの多くのシーケンス学習タスクにおいて、重要な問題は出力シーケンスの広い空間を探索することである。
本稿では,検索対象とする出力の表現を学習することを提案する。
本稿では,まず入力/出力サンプルから離散潜在コードを予測するプログラム合成手法であるemphLatent Programmerを紹介し,そのプログラムを対象言語で生成する。
論文 参考訳(メタデータ) (2020-12-01T10:11:35Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。