CoolFace
Modelpublic

Sakeador/ThreatSage-12B

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
1likes14downloads
Model Card

ThreatSage-12B ๐Ÿ”

ThreatSage-12B is an open-source cybersecurity-specialized language model fine-tuned from Google Gemma 4 12B. Built for the security community, it excels at threat intelligence analysis, MITRE ATT&CK classification, penetration testing report interpretation, and incident response reasoning.

Key Features

  • โ€”๐ŸŽฏ Threat intelligence analysis โ€” APT campaigns, IOCs, TTPs
  • โ€”๐Ÿ›ก๏ธ MITRE ATT&CK v16 tactic and technique classification
  • โ€”๐Ÿ“‹ Penetration testing report analysis and remediation advice
  • โ€”๐Ÿ” Incident response guidance and threat hunting support
  • โ€”๐Ÿ‘๏ธ Multimodal: analyze SIEM screenshots, network diagrams, security dashboards
  • โ€”๐ŸŒ Multilingual: English and Spanish

Model Details

PropertyValue
Base modelgoogle/gemma-4-12b-it
ArchitectureDecoder-only, encoder-free multimodal
Parameters12B
Context window256K tokens
ModalitiesText, Image, Audio, Video
AdapterLoRA (r=32, alpha=64)
PrecisionBF16
LicenseApache 2.0

Training Data

DatasetSamplesFocus
reloading0101/threat-intelligence-dataset52,279CTI, APTs, IOCs, campaigns
sarahwei/cyberMITREtacticCTIdataset_v1614,008MITRE ATT&CK v16
CJJones/SyntheticPenTestReports752Pentest reports
Total67,039

Usage

python
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch

base_model = "google/gemma-4-12b-it"
adapter = "Sakeador/ThreatSage-12B"

tokenizer = AutoTokenizer.from_pretrained(base_model)
model = AutoModelForCausalLM.from_pretrained(
    base_model,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)
model = PeftModel.from_pretrained(model, adapter)

messages = [
    {"role": "user", "content": "Analyze this Wazuh alert and identify the MITRE ATT&CK technique."}
]

text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([text], return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))

Hardware Requirements

SetupVRAMQuantization
Minimum8 GBQ4
Recommended16 GBBF16 (native)
Optimal3ร— 16 GBBF16 tensor-parallel

Training Infrastructure

  • โ€”Hardware: NVIDIA GeForce RTX 5060 Ti (16 GB, sm_120 Blackwell)
  • โ€”Framework: Unsloth + SFTTrainer
  • โ€”Epochs: 3
  • โ€”Sequence length: 2048

License

Apache 2.0 โ€” same as the base model Gemma 4 12B.

Acknowledgements

Thanks to the open-source community, Google DeepMind for Gemma 4, and all the dataset creators who made this possible.