Downloads · 30 days
6
12% of all-time downloads
shivam2k3/opensoc-defender-grpo
opensoc-defender-grpo is a text generation model from shivam2k3. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as bsd-3-clause.
A Qwen2.5-3B-Instruct LoRA adapter (rank 16) trained via GRPO to triage Security Operations Center (SOC) alerts. Built for the OpenEnv Hackathon, April 2026.
Downloads · 30 days
6
12% of all-time downloads
All-time downloads
50
Public
Repo size
120 MB
Likes
0
Public
Click a slice to open those files.
.safetensors120 MB · 100%
From the Hugging Face model README
A Qwen2.5-3B-Instruct LoRA adapter (rank 16) trained via GRPO to triage Security Operations Center (SOC) alerts. Built for the OpenEnv Hackathon, April 2026.
unsloth/Qwen2.5-3B-InstructGiven a SIEM alert and a window of structured log events, the model chooses one of five SOC triage actions:
| Action | Meaning |
|---|---|
dismiss | Benign noise, no action needed |
monitor | Suspicious but not actionable yet |
quarantine_host | Isolate the endpoint |
block_ip | Block the external IP |
escalate | Wake a human — blast-radius event |
The model also cites the specific log_id that drove its decision, which is verified against the env's ground truth for a +0.1 bonus reward.
stage1_basic — single-event, unambiguous templatesstage2_multi — multi-event log windows, 1 decoystage3_mixed — benign decoys interleaved with malicious events, 2 decoysstage4_adversarial — attacker-controlled distribution, 3 decoysnum_generations): 8The reward is computed by a deterministic verifier — the ground-truth triage action is derived purely from the structured event parameters, never from any free text. This makes the reward verifiable and reproducible.
Defender reward components:
Full rubric: rubric.py
Each curriculum stage's adapter is published separately:
| Stage | Repo |
|---|---|
| SFT warm-start | opensoc-defender-grpo-sft |
| Stage 1 (easy) | opensoc-defender-grpo-stage1_basic |
| Stage 2 (medium) | opensoc-defender-grpo-stage2_multi |
| Stage 3 (hard) | opensoc-defender-grpo-stage3_mixed |
| Stage 4 (adversarial) | opensoc-defender-grpo-stage4_adversarial |
shivam2k3/opensoc-env (HF Space — running)train_grpo.ipynbverifier.pyrubric.py/demofrom peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
base = AutoModelForCausalLM.from_pretrained("unsloth/Qwen2.5-3B-Instruct")
model = PeftModel.from_pretrained(base, "shivam2k3/opensoc-defender-grpo")
tokenizer = AutoTokenizer.from_pretrained("unsloth/Qwen2.5-3B-Instruct")