Training summary
- Base model: Qwen/Qwen3-8B
- Method: supervised fine-tuning (SFT) with LoRA on a 4-bit NF4 quantized base (QLoRA), assistant-only loss
- Framework: TRL SFTTrainer, PEFT, bitsandbytes, Transformers
- Hardware: 2x NVIDIA T4 (Kaggle), DDP via torchrun, fp16
- Schedule: 1 epoch, 1073 optimizer steps, max sequence length capped at 2048 tokens
- Final training loss: 0.874; token accuracy about 77 percent at the end of training
- Checkpointing with resume was used because of CUDA out-of-memory restarts mid-run
Training data
A curated mix built by the training notebook: cybersecurity instruction data, grounded CTI (CVE, CWE, ATT&CK, CAPEC) records, a bounded sample of HolyCyber, tool-use trajectories (shell, http_request, search, read_file, grep, python), multi-turn investigations, ambiguity and false-positive examples, plus a small general-instruction mix to reduce catastrophic forgetting. Data was exact-deduplicated and split by entity so the same CVE/CWE/ATT&CK/CAPEC entity does not appear across train, validation and test. The dataset itself is not published here, and source licenses may differ, so check upstream terms before commercial use.
Intended use
- Authorized penetration testing assistance, scoping and reporting
- Triage of scanner output and false-positive analysis
- Detection engineering, threat intelligence summarization, incident response notes
- Secure code review and remediation advice
- Agentic workflows that call tools within an authorized scope
Out of scope and limitations
- Do not use against systems you do not own or have written authorization to test.
- Not a replacement for a human security professional. Outputs can be wrong or outdated, so verify findings and CVE details independently.
- No formal benchmark results are reported. The held-out sanity test and base-vs-finetuned benchmark were not run for this release.
- Trained with sequences up to 2048 tokens; longer-context behavior is untested.
- Inherits the biases and limitations of Qwen3-8B.
License
Apache-2.0, following the base model. Training data sources may carry their own terms.
This repo: LoRA adapter
PEFT LoRA adapter only. Load it on top of Qwen/Qwen3-8B.
import torchfrom transformers import AutoTokenizer, AutoModelForCausalLMfrom peft import PeftModel base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-8B", torch_dtype=torch.float16, device_map="auto")model = PeftModel.from_pretrained(base, "remix3030303/cyber-qwen3-8b-agent-lora")tok = AutoTokenizer.from_pretrained("remix3030303/cyber-qwen3-8b-agent-lora")
MLX 4-bit merged build for Apple Silicon: https://huggingface.co/remix3030303/cyber-qwen3-8b-agent-MLX-4bit