論文の概要: The Hitchhiker's Guide to Program Analysis: A Journey with Large
Language Models
- arxiv url: http://arxiv.org/abs/2308.00245v3
- Date: Wed, 15 Nov 2023 21:02:47 GMT
- ステータス: 処理完了
- システム内更新日: 2023-11-17 18:30:34.090363
- Title: The Hitchhiker's Guide to Program Analysis: A Journey with Large
Language Models
- Title(参考訳): The Hitchhiker's Guide to Program Analysis: A Journey with Large Language Models
- Authors: Haonan Li, Yu Hao, Yizhuo Zhai, Zhiyun Qian
- Abstract要約: 大規模言語モデル(LLM)は静的解析に代わる有望な選択肢を提供する。
本稿では,LLM支援静的解析のオープン空間を深く掘り下げる。
LLiftは,静的解析ツールとLLMの両方を併用した,完全に自動化されたフレームワークである。
- 参考スコア(独自算出の注目度): 18.026567399243
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Static analysis is a widely used technique in software engineering for
identifying and mitigating bugs. However, a significant hurdle lies in
achieving a delicate balance between precision and scalability. Large Language
Models (LLMs) offer a promising alternative, as recent advances demonstrate
remarkable capabilities in comprehending, generating, and even debugging code.
Yet, the logic of bugs can be complex and require sophisticated reasoning and a
large analysis scope spanning multiple functions. Therefore, at this point,
LLMs are better used in an assistive role to complement static analysis. In
this paper, we take a deep dive into the open space of LLM-assisted static
analysis, using use-before-initialization (UBI) bugs as a case study. To this
end, we develop LLift, a fully automated framework that interfaces with both a
static analysis tool and an LLM. By carefully designing the framework and the
prompts, we are able to overcome a number of challenges, including bug-specific
modeling, the large problem scope, the non-deterministic nature of LLMs, etc.
Tested in a real-world scenario analyzing nearly a thousand potential UBI bugs
produced by static analysis, LLift demonstrates a potent capability, showcasing
a reasonable precision (50%) and appearing to have no missing bugs. It even
identified 13 previously unknown UBI bugs in the Linux kernel. This research
paves the way for new opportunities and methodologies in using LLMs for bug
discovery in extensive, real-world datasets.
- Abstract(参考訳): 静的分析は、バグを特定し緩和するためのソフトウェア工学で広く使われているテクニックである。
しかし、大きなハードルは、精度とスケーラビリティの微妙なバランスを達成することである。
大規模言語モデル(LLM)は将来的な代替手段を提供する。最近の進歩は、コードを解釈、生成、デバッグする素晴らしい機能を示している。
しかし、バグのロジックは複雑で、洗練された推論と複数の関数にまたがる大きな分析範囲を必要とする。
したがって、この時点では、LLMは静的解析を補完する補助役としてよりよく使われる。
本稿では,LUM支援静的解析のオープンスペースを深く掘り下げ,Use-before-initialization (UBI) バグをケーススタディとして用いた。
この目的のために,静的解析ツールとLLMを併用した完全自動化フレームワークLLiftを開発した。
フレームワークとプロンプトを慎重に設計することで、バグ固有のモデリング、大きな問題の範囲、LLMの非決定論的性質など、多くの課題を克服できます。
実世界のシナリオでテストされ、静的解析によって生成された1,000近い潜在的なUBIバグを分析し、LLiftは強力な能力を示し、合理的な精度(50%)を示し、欠陥がないように見える。
また、Linuxカーネルの13のUBIバグも特定している。
本研究は,LLMを用いた広範囲な実世界のデータセットにおけるバグ発見のための新たな機会と方法論の道を開くものである。
関連論文リスト
- 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) - Advancing Anomaly Detection: Non-Semantic Financial Data Encoding with LLMs [49.57641083688934]
本稿では,Large Language Models (LLM) 埋め込みを用いた財務データにおける異常検出の新しい手法を提案する。
実験により,LLMが異常検出に有用な情報をもたらし,モデルがベースラインを上回っていることが確認された。
論文 参考訳(メタデータ) (2024-06-05T20:19:09Z) - WitheredLeaf: Finding Entity-Inconsistency Bugs with LLMs [22.22945885085009]
Entity-Inconsistency Bugs (EIB)はセマンティックバグに由来する。
EIBは微妙で、何年も検出されていない。
本稿では, WitheredLeaf という新しい EIB 検出システムを提案する。
論文 参考訳(メタデータ) (2024-05-02T18:44:34Z) - The Emergence of Large Language Models in Static Analysis: A First Look
through Micro-Benchmarks [3.848607479075651]
我々は,Pythonプログラムのコールグラフ解析と型推論を改善する上で,現在のLarge Language Models (LLM) が果たす役割について検討する。
本研究により, LLMは型推論において有望な結果を示し, 従来の手法よりも高い精度を示したが, コールグラフ解析では限界が認められた。
論文 参考訳(メタデータ) (2024-02-27T16:53:53Z) - LLM Inference Unveiled: Survey and Roofline Model Insights [62.92811060490876]
大規模言語モデル(LLM)推論は急速に進化しており、機会と課題のユニークなブレンドを提示している。
本調査は, 研究状況を要約するだけでなく, 屋上モデルに基づく枠組みを導入することによって, 従来の文献レビューから際立っている。
このフレームワークは、ハードウェアデバイスにLSMをデプロイする際のボトルネックを特定し、実用上の問題を明確に理解する。
論文 参考訳(メタデータ) (2024-02-26T07:33:05Z) - When Dataflow Analysis Meets Large Language Models [9.458251511218817]
本稿では,LLMDFAについて述べる。LLMDFAはLLLMを利用したデータフロー解析フレームワークで,コンパイルインフラを必要とせずに任意のコードスニペットを解析する。
LLMDFAは、要約に基づくデータフロー分析にヒントを得て、問題を3つのサブプロブレムに分解し、いくつかの重要な戦略によって効果的に解決する。
評価の結果,本設計は幻覚を緩和し,推論能力を向上し,データフロー関連バグの検出において高い精度とリコールが得られることがわかった。
論文 参考訳(メタデータ) (2024-02-16T15:21:35Z) - E&V: Prompting Large Language Models to Perform Static Analysis by
Pseudo-code Execution and Verification [7.745665775992235]
大きな言語モデル(LLM)は、ソフトウェア工学のタスクに新しい機能を提供する。
LLMは擬似コードの実行をシミュレートし、最小限の努力で擬似コードにエンコードされた静的解析を効果的に実行する。
E&Vは、外部のオラクルを必要とせずに擬似コード実行の検証プロセスを含む。
論文 参考訳(メタデータ) (2023-12-13T19:31:00Z) - Leveraging Large Language Models for Automated Proof Synthesis in Rust [6.202137610101939]
大規模言語モデル(LLM)は、コード解析と合成に成功している。
我々は、LLMと静的解析を組み合わせることで、Verusと呼ばれるRustベースの形式検証フレームワークの不変性、アサーション、その他の証明構造を合成する。
プロトタイプでは,検証タスクを複数の小さなタスクに分割し,反復的にGPT-4をクエリし,その出力と軽量な静的解析を組み合わせる。
論文 参考訳(メタデータ) (2023-11-07T05:47:47Z) - Sentiment Analysis in the Era of Large Language Models: A Reality Check [69.97942065617664]
本稿では,大規模言語モデル(LLM)の様々な感情分析タスクの実行能力について検討する。
26のデータセット上の13のタスクのパフォーマンスを評価し、ドメイン固有のデータセットに基づいて訓練された小言語モデル(SLM)と比較した。
論文 参考訳(メタデータ) (2023-05-24T10:45:25Z) - Interpretability at Scale: Identifying Causal Mechanisms in Alpaca [62.65877150123775]
本研究では、Boundless DASを用いて、命令に従う間、大規模言語モデルにおける解釈可能な因果構造を効率的に探索する。
私たちの発見は、成長し、最も広くデプロイされている言語モデルの内部構造を忠実に理解するための第一歩です。
論文 参考訳(メタデータ) (2023-05-15T17:15:40Z) - D2A: A Dataset Built for AI-Based Vulnerability Detection Methods Using
Differential Analysis [55.15995704119158]
静的解析ツールによって報告されたラベル問題に対する差分解析に基づくアプローチであるD2Aを提案する。
D2Aを使用して大きなラベル付きデータセットを生成し、脆弱性識別のためのモデルをトレーニングします。
論文 参考訳(メタデータ) (2021-02-16T07:46:53Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。