論文の概要: WhiteFox: White-Box Compiler Fuzzing Empowered by Large Language Models
- arxiv url: http://arxiv.org/abs/2310.15991v3
- Date: Wed, 4 Sep 2024 18:25:09 GMT
- ステータス: 処理完了
- システム内更新日: 2024-09-07 04:31:08.061463
- Title: WhiteFox: White-Box Compiler Fuzzing Empowered by Large Language Models
- Title(参考訳): WhiteFox:大規模言語モデルを活用したWhite-Boxコンパイラファジィ
- Authors: Chenyuan Yang, Yinlin Deng, Runyu Lu, Jiayi Yao, Jiawei Liu, Reyhaneh Jabbarvand, Lingming Zhang,
- Abstract要約: 提案するWhiteFoxは,ソースコード情報付きLarge Language Modelを用いた,最初のホワイトボックスコンパイラファザである。
WhiteFoxは、高度な最適化を行うための高品質なテストプログラムを生成することができる。
WhiteFoxはDLコンパイラの101のバグを発見した。
- 参考スコア(独自算出の注目度): 11.33856613057612
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Compiler correctness is crucial, as miscompilation can falsify program behaviors, leading to serious consequences. Fuzzing has been 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. Meanwhile, traditional white-box techniques, like symbolic execution, are computationally inapplicable to the giant codebase of compilers. Recent advances demonstrate that Large Language Models (LLMs) excel in code generation/understanding tasks. Nonetheless, guiding 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, with a spotlight on detecting deep logic bugs in the deep learning (DL) compilers. WhiteFox adopts a multi-agent framework: an LLM-based analysis agent examines the low-level optimization source code and produces requirements on the high-level test programs that can trigger the optimization; an LLM-based generation agent produces test programs based on the summarized requirements. Additionally, optimization-triggering tests are used as feedback to enhance the generation on the fly. Our evaluation on the three most popular DL compilers (i.e., PyTorch Inductor, TensorFlow-XLA, and TensorFlow Lite) shows WhiteFox can generate high-quality test programs to exercise deep optimizations, practicing up to 8X more than state-of-the-art fuzzers. WhiteFox has found 101 bugs for the DL compilers, with 92 confirmed as previously unknown and 70 fixed. WhiteFox has been acknowledged by the PyTorch team and is being incorporated into its development workflow. Beyond DL compilers, WhiteFox can also be adapted for compilers in different domains.
- Abstract(参考訳): 誤コンパイルはプログラムの振る舞いを偽装し、重大な結果をもたらすため、コンパイラの正しさは不可欠である。
ファジングはコンパイラの欠陥を明らかにするために研究されている。
既存のアーティファクトは、内部のコンパイラ動作を十分に理解せずにテストを生成するブラックボックスとグレイボックスファジングに重点を置いている。
一方、シンボリック実行のような従来のホワイトボックス技術は、コンパイラの巨大なコードベースに計算的に適用できない。
最近の進歩は、コード生成/理解タスクにおいて、LLM(Large Language Models)が優れていることを示している。
それでも、LLMをコンパイラのソースコード情報で導くことは、コンパイラテストの欠如した研究である。
そこで本研究では,LLMを用いた最初のホワイトボックスコンパイラファザであるWhiteFoxを提案する。
マルチエージェントフレームワークを採用している: LLMベースの分析エージェントは、低レベル最適化ソースコードを調べ、最適化をトリガーできる高レベルテストプログラムの要求を生成する。
さらに、最適化トリガテストは、オンザフライでの生成を改善するフィードバックとして使用される。
最も人気のある3つのDLコンパイラ(PyTorchインダクタ、TensorFlow-XLA、TensorFlow Lite)に対する我々の評価によると、WhiteFoxは最先端のファジィよりも最大8倍高いパフォーマンスで、深い最適化を実行するための高品質なテストプログラムを生成することができる。
WhiteFoxはDLコンパイラの101のバグを発見した。
WhiteFoxはPyTorchチームによって承認され、開発ワークフローに組み込まれている。
DLコンパイラ以外にも、WhiteFoxは異なるドメインのコンパイラにも適用できる。
関連論文リスト
- 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) - LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing [6.042114639413868]
特殊なファジィザは複雑な構造化データを扱うことができるが、文法にさらなる努力が必要であり、低スループットに悩まされる。
本稿では,構造化データに対するグレーボックスファジングを強化するために,Large Language Modelを活用する可能性について検討する。
LLMベースのファザであるLLAMAFUZZは、LLMのパワーを統合して、構造化データをファザリングに理解し、変更する。
論文 参考訳(メタデータ) (2024-06-11T20:48:28Z) - 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 [80.73121177868357]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用および4つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (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) - 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) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。