記事のサマリー(TL;DR)
- AMD MI300X 1枚でフルbf16学習。4BモデルがCTI-MCQで8Bの競合を+8.7ポイント上回る
- センシティブなサイバー証跡(ログ・CVEドラフト・マルウェアサンプル)をオフプレミスに送らず済む設計
- Apache 2.0ライセンス、12GB以上のGPU(コンシューマ向け含む)で推論可能。1Bバリアントも計画中
国内の政府・医療・重要インフラ事業者が注目すべきオンプレミスAI適用の現実解
クラウドAPIへのプロンプト送信が規制・セキュリティポリシー上禁止される環境は、日本では医療機関・官公庁・制御システムを持つ製造業に広く存在します。「CVEの説明文をAPIに貼り付けない」という本モデルの設計方針は、こうした組織のSOCアナリストやペネトレーションテスト担当者がLLMを補助ツールとして導入する際の現実的な要件と直接対応します。また、1日数千件規模の低信頼度アラートを処理するSOCにとって、ホスト型APIの従量課金コストは運用予算の問題になりやすく、軽量ローカルモデルによるトリアージ自動化の経済合理性は高いです。kintone・Salesforce等でインシデント管理を構成している環境でも、専用UIから本モデルをオンプレミス推論エンドポイントとして呼び出す構成は技術的に現実的な選択肢です。
詳細
なぜ今これが重要か(Why this matters)
フロンティアモデルは多用途である一方、①APIコール単位の課金コスト、②プロンプトを外部データセンターに送信する必要性、③防御実務に必要なエッジケース(インシデントレポート・攻撃グレードのペイロード・CVE開示ドラフト)を明示的に拒否するよう訓練されている――という3つのトレードオフがあります。
防御サイバーセキュリティにおいては、これらは受け入れられません。
- センシティブな証跡は内部に留める必要がある。 漏洩認証情報ダンプをトリアージするSOCアナリスト、マルウェアサンプルを解析するリバースエンジニア、CVEをまとめる脆弱性研究者――いずれもそのコンテンツをホスト型APIに貼り付けるべきではない。データそのものが情報漏洩になりうる。
- APIコストが積み上がる。 中規模SOCは1日に数千件の低信頼度アラートを処理する。「このCVEを説明して」「適用CWEは何か」といった問い合わせのホストAPI費用は、防御自動化を予算問題に変える。
- エアギャップ/部分接続環境が標準。 重要インフラ・医療・政府の現場では、ラップトップまたはオンプレミス1台のGPUで動作しないツールはそもそも導入できない。
- 攻撃者はより自動化されている。 ランサムウェアグループはLLMを使って30言語でフィッシングメールを作成し、バグバウンティ自動化ツールはエージェント連鎖でファジング・トリアージ・エクスプロイトを人間のレビュー速度を超えて実行している。同じ速度で防御するには、自分たちが所有・運用できるモデルが必要だ。
したがって、ローカル実行は必須。ただし「ローカル」だけでは不十分。
なぜ小型の汎用モデルではなく小型の特化モデルか(Why a small specialized model)
- 70B汎用モデルを4台のGPUでローカル実行しても「展開可能」ではない
- 4B汎用モデルはコンシューマGPU1台で動くが、実際の業務では8B特化モデルに劣る
CyberSecQwen-4B の賭け: CWE分類・CVE→CWEマッピング・構造化CTI Q&Aという狭く評価可能なサイバー脅威インテリジェンスタスクに限れば、慎重に調整した4Bモデルが12GBのコンシューマカードに収まりながら8B特化モデルに並ぶか上回れる。
Cisco の Foundation-Sec-Instruct-8B との比較(CTI-Bench、n=5、温度0.3):
| 指標 | CyberSecQwen-4B | Foundation-Sec-Instruct-8B | 差分 |
|---|---|---|---|
| CTI-MCQ(2,500問) | 0.5868 ± 0.0029 | 0.4996 | +8.7 pp |
| CTI-RCM(1,000件 CVE→CWE) | 0.6664 ± 0.0023 | 0.6850 | −1.9 pp |
| パラメータ数 | 4B | 8B | 半分 |
CyberSecQwen-4B は Foundation-Sec-Instruct-8B の CTI-RCM 精度の97.3%を維持しつつ、CTI-MCQ スコアを+8.7ポイント上回る。パラメータ数は半分。
なぜ AMD MI300X を選んだか(Why AMD MI300X)
学習・アダプタマージ・評価のパイプライン全体を、AMD Developer Cloud の AMD Instinct MI300X 192GB インスタンス1台でエンドツーエンド実行。
192GB HBM3 と ROCm 7 の vLLM スタックにより、量子化トリック・勾配チェックポインティング・デバイス分散を一切考慮せずに済んだ。フル bf16、FlashAttention-2 順伝播+逆伝播、バッチサイズ4、シーケンス長4096 をシングルGPUで実現。
| コンポーネント | バージョン |
|---|---|
| ハードウェア | AMD Instinct MI300X 192GB・gfx942 |
| ROCm | 7.0 |
| Docker | vllm/vllm-openai-rocm:latest |
| PyTorch | 2.6.0 (ROCm) |
| flash-attn | 2.8.3 |
| vLLM | 0.10.1 |
| transformers / peft / trl | 学習時点の最新版 |
train.sh のレシピはハードウェア非依存。40GB以上の他社データセンターGPUで実行する場合はAMD固有の環境変数を削除し、適切な wheel から flash-attn を再インストールするだけでよい。
学習データ(The training data)
2つのコーパス(いずれも Apache 2.0ライセンスでリリース済み):
- CVE→CWE マッピング(2021年コホート): MITRE / NVD 公開レコードから取得。CTI-Bench の評価セットとの重複はすべて学習前に除去済み。ベンチマーク数値は正直な分布外ホールドアウト。
- 合成防御アナリストQ&A: 重複除去済みCVE説明に基づき、より強力な教師モデルで生成。Apache 2.0ライセンスで再配布可。
ベースモデルは Qwen3-4B-Instruct-2507(Apache 2.0、学習時点で最高性能の4BクラスITモデル)。ベースではなくIT(インストラクション調整済み)チェックポイントから意図的にファインチューニング。
IT→SFTの崩壊パターンとその修復:
| モデル | CTI-RCM | CTI-MCQ |
|---|---|---|
| Qwen3-4B-Instruct-2507(生のIT) | 0.519 | 0.473 |
| CyberSecQwen-4B(今回のファインチューン) | 0.6664 | 0.5868 |
ITベースはMCQ精度を大幅に下げる(Ciscoが Foundation-Sec-Instruct vs Foundation-Sec base で報告したのと同一の「インストラクション調整がMCQを崩壊させる」パターン)。今回のファインチューンは両ベンチマークでITスタート地点を超えながら崩壊を修復している。
学習レシピ(The recipe)
LoRA r = 64
LoRA alpha = 64 # alpha/r = 1.0
LoRA dropout = 0.05
LR = 5e-5 # コサイン、ウォームアップ比率 0.03
Epochs = 10
Precision = bf16
Attention = FlashAttention-2(順伝播+逆伝播)
Max seq len = 4096
Batch = 4(勾配累積なし)
Optimizer = paged_adamw_8bit
FlashAttention-2 は Qwen のヘッド次元(128)が MI300X(gfx942)の共有メモリ予算に収まるため有効化。1ステップあたり約7.85秒で安定——Gemma-4-E2B ベースの同レシピより約1.6倍高速。Gemma はグローバルアテンション層でhead_dim=512がLDS予算を超えFA2が使えず sdpa にフォールバックするため。
コンパニオンモデル:同じレシピ、異なるベース(Companion model)
結果がレシピ起因かベースモデル起因かを検証するため、まったく同じ学習コーパスとハイパーパラメータでベースモデルを Gemma-4-E2B-it に差し替えた姉妹モデル Gemma4Defense-2B を学習。
| モデル | CTI-RCM(5試行平均±標準偏差) | CTI-MCQ |
|---|---|---|
| CyberSecQwen-4B(Qwen ベース) | 0.6664 ± 0.0023 | 0.5868 ± 0.0029 |
| Gemma4Defense-2B(Gemma ベース) | 0.6754 ± 0.0035 | 0.6042 ± 0.0090 |
CTI-RCM の差は0.9ポイント以内に収束。レシピは汎用性あり——どのモデルファミリーかではなく、ITチェックポイントをどうファインチューンするかが鍵。
- CyberSecQwen-4B(Apache 2.0): Gemma の利用規約が問題になる場合の選択肢
- Gemma4Defense-2B: 2Bが4Bより導入予算に合う場合の選択肢
課題と解決策(Challenges and fixes)
| 問題 | 対処 |
|---|---|
| Gemma-4 で head_dim=512 のため FA2 が失敗 | グローバルアテンション層は sdpa にフォールバック。ローカルアテンション層は FA2 継続。同レシピの Qwen 比で約1.6倍遅い |
| AITER カーネルが CyberPal-2.0-20B サービングと競合 | 当該評価時のみ VLLM_ROCM_USE_AITER=0 を設定。AMD 環境変数は ROCm 外では no-op |
| bitsandbytes が ROCm で未公式サポート | 192GB あるため4bit/8bitは不要。paged_adamw_8bit(bnb のオプティマイザ専用パス)は動作する |
| vLLM ROCm + チャットテンプレートの評価 | TRITON_ATTN バックエンドを使用。マージ済みモデルディレクトリから chat_template.jinja を明示的に渡し、ITベースのテンプレートが上書きされないようにする |
| HF-Spaces ZeroGPU クォータ(デモ用) | 匿名ユーザーはIP単位で2分/日の上限あり。デモSpace(cybersecqwen-chat)はHF OAuthをクライアントサイドで使用し、各訪問者のクォータに課金(無料3.5分/日、Pro 25分/日) |
試してみる(Try it yourself)
- ライブデモ(HFアカウントでサインイン): https://huggingface.co/spaces/lablab-ai-amd-developer-hackathon/cybersecqwen-chat
- モデル: https://huggingface.co/lablab-ai-amd-developer-hackathon/CyberSecQwen-4B
12GB以上のGPUで3行推論:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "lablab-ai-amd-developer-hackathon/CyberSecQwen-4B"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16, device_map="auto")
messages = [
{"role": "system", "content": "You are a defensive cybersecurity assistant. Answer with the canonical CWE-ID first, then 1-3 sentences of justification."},
{"role": "user", "content": "Path traversal in a Java web app where User-controlled input concatenates into a File() path. What's the CWE?"},
]
prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
out = model.generate(**tok(prompt, return_tensors="pt").to(model.device), max_new_tokens=256, temperature=0.3)
print(tok.decode(out[0], skip_special_tokens=True))
高スループットサービングには、公式 vllm/vllm-openai-rocm イメージ経由で AMD MI300X 上の vLLM がそのまま動作する。
想定ユースケース(Intended use)
対象:
- CWE分類(CVE・アドバイザリの脆弱性説明をMITRE CWEカテゴリにマッピング)
- CTI Q&A(サイバーセキュリティの概念・攻撃・制御に関する構造化質問への回答)
- 防御トリアージ支援(CVEトリアージ・パッチ優先付け・脅威アクター行動ドキュメント化を行うアナリストのサポート)
対象外:
- エクスプロイトコードや武器化PoCの生成
- 資格ある人間のレビューなしのセキュリティ判断の自動実行
- 法務・医療・規制対象の助言
- サイバーセキュリティ以外の汎用チャット・コード生成
今後の展開(What’s next)
- 1Bバリアント(ラップトップ向け): Qwen2.5-1.5B または Llama-3.2-1B をベースに同レシピを適用。目標 CTI-RCM ≥ 0.55(4Bとの差6ポイント以内)
- 量子化GGUFリリース(Q4_K_M、Q5_K_M): スマートフォン・エッジボックス向け。Q4_K_M で約2.5GB、ARMラップトップのメモリ範囲内
- 新規CVE→CWEマッピングへの継続評価: 2021年コホートは意図的な分布上限。今後のバージョンはNVDの拡充に追随
- 敵対的サンプル耐性: CVE説明文入力に対するプロンプトインジェクションパターンへの強化パスを公開予定