論文の概要: 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は、他の複雑な現実世界のソフトウェアシステムのホワイトボックスファジングにも適用することができる。
関連論文リスト
- Your Fix Is My Exploit: Enabling Comprehensive DL Library API Fuzzing with Large Language Models [49.214291813478695]
AIアプリケーションで広く使用されているディープラーニング(DL)ライブラリは、オーバーフローやバッファフリーエラーなどの脆弱性を含むことが多い。
従来のファジィングはDLライブラリの複雑さとAPIの多様性に悩まされている。
DLライブラリのためのLLM駆動ファジィ手法であるDFUZZを提案する。
論文 参考訳(メタデータ) (2025-01-08T07:07:22Z) - Finding Missed Code Size Optimizations in Compilers using LLMs [1.90019787465083]
我々は,大規模言語モデルと一連の差分テスト戦略を組み合わせた新しいテスト手法を開発した。
当社のアプローチでは,実装に150行未満のコードが必要です。
現在までに、本番コンパイラの24のバグが報告されている。
論文 参考訳(メタデータ) (2024-12-31T21:47:46Z) - CRUXEval-X: A Benchmark for Multilingual Code Reasoning, Understanding and Execution [50.7413285637879]
CRUXEVAL-Xコード推論ベンチマークには19のプログラミング言語が含まれている。
各言語に対して少なくとも600人の被験者で構成され、合計19Kのコンテンツ一貫性テストがある。
Pythonでのみトレーニングされたモデルでさえ、他の言語で34.4%のPass@1を達成することができる。
論文 参考訳(メタデータ) (2024-08-23T11:43:00Z) - KGym: A Platform and Dataset to Benchmark Large Language Models on Linux Kernel Crash Resolution [59.20933707301566]
大規模言語モデル(LLM)は、ますます現実的なソフトウェア工学(SE)タスクにおいて一貫して改善されている。
現実世界のソフトウェアスタックでは、Linuxカーネルのような基本的なシステムソフトウェアの開発にSEの取り組みが費やされています。
このような大規模システムレベルのソフトウェアを開発する際にMLモデルが有用かどうかを評価するため、kGymとkBenchを紹介する。
論文 参考訳(メタデータ) (2024-07-02T21:44:22Z) - LLM-Vectorizer: LLM-based Verified Loop Vectorizer [12.048697450464935]
大規模言語モデル(LLM)は、個々の配列要素を処理するスカラープログラムからベクトル化されたコードを生成することができる。
LLMは1.1xから9.4xまでのランタイムスピードアップで高性能なベクトルコードを生成することができる。
我々のアプローチでは、TSVCベンチマークデータセットで正しいベクター化の38.2%を検証できる。
論文 参考訳(メタデータ) (2024-06-07T07:04:26Z) - 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 [80.73121177868357]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用および4つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (2024-01-09T15:46:38Z) - A Survey of Modern Compiler Fuzzing [0.0]
この調査は、コンパイラの欠陥を理解し、対処するための研究成果の概要を提供する。
研究者は、その症状や根本原因など、コンパイラーのバグに関する調査と専門知識をカバーしている。
さらに、テストプログラムの構築やテストオラクルの設計など、ファジング技術を設計する研究者の取り組みについても取り上げている。
論文 参考訳(メタデータ) (2023-06-12T06:03:51Z) - LeTI: Learning to Generate from Textual Interactions [60.425769582343506]
本稿では,テキストインタラクション(LETI)から学習するLMの可能性を,バイナリラベルによる正当性をチェックするだけでなく,テキストフィードバックを通じて出力中のエラーをピンポイントし,説明する。
私たちの焦点はコード生成タスクであり、そこではモデルが自然言語命令に基づいてコードを生成する。
LETIは、目的のLMを用いて、自然言語命令、LM生成プログラム、テキストフィードバックの結合に基づいて、モデルを反復的に微調整する。
論文 参考訳(メタデータ) (2023-05-17T15:53:31Z) - 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) - Coverage-Guided Tensor Compiler Fuzzing with Joint IR-Pass Mutation [20.519361342905775]
広範に使われているTVMテンソルコンパイラのためのファジィ手法であるTzerを提案する。
以上の結果から,Tzerはテンソルコンパイラテストにおいて,既存のファジリング技術よりも大幅に優れていることがわかった。
これまでTzerは、TVMの49の既知のバグを検出し、37のバグが確認され、25のバグが修正された。
論文 参考訳(メタデータ) (2022-02-21T01:48:11Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。