表示
超・人工知能研究所 Super AI Research Lab トップへ超・人工知能研究所AI Research Lab / ぱそ太郎工事中

since
平成38年9月29日

← 検索結果に戻る

コード・実行ファイル・命令列・説明文を結ぶSBAN:収録件数と評価方法に確認点

SBAN

保存した記事を見るこのブラウザに保存します。無料会員で端末間の同期・フォルダ整理
原論文の図

SBANの原論文から掲載した図です。細部はクリックして拡大できます。

原論文の図の説明を読む

Fig. 1: Relation between different sources in the SBAN dataset.

出典:SBAN / arXiv ↗

概要

  • SBANはソースコード、実行ファイル、アセンブリ命令、説明文を対応付けるデータセットとして提案された。
  • 著者らは良性C++コードでQwenモデルを追加学習した後、隠したコードを予測する際のパープレキシティー分布が低く狭くなったと報告する。具体的な改善値は確認できた本文にない。
  • 概要、データ節、層別の表で収録件数が一致せず、四層すべてがそろう検体数と評価用コードの独立性は確認が必要である。
補足:編集した模式図で仕組みを確認する

VISUAL EXPLAINER

図でつかむ、SBANの仕組み

左から右へ読む
  1. 01良性・悪性検体
  2. 02復元コードと整形
  3. 03命令抽出・説明生成
  4. 04四層の対応データ

原論文の説明をもとにした模式図です。処理の細部は省略しています。

研究の背景

SBANは、ソフトウェアを複数の表現で扱うための学習用データセットである。開発者が読むソースコード、配布される実行ファイル、人が読める低水準の命令列は、同じプログラムを異なる形で表す。

著者らによれば、従来のデータセットは一つの表現に重点を置くことが多い。表現同士の対応が分かれば、コードの検索や説明、悪性ソフトウェアの解析を対象に、複数の表現を使う手法を検討できる。

手法

SBANは良性と悪性の検体を集め、実行ファイル、アセンブリ命令、ソースコード、自然言語の説明文を対応付ける。アセンブリは実行ファイル中の機械語を人が読める命令にしたものだ。元のソースがない検体には逆コンパイルを使い、実行ファイルからC言語に似たコードを推定する。たとえば一つの関数について、復元したコードと命令列を関連付ける。

著者らはコードの分割・表記の統一・重複除去などでデータを整え、実行ファイルの16進数表現から命令列を抽出し、Qwen2.5-Coder-1.5B-Instructで説明文を生成したと述べる。復元コードの確認には、文章などを数値化して近さを測るSBERT、言語モデルによる判定、ウイルス対策製品による照合を挙げる。ただし、元のソースがない検体でSBERTの比較をどう行ったかは明確でない。

新規性

著者らが主張する新規性は、ソースコード、実行ファイル、アセンブリ命令、自然言語の説明文を対応付け、一つのデータセットにまとめた点にある。表現をまたぐコード解析や言語モデルの学習を想定している。

ただし、著者らは各検体に四層が対応すると述べる一方、層別の収録件数には差がある。全検体で四層がそろう範囲は、確認できた本文の範囲では確定できない。

従来手法との違い

関連研究として紹介されたEMBERは、Windowsの実行ファイルから抽出したヘッダー情報や文字列統計などの特徴量を提供する。SBANは実行ファイルに加え、命令列、コード、説明文の対応を扱う構成である。

実験での比較対象は、追加学習前のQwen2.5-Coder-1.5B-Instructである。著者らはSBANの良性コードで追加学習した後と比べているが、EMBERなど別のデータセットを使った同条件の性能比較は示していない。

実験結果

著者らは良性のC++コード280万件でQwen2.5-Coder-1.5B-Instructを追加学習し、コード中の隠した部分を予測する課題で学習前後を比べた。評価に用いたパープレキシティーは、次に来る語の予測における不確かさを表す指標で、低いほど予測に自信があることを示す。

著者らは追加学習後の値の分布が低く狭くなったと報告するが、確認できた本文の範囲では具体的な値や改善幅は分からない。本文は学習・評価の分割を不要とする一方、評価用コードとの重複をどう扱ったか示していない。総件数も概要の良性290万・悪性67万2000とデータ節の良性280万・悪性54万1000が一致しない。

応用の可能性

編集上の応用案 · 論文が実証した用途とは区別しています。

編集上の応用案:社内で管理するC++製ツールの関数検索を試す。関数を探す担当者の文章を入力し、候補関数のソースコード、対応する実行ファイルの命令列、機能説明を並べて提示する。

必要なのは利用を許可されたソースコードと対応する実行ファイル、担当者が確認した説明文である。検索用の説明文を正解ラベルとして用意し、自社コードへの対応付けを調整する。センサーは使わず、候補の妥当性は元のコードで確認する。

応用先の候補からNauhに相談できます。

導入時の検証

導入時の検証案 · 対象データでの再評価が必要です。

導入時の検証案:利用を許可された自社C++コードと対応する実行ファイルを少数集め、関数ごとに対応を確認する。担当者が書いた機能説明と検索質問を正解ラベルとして用意し、命令列と説明文を自社の関数に結び付ける。センサーは使わない。

ソースコードだけで検索する方法を基準とし、命令列と説明文を加えた場合を比べる。目的の関数が候補に入る割合、説明の誤り率、担当者の確認時間を測る。ソースがない検体を含める場合は、復元コードの誤りと対応付けの失敗を別々に記録する。

限界と課題

著者らは、まれなマルウェアや新しい系統の収録不足、言語モデルが生成した説明文の誤りを限界として挙げる。対象となるプログラミング言語の多様性を広げることも今後の課題としている。

編集上の検証事項は、四層が実際にそろう件数と、元のソースがない検体の復元コードをどう検証したかである。本文には復元コードを元のソースと比較する説明もあり、比較可能な検体の範囲を確認したい。学習と評価に同じコードが含まれる可能性も調べる必要がある。

応用先の候補
研究内容と応用案に基づく分類です。業界での導入実績を示すものではありません。

出典

元のタイトル・要旨を確認する(英語)

SBAN: A Framework & Multi-Dimensional Dataset for Large Language Model Pre-Training and Software Code Mining

This paper introduces SBAN (Source code, Binary, Assembly, and Natural Language Description), a large-scale, multi-dimensional dataset designed to advance the pre-training and evaluation of large language models (LLMs) for software code analysis. SBAN comprises more than 3 million samples, including 2.9 million benign and 672,000 malware respectively, each represented across four complementary layers: binary code, assembly instructions, natural language descriptions, and source code. This unique multimodal structure enables research on cross-representation learning, semantic understanding of software, and automated malware detection. Beyond security applications, SBAN supports broader tasks such as code translation, code explanation, and other software mining tasks involving heterogeneous data. It is particularly suited for scalable training of deep models, including transformers and other LLM architectures. By bridging low-level machine representations and high-level human semantics, SBAN provides a robust foundation for building intelligent systems that reason about code. We believe that this dataset opens new opportunities for mining software behavior, improving security analytics, and enhancing LLM capabilities in pre-training and fine-tuning tasks for software code mining.

論文本体の取得範囲に基づく解説。AIが作成した未校閲の記事です。性能の数値は著者の評価条件に依存します。応用例と検証計画は編集上の提案です。解説更新:2026-10-01