A fine-tuned
Qwen2.5-7B-Instruct model that classifies cybersecurity incident descriptions into the
VERIS (Vocabulary for Event Recording and Incident Sharing) framework.
Given a plain-English incident description, the model outputs structured JSON with the correct VERIS categories for action, actor, asset, and attribute.
Try the live demo — no API key required, runs on ZeroGPU.
1{
2 "action": {"hacking": {"variety": ["Ransomware"]}, "social": {"variety": ["Phishing"]}},
3 "actor": {"external": {"variety": ["Unaffiliated"], "motive": ["Financial"]}},
4 "asset": {"assets": [{"variety": "S - Database"}]},
5 "attribute": {"availability": {"variety": ["Obscuration"]}}
6}
The source classifications come from 8,559 real-world incidents in VCDB, spanning healthcare, finance, retail, government, and other industries.
1from transformers import AutoModelForCausalLM, AutoTokenizer
2from peft import PeftModel
3
4base_model = "Qwen/Qwen2.5-7B-Instruct"
5adapter = "vibesecurityguy/veris-classifier-v1"
6
7tokenizer = AutoTokenizer.from_pretrained(base_model)
8model = AutoModelForCausalLM.from_pretrained(base_model, device_map="auto")
9model = PeftModel.from_pretrained(model, adapter)
10
11messages = [
12 {"role": "system", "content": "You are a VERIS classification expert..."},
13 {"role": "user", "content": "Classify this incident: An employee lost a laptop containing unencrypted customer data."}
14]
15
16text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
17inputs = tokenizer(text, return_tensors="pt").to(model.device)
18outputs = model.generate(**inputs, max_new_tokens=512)
19print(tokenizer.decode(outputs[0], skip_special_tokens=True))