論文の概要: MoCo: Fuzzing Deep Learning Libraries via Assembling Code
- arxiv url: http://arxiv.org/abs/2405.07744v1
- Date: Mon, 13 May 2024 13:40:55 GMT
- ステータス: 処理完了
- システム内更新日: 2024-05-14 13:35:36.252151
- Title: MoCo: Fuzzing Deep Learning Libraries via Assembling Code
- Title(参考訳): MoCo: アセンブリコードによるディープラーニングライブラリのファジィ化
- Authors: Pin Ji, Yang Feng, Duo Wu, Lingyue Yan, Pengling Chen, Jia Liu, Zhihong Zhao,
- Abstract要約: ディープラーニング技術は様々なアプリケーションシナリオを持つソフトウェアシステムに応用されている。
DLライブラリはDLシステムの基盤として機能し、その中のバグは予測不可能な影響をもたらす可能性がある。
そこで本研究では,組立コードによるDLライブラリのファジングテスト手法であるMoCoを提案する。
- 参考スコア(独自算出の注目度): 13.937180393991616
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: The rapidly developing deep learning (DL) techniques have been applied in software systems with various application scenarios. However, they could also pose new safety threats with potentially serious consequences, especially in safety-critical domains. DL libraries serve as the underlying foundation for DL systems, and bugs in them can have unpredictable impacts that directly affect the behaviors of DL systems. Previous research on fuzzing DL libraries still has limitations in the diversity of test inputs, the construction of test oracles, and the precision of detection. In this paper, we propose MoCo, a novel fuzzing testing method for DL libraries via assembling code. MoCo first disassembles the seed code file to obtain the template and code blocks, and then employs code block mutation operators (e.g., API replacement, random generation, and boundary checking) to generate more new code blocks adapted to the template. By inserting context-appropriate code blocks into the template step by step, MoCo can generate a tree of code files with intergenerational relations. According to the derivation relations in this tree and the applied mutation operators, we construct the test oracle based on the execution state consistency. Since the granularity of code assembly and mutation is controlled rather than randomly divergent, we can quickly pinpoint the lines of code where the bugs are located and the corresponding triggering conditions. We conduct a comprehensive experiment to evaluate the efficiency and effectiveness of MoCo using three widely-used DL libraries (i.e., TensorFlow, PyTorch, and Jittor). During the experiment, MoCo detects 64 new bugs of four types in three DL libraries, where 51 bugs have been confirmed, and 13 bugs have been fixed by developers.
- Abstract(参考訳): 急速に発展するディープラーニング(DL)技術は、様々なアプリケーションシナリオを持つソフトウェアシステムに応用されている。
しかし、特に安全クリティカルな領域において、深刻な結果をもたらす可能性のある新たな安全上の脅威を生じさせる可能性がある。
DLライブラリは、DLシステムの基盤となる基盤であり、その中のバグは、DLシステムの振舞いに直接影響する予測不可能な影響を持つ可能性がある。
ファジィングDLライブラリに関するこれまでの研究は、テスト入力の多様性、テストオラクルの構築、検出精度に制限がある。
本稿では,組立コードによるDLライブラリのファジングテスト手法であるMoCoを提案する。
MoCoはまずシードコードファイルを分解してテンプレートとコードブロックを取得し、その後、コードブロック突然変異演算子(例えば、API置換、ランダム生成、バウンダリチェック)を使用して、テンプレートに適合した新しいコードブロックを生成する。
コンテキストに適したコードブロックを段階的にテンプレートに挿入することで、世代間関係のあるコードファイルのツリーを生成することができる。
この木と適用突然変異演算子の導出関係に基づき、実行状態の整合性に基づいてテストオラクルを構築する。
コードアセンブリと突然変異の粒度はランダムに分岐するのではなく制御されるので、バグのあるコード行とそれに対応するトリガー条件を素早く特定できます。
我々は、広く使われている3つのDLライブラリ(TensorFlow、PyTorch、Jittor)を使用して、MoCoの効率性と有効性を評価する包括的な実験を行う。
実験中、MoCoは3つのDLライブラリで4つのタイプの64の新しいバグを検出し、51のバグが確認され、13のバグが開発者によって修正された。
関連論文リスト
- What's Wrong with Your Code Generated by Large Language Models? An Extensive Study [80.18342600996601]
大規模言語モデル(LLM)は、標準解に比べて短いがより複雑なコードを生成する。
3つのカテゴリと12のサブカテゴリを含む誤ったコードに対するバグの分類を開発し、一般的なバグタイプに対する根本原因を分析する。
そこで本研究では,LLMがバグタイプやコンパイラフィードバックに基づいて生成したコードを批判し,修正することのできる,自己批判を導入した新たな学習自由反復手法を提案する。
論文 参考訳(メタデータ) (2024-07-08T17:27:17Z) - DLLens: Testing Deep Learning Libraries via LLM-aided Synthesis [8.779035160734523]
テストは、ディープラーニング(DL)ライブラリの品質を保証するための主要なアプローチである。
既存のテスト技術では、テストオラクルの構築を緩和するために差分テストを採用するのが一般的である。
本稿では,DLライブラリテストのための新しい差分試験手法であるシーレンスを紹介する。
論文 参考訳(メタデータ) (2024-06-12T07:06:38Z) - LLMorpheus: Mutation Testing using Large Language Models [7.312170216336085]
本稿では,ソースコードに挿入されたプレースホルダーを置き換えることで,LLM(Large Language Model)に変異を提案する手法を提案する。
LLMorpheusは、最先端の突然変異検査ツールであるStrykerJSでは生成できない既存のバグに似た変異を生成できる。
論文 参考訳(メタデータ) (2024-04-15T17:25:14Z) - DebugBench: Evaluating Debugging Capability of Large Language Models [80.73121177868357]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用および4つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (2024-01-09T15:46:38Z) - CodeChain: Towards Modular Code Generation Through Chain of Self-revisions with Representative Sub-modules [51.82044734879657]
我々は,自己修正の連鎖を通じてモジュール化されたコード生成を誘発する,新しい推論フレームワークであるCodeChainを提案する。
CodeChainは、生成したソリューションのモジュール性と正確性の両方を大幅に向上させ、APPSで35%、CodeContestsで76%の相対パス@1の改善を実現しています。
論文 参考訳(メタデータ) (2023-10-13T10:17:48Z) - InterCode: Standardizing and Benchmarking Interactive Coding with
Execution Feedback [50.725076393314964]
標準的な強化学習環境として,インタラクティブコーディングの軽量でフレキシブルで使いやすいフレームワークであるInterCodeを紹介した。
私たちのフレームワークは、言語とプラットフォームに依存しない、自己完結型のDocker環境を使用して、安全で再現可能な実行を提供します。
我々は、異なるプロンプト戦略で構成された複数の最先端LLMを評価することにより、InterCodeの生存性をテストベッドとして示す。
論文 参考訳(メタデータ) (2023-06-26T17:59:50Z) - CONCORD: Clone-aware Contrastive Learning for Source Code [64.51161487524436]
セルフ教師付き事前トレーニングは、多くのダウンストリームSEタスクに価値のあるジェネリックコード表現を学ぶための牽引役になった。
汎用的な表現学習のために、開発者が日々どのようにコードをコーディングするかは、要因としても不可欠である、と私たちは主張する。
特に,表現空間に良性クローンを近づける自己教師型コントラスト学習戦略であるCONCORDを提案する。
論文 参考訳(メタデータ) (2023-06-05T20:39:08Z) - ACETest: Automated Constraint Extraction for Testing Deep Learning
Operators [23.129431525952263]
テストケースが入力妥当性チェックをパスし、演算子のコア関数ロジックに到達できることが不可欠である。
既存のテクニックは、制約を抽出するために、DLライブラリAPIの人的努力またはドキュメントに依存する。
本研究では,コードから入力検証制約を自動的に抽出し,有効かつ多様なテストケースを構築する技術であるACETestを提案する。
論文 参考訳(メタデータ) (2023-05-29T06:49:40Z) - MEMO: Coverage-guided Model Generation For Deep Learning Library Testing [11.263121366956726]
テスト入力としてDLモデルを生成することによって、ディープラーニング(DL)ライブラリをテストするためのいくつかの技術が提案されている。
しかし、これらの手法のテストの有効性は、生成されたDLモデルの多様性によって制約される。
本稿では,レイヤタイプ,層ペア,層パラメータを探索することにより,多様なDLモデルを効率的に生成するMEMOを提案する。
論文 参考訳(メタデータ) (2022-08-02T14:53:02Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - Predicting Vulnerability In Large Codebases With Deep Code
Representation [6.357681017646283]
ソフトウェアエンジニアは様々なモジュールのコードを書きます。
過去に(異なるモジュールで)修正された同様の問題やバグも、本番コードで再び導入される傾向にある。
ソースコードから生成した抽象構文木(AST)の深部表現とアクティブフィードバックループを用いた,AIに基づく新しいシステムを開発した。
論文 参考訳(メタデータ) (2020-04-24T13:18:35Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。