論文の概要: White-box Compiler Fuzzing Empowered by Large Language Models
- arxiv url: http://arxiv.org/abs/2310.15991v1
- Date: Tue, 24 Oct 2023 16:39:06 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-25 17:38:55.733790
- Title: White-box Compiler Fuzzing Empowered by Large Language Models
- Title(参考訳): 大型言語モデルによるホワイトボックスコンパイラのファジング
- Authors: Chenyuan Yang, Yinlin Deng, Runyu Lu, Jiayi Yao, Jiawei Liu, Reyhaneh
Jabbarvand, Lingming Zhang
- Abstract要約: 提案するWhiteFoxは,ソースコード情報付きLarge Language Modelを用いた,最初のホワイトボックスコンパイラファザである。
WhiteFoxは複雑な条件を必要とする深い最適化を実行するために高品質なテストを生成することができる。
現在までに、WhiteFoxは96のバグを発見し、80が以前不明と確認され、51がすでに修正されている。
- 参考スコア(独自算出の注目度): 11.826920511314336
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Compiler correctness is crucial, as miscompilation falsifying the program
behaviors can lead to serious consequences. In the literature, fuzzing has been
extensively studied to uncover compiler defects. However, compiler fuzzing
remains challenging: Existing arts focus on black- and grey-box fuzzing, which
generates tests without sufficient understanding of internal compiler
behaviors. As such, they often fail to construct programs to exercise
conditions of intricate optimizations. Meanwhile, traditional white-box
techniques are computationally inapplicable to the giant codebase of compilers.
Recent advances demonstrate that Large Language Models (LLMs) excel in code
generation/understanding tasks and have achieved state-of-the-art performance
in black-box fuzzing. Nonetheless, prompting LLMs with compiler source-code
information remains a missing piece of research in compiler testing.
To this end, we propose WhiteFox, the first white-box compiler fuzzer using
LLMs with source-code information to test compiler optimization. WhiteFox
adopts a dual-model framework: (i) an analysis LLM examines the low-level
optimization source code and produces requirements on the high-level test
programs that can trigger the optimization; (ii) a generation LLM produces test
programs based on the summarized requirements. Additionally,
optimization-triggering tests are used as feedback to further enhance the test
generation on the fly. Our evaluation on four popular compilers shows that
WhiteFox can generate high-quality tests to exercise deep optimizations
requiring intricate conditions, practicing up to 80 more optimizations than
state-of-the-art fuzzers. To date, WhiteFox has found in total 96 bugs, with 80
confirmed as previously unknown and 51 already fixed. Beyond compiler testing,
WhiteFox can also be adapted for white-box fuzzing of other complex, real-world
software systems in general.
- Abstract(参考訳): プログラムの振る舞いを偽装することは重大な結果をもたらす可能性があるため、コンパイラの正確性は不可欠である。
文献では、ファジングはコンパイラの欠陥を明らかにするために広く研究されている。
既存のアーティファクトは、内部のコンパイラ動作を十分に理解せずにテストを生成するブラックボックスとグレイボックスファジングに焦点を当てている。
そのため、しばしば複雑な最適化の条件を実行するプログラムの構築に失敗する。
一方、従来のホワイトボックス技術は、コンパイラの巨大なコードベースに計算的に適用できない。
最近の進歩は、大規模言語モデル(llm)がコード生成/理解タスクに優れ、ブラックボックスファジングで最先端のパフォーマンスを達成していることを示している。
それでも、コンパイラのソースコード情報によるLLMのプロンプトは、コンパイラテストの欠如した部分である。
そこで本研究では,LLMを用いた最初のホワイトボックスコンパイラファザであるWhiteFoxを提案する。
WhiteFoxはデュアルモデルフレームワークを採用しています。
(i)低レベル最適化ソースコードを解析し、最適化をトリガーできる高レベルテストプログラムの要求を生成すること。
(ii)世代llmは、要約された要件に基づいてテストプログラムを生成する。
さらに、最適化-トリガーテストはフィードバックとして使われ、テスト生成をさらに高めます。
一般的な4つのコンパイラに対する評価は、WhiteFoxが最先端のファジィよりも80以上の最適化を実践し、複雑な条件を必要とする深い最適化を実行するために高品質なテストを生成することができることを示している。
現在までに、WhiteFoxは96のバグを発見し、80が以前不明と確認され、51がすでに修正されている。
コンパイラテスト以外にも、WhiteFoxは、他の複雑な現実世界のソフトウェアシステムのホワイトボックスファジングにも適用することができる。
関連論文リスト
- Supercompiler Code Optimization with Zero-Shot Reinforcement Learning [63.164423329052404]
エージェントの1回の試行において,各プログラムの効率的な最適化戦略を即時に生成するために,大規模データで広範囲に訓練された人工知能エージェントであるCodeZeroを提示する。
われわれの手法は、人工知能の工学的潜在能力を生かし、コード最適化の領域で機械学習技術をスケールする方法を開拓する。
論文 参考訳(メタデータ) (2024-04-24T09:20:33Z) - IRFuzzer: Specialized Fuzzing for LLVM Backend Code Generation [3.7297002723174235]
IRFuzzerを実装し,LLVMコンパイラバックエンドのファジィ化の有効性について検討する。
IRFuzzerのミューテータは、構造化制御フロー、ベクトルタイプ、関数定義を含む幅広いLLVM IR入力を生成することができる。
IRFuzzer は 29 の成熟した LLVM バックエンドターゲットにファジィをファジィ化することで,既存のファジィよりも有効であることを示す。
論文 参考訳(メタデータ) (2024-02-07T21:02:33Z) - DebugBench: Evaluating Debugging Capability of Large Language Models [89.13051256657995]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用モデルと3つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (2024-01-09T15:46:38Z) - Isolating Compiler Bugs by Generating Effective Witness Programs with Large Language Models [10.660543763757518]
既存のコンパイラのバグ分離アプローチは、問題をテストプログラムの突然変異問題に変換する。
コンパイラのバグ分離のための効率的なテストプログラムを生成するために,LLM4CBIという新しい手法を提案する。
GCCとLLVMの120以上の実際のバグに対する最先端のアプローチと比較し,LLM4CBIの利点を実証した。
論文 参考訳(メタデータ) (2023-07-02T15:20:54Z) - A Survey of Modern Compiler Fuzzing [0.0]
この調査は、コンパイラの欠陥を理解し、対処するための研究成果の概要を提供する。
研究者は、その症状や根本原因など、コンパイラーのバグに関する調査と専門知識をカバーしている。
さらに、テストプログラムの構築やテストオラクルの設計など、ファジング技術を設計する研究者の取り組みについても取り上げている。
論文 参考訳(メタデータ) (2023-06-12T06:03:51Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - ALGO: Synthesizing Algorithmic Programs with LLM-Generated Oracle
Verifiers [60.6418431624873]
大きな言語モデル(LLM)は、機能記述からコードを実装するのに優れているが、アルゴリズムの問題に悩まされている。
我々は,アルゴリズムプログラムを LLM 生成 Oracle で合成するフレームワーク ALGO を提案し,その生成をガイドし,その正確性を検証する。
実験の結果,ALGOを装着すると,Codexモデルよりも8倍,CodeTよりも2.6倍の1サブミッションパス率が得られることがわかった。
論文 参考訳(メタデータ) (2023-05-24T00:10:15Z) - LTM: Scalable and Black-box Similarity-based Test Suite Minimization based on Language Models [0.6562256987706128]
テストスイートはソフトウェアが進化するにつれて成長する傾向にあり、割り当てられたテスト予算ですべてのテストケースを実行することができないことが多い。
テストスイートの最小化(TSM)は、冗長なテストケースを削除することで、ソフトウェアテストの効率を改善するために使用される。
LTM(Language model-based Test suite Minimization)を提案する。
論文 参考訳(メタデータ) (2023-04-03T22:16:52Z) - 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) - Learning Performance-Improving Code Edits [107.21538852090208]
本稿では,大規模言語モデル(LLM)を高レベルプログラム最適化に適用するためのフレームワークを提案する。
まず、競争力のある77,000以上のC++プログラミングサブミッションペアによる、人間のプログラマによるパフォーマンス改善編集のデータセットをキュレートする。
提案手法は,検索をベースとした少数ショットプロンプトとチェーン・オブ・シンクレットを提案し,その微調整には,自己再生に基づく性能条件付き生成と合成データ拡張が含まれる。
論文 参考訳(メタデータ) (2023-02-15T18:59:21Z) - Fuzzing Deep Learning Compilers with HirGen [12.068825031724229]
HirGenは、ハイレベルIRの最適化において、コーディングミスを効果的に露呈することを目的とした自動テスト技術である。
HirGenは、TVMで発生した21のバグを正常に検出し、17のバグが確認され、12が修正された。
実験の結果,HirGenは48時間以内にベースラインで検出できない10のクラッシュや不整合を検出することができた。
論文 参考訳(メタデータ) (2022-08-03T16:26:30Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。