Skip to main content
QUICK REVIEW

[論文レビュー] Large Language Models are Zero-Shot Fuzzers: Fuzzing Deep-Learning Libraries via Large Language Models

Yinlin Deng, Chunqiu Steven Xia|arXiv (Cornell University)|Dec 30, 2022
Software Testing and Debugging Techniques被引用数 13
ひとこと要約

TitanFuzz は、大規模言語モデル(LLM)をゼロショットファズァーとして活用し、TensorFlow や PyTorch ライブラリのテスト用に多様で正当なディープラーニングプログラムを自動生成する最初のフレームワークである。生成型とインフィルリング LLM(例:Codex や InCoder)を組み合わせてシード生成と進化的な変異を実行することで、TitanFuzz は TensorFlow と PyTorch において、それぞれ 30.38% および 50.84% の高いコードカバレッジを達成し、合計 65 件のバグを発見した。そのうち 41 件は以前に知られていなかったものである。

ABSTRACT

Detecting bugs in Deep Learning (DL) libraries (e.g., TensorFlow/PyTorch) is critical for almost all downstream DL systems in ensuring effectiveness/safety for end users. Meanwhile, traditional fuzzing techniques can be hardly effective for such a challenging domain since the input DL programs need to satisfy both the input language (e.g., Python) syntax/semantics and the DL API input/shape constraints for tensor computations. To address these limitations, we propose TitanFuzz - the first approach to directly leveraging Large Language Models (LLMs) to generate input programs for fuzzing DL libraries. LLMs are titanic models trained on billions of code snippets and can auto-regressively generate human-like code snippets. Our key insight is that modern LLMs can also include numerous code snippets invoking DL library APIs in their training corpora, and thus can implicitly learn both language syntax/semantics and intricate DL API constraints for valid DL program generation. More specifically, we use both generative and infilling LLMs (e.g., Codex/InCoder) to generate and mutate valid/diverse input DL programs for fuzzing. Our experimental results demonstrate that TitanFuzz can achieve 30.38%/50.84% higher code coverage than state-of-the-art fuzzers on TensorFlow/PyTorch. Furthermore, TitanFuzz is able to detect 65 bugs, with 41 already confirmed as previously unknown bugs. This paper demonstrates that modern titanic LLMs can be leveraged to directly perform both generation-based and mutation-based fuzzing studied for decades, while being fully automated, generalizable, and applicable to domains challenging for traditional approaches (such as DL systems). We hope TitanFuzz can stimulate more work in this promising direction of LLMs for fuzzing.

研究の動機と目的

  • 従来のファジングでは、入力プログラムが複雑な構文・意味論的制約およびテンソルの形状制約を満たす必要があるという、ディープラーニングライブラリにおける限界を克服すること。
  • 従来の API レベルおよびモデルレベルのファズァーが、API シーケンスの多様性に欠け、任意の正当なコードを生成できないという課題を克服すること。
  • 大規模言語モデル(LLM)が、数千億個のコードスニペットの学習を経て、タスク固有の訓練やシードデータベースなしに、直接的にディープラーニングライブラリ用のゼロショットファズァーとして機能できるかどうかを検証すること。
  • LLM を用いて有効な DL プログラムを生成・変異させる完全自動化・一般化可能で効果的なファジングフレームワークを構築すること。

提案手法

  • プロンプト工学を用いて、生成型 LLM(例:Codex)を活用し、DL ライブラリ用に構文的に正しく、意味的に妥当な高品質なシードプログラムを生成すること。
  • インフィルリング LLM(例:InCoder)を用いて、プログラム内のコードセグメントを挿入・置換・削除することで、シードプログラムに対して進化的な変異を実行すること。
  • CPU と GPU の出力を比較する差分テストオラクルを適用し、不一致を検出することで、潜在的なバグを特定すること。
  • フィードバック駆動型の進化的アルゴリズムを用いて、変異をより高いコードカバレッジおよびバグ検出率へと誘導すること。
  • 実行による検証と、クラッシュ、実行時エラー、またはハードウェアバックエンド間での意味的不一致の監視を通じて、生成されたプログラムの妥当性を確認すること。

実験結果

リサーチクエスチョン

  • RQ1タスク固有の訓練やシードデータベースなしに、大規模言語モデル(LLM)をディープラーニングライブラリ用のゼロショットファズァーとして効果的に使用できるか?
  • RQ2LLM を用いた生成と変異は、最先端の API レベルおよびモデルレベルファズァーと比較して、より高いコードカバレッジを達成するのにどの程度有効か?
  • RQ3LLM を用いたファジングは、従来のファズァーが見逃す可能性のある、まれなまたは複雑な API シーケンスにおいて、以前に知られていなかったバグを発見できるか?
  • RQ4LLM は、ループや制御構文などの Python 固有の構文を含む、正当で多様かつ複雑な DL プログラムをどの程度生成できるか?
  • RQ5プロンプト工学やモデル選択(例:Codex と InCoder の比較)が、生成されたテストプログラムの品質および多様性に及ぼす影響は何か?

主な発見

  • TitanFuzz は、最先端のファズァーと比較して、TensorFlow では 30.38%、PyTorch では 50.84% の高いコードカバレッジを達成した。
  • PyTorch と TensorFlow の両方で合計 65 件の独自バグを検出。そのうち 53 件が確認済みで、そのうち 41 件は以前に知られていなかったものであった。
  • 確認済みバグのうち 10 件は、変異処理を経ずに LLM が生成したシードから直接発見された。これは初期プログラム生成の高品質さを示している。
  • TitanFuzz は、特定の API シーケンス(log に続く matrix_exp)でのみ発生する GPU 特有の同期バグを PyTorch で検出できた。これは従来のツールが見逃していた。
  • TitanFuzz は、API の人気の低さとシードカバレッジの不足により、従来のファズァーが見逃していた TensorFlow の ParallelDynamicStitch API における深刻なセキュリティ脆弱性(静黙の境界外読み込み)を発見した。
  • 検出された不一致の1件は、開発者によって意図的であると判断された。これは、CPU と GPU で低レベルのシフト演算子が異なるためであり、オラクル設計の注意深さの重要性を示している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。