Skip to main content
QUICK REVIEW

[論文レビュー] Binary Code Summarization: Benchmarking ChatGPT/GPT-4 and Other Large Language Models

Xin Jin, Jonathan Larson|arXiv (Cornell University)|Dec 15, 2023
Topic Modeling被引用数 12
ひとこと要約

本論文は BinSum を紹介する。557,664 の ground-truth function summaries を含む大規模なバイナリコード要約ベンチマークを作成し、複数の LLM(GPT-4、ChatGPT、Llama 2、Code Llama)と BinT5 を四つのバイナリ表現で評価し、意味的類似度評価指標とプロンプト合成パイプラインを提案する。

ABSTRACT

Binary code summarization, while invaluable for understanding code semantics, is challenging due to its labor-intensive nature. This study delves into the potential of large language models (LLMs) for binary code comprehension. To this end, we present BinSum, a comprehensive benchmark and dataset of over 557K binary functions and introduce a novel method for prompt synthesis and optimization. To more accurately gauge LLM performance, we also propose a new semantic similarity metric that surpasses traditional exact-match approaches. Our extensive evaluation of prominent LLMs, including ChatGPT, GPT-4, Llama 2, and Code Llama, reveals 10 pivotal insights. This evaluation generates 4 billion inference tokens, incurred a total expense of 11,418 US dollars and 873 NVIDIA A100 GPU hours. Our findings highlight both the transformative potential of LLMs in this field and the challenges yet to be overcome.

研究の動機と目的

  • コードコメントから導出された真実要約を含む、大規模なオープンソースのバイナリコード要約データセットを作成する。
  • 幅広い表現とアーキテクチャにわたって、主要な LLM がバイナリコードの意味を要約する能力を体系的に評価する。
  • バイナリコード要約における LLM の性能を最大化するためのプロンプト合成と最適化手法を開発する。
  • 正確一致指標を超えた意味的整合性をよりよく捉えるため、意味埋め込みベースの評価指標を導入する。
  • バイナリコード理解のための表現選択、モデル選択、プロンプト戦略に関する実践的な洞察を提供する。

提案手法

  • 4つの最適化レベルを持つ x86、x64、ARM、MIPS にコンパイルされた 44 の GNU プロジェクトのデータセットを構築し、関数レベルの要約 557,664 件を得る。
  • 生のバイト列、アセンブリ、IR、デバッグシンボルの有無を含むデコンパイル済みコードの4つのバイナリ表現を生成し、ソースコードも併せて作成する。
  • インコンテキストプロンプト合成、プロンプトバリアント生成、プロンプト最適化、タスク固有のプロンプト選択という4段階のプロンプトワークフローを提案する。
  • 生成された要約と真実要約とのコサイン類似度を計算するため、事前学習済みモデルを用いた意味埋め込みベースの評価手法を導入する。
  • 4つの LLM(GPT-4、ChatGPT、Llama 2、Code Llama)と BinT5 をテストし、BinT5 と比較しつつ、コストと効率性の分析を行う。
  • ランダムデータのサブセットで意味的類似度に基づいてプロンプトを評価し、全体評価に向けて上位プロンプトを特定する。

実験結果

リサーチクエスチョン

  • RQ1主要な LLM は異なるバイナリ表現を横断して、バイナリコードの意味をどれだけ理解し要約できるのか。
  • RQ2どの表現(生のバイト列、アセンブリ、IR、デコンパイル済みコード)が LLM ベースのバイナリコード要約を最も支援するか。
  • RQ3シンボルが豊富な条件とシンボルが除外された条件の下で、どの LLM がこのタスクで最も良い性能を示すか。
  • RQ4意味埋め込みベースの評価は、従来の BLEU/METEOR/ROUGE 指標より要約品質をより正確に反映するのか。
  • RQ5自動プロンプト合成と最適化戦略は、バイナリコード要約における LLM の性能向上にどれだけ効果的か。

主な発見

  • シンボルが除去されたバイナリは意味情報を大幅に落とす(最大で 55.0% の損失)。
  • デコンパイル済みコードは、表現の中で LLM にとって最も強い意味理解を提供する。
  • ChatGPT と Code Llama は、それぞれデバッグシンボルの有無に関して最良の性能を達成する。
  • Code Llama は一般的に Llama 2 よりも優れており、デコンパイル済みコードでの微調整 CodeT5 は BinT5 の性能に匹敵しない。
  • このタスクにおいて、ChatGPT と Llama 2 は GPT-4 や Code Llama よりも高速である(最大 2.9x および 1.5x)。
  • LLMs は x64 および MIPS バイナリでデコンパイル済みコードとシンボルを用いると最大で 16.0% の改善を示し、デコンパイラ Hex-Rays が最高スコアを与える(60.7% 相対)。
  • 関数名は、分析されたシンボルの中でバイナリ意味論に最も大きく寄与する。
  • ゼロショット prompting は、パフォーマンスとコストを考慮した場合、少数ショットおよびチェーン・オブ・思考 prompting よりもしばしば優れる。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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