CyberSecQwen-4B는 CWE 분류, CVE-to-CWE 매핑, 사이버 위협 인텔리전스(CTI) Q&A 등 방어적 사이버 보안 업무에 특화된 4B 파라미터 소형 언어 모델(SLM)이다. Qwen3-4B-Instruct를 베이스로 LoRA 파인튜닝(fine-tuning)을 적용했으며, 12GB 이상의 소비자용 GPU에서 로컬 실행이 가능하다는 점이 핵심 특징이다. AMD Developer Hackathon 출품작으로, Apache 2.0 라이선스로 공개되어 있다.
HuggingFace: https://huggingface.co/lablab-ai-amd-developer-hackathon/CyberSecQwen-4B GitHub: https://github.com/GPT-64590/CyberSecQwen-4B Live Demo: https://huggingface.co/spaces/lablab-ai-amd-developer-hackathon/cybersecqwen-chat
소개
프론티어(frontier) 대형 모델은 사이버 보안 영역에서 여러 한계를 갖는다. SOC 분석가나 취약점 연구자가 유출된 크리덴셜 덤프나 악성코드 샘플을 외부 API에 전송하면 데이터 자체가 보안 사고가 될 수 있다. 또한 하루 수천 건의 저신뢰 알림을 처리하는 SOC 환경에서는 API 호출 비용이 누적되며, 중요 인프라·의료·정부 환경에서는 에어갭(air-gapped) 환경이 표준이라 외부 서비스 자체가 불가능한 경우도 많다.
CyberSecQwen-4B는 이 문제를 “작고 전문화된 모델”로 접근한다. 4B 파라미터로 단일 소비자용 GPU(12GB VRAM)에서 실행되며, 좁고 잘 정의된 사이버 보안 태스크에서 8B 규모 전문 모델과 대등하거나 그 이상의 성능을 보인다.
경쟁 모델과의 성능 비교
CTI-Bench(n=5, temperature 0.3) 기준:
| 지표 | CyberSecQwen-4B | Foundation-Sec-Instruct-8B (Cisco) | 차이 |
|---|---|---|---|
| CTI-MCQ (2,500항목) | 0.5868 ± 0.0029 | 0.4996 | +8.7pp |
| CTI-RCM (1,000 CVE→CWE) | 0.6664 ± 0.0023 | 0.6850 | −1.9pp |
| 파라미터 수 | 4B | 8B | 절반 |
Foundation-Sec-Instruct-8B의 CTI-RCM 정확도 97.3%를 유지하면서 CTI-MCQ 점수는 8.7pp 초과 달성한다. 파라미터는 절반이다.
주요 기능 및 특징
- 로컬 실행: 12GB 이상 GPU에서 bf16 정밀도로 실행 가능. 외부 API 전송 없이 민감한 보안 데이터를 처리할 수 있다
- CWE 분류: 취약점 설명(CVE, 보안 권고)에서 MITRE CWE 카테고리를 매핑
- CTI Q&A: 사이버 보안 개념, 공격 기법, 보안 통제에 관한 구조화된 질의응답
- 방어적 트리아지 지원: CVE 우선순위 지정, 패치 문서화, 위협 행위자 행동 분석을 보조
- 데이터 오염 없는 벤치마크: CTI-Bench 평가 세트와 겹치는 학습 데이터를 학습 전 중복 제거하여 신뢰할 수 있는 OOD(out-of-distribution) 성능 측정을 보장
적합한 사용 케이스
| 역할 | 활용 방법 |
|---|---|
| SOC 분석가 | 대량 알림의 CVE/CWE 분류 자동화, 로컬에서 민감 데이터 처리 |
| 취약점 연구자 | CVE 설명에서 CWE 분류, 보안 권고 초안 작성 보조 |
| 보안 엔지니어 | 에어갭 환경에서 CTI Q&A, 위협 분석 |
| 레드팀·버그바운티 | 취약점 분류 및 우선순위 지정 (단, 익스플로잇 코드 생성은 지원하지 않음) |
모델 아키텍처
베이스 모델은 Qwen3-4B-Instruct-2507(Apache 2.0)이다. 인스트럭션 튜닝(instruction-tuning) 체크포인트를 베이스로 사용한 것이 핵심 설계 결정이다. IT 체크포인트의 간결한 답변 포맷 사전(prior)을 보존하면서 도메인 리프트를 추가하는 방식으로, Cisco의 Foundation-Sec도 보고한 “IT 이후 SFT 붕괴” 문제를 방지한다.
학습 설정 (LoRA 파인튜닝)
| 하이퍼파라미터 | 값 |
|---|---|
| LoRA r | 64 |
| LoRA alpha | 64 (alpha/r = 1.0) |
| LoRA dropout | 0.05 |
| 학습률 | 5e-5 (cosine, warmup ratio 0.03) |
| 에포크 | 10 |
| 정밀도 | bf16 |
| 어텐션 | FlashAttention-2 (forward + backward) |
| 최대 시퀀스 길이 | 4096 |
| 배치 크기 | 4 |
| 옵티마이저 | paged_adamw_8bit |
학습 인프라는 AMD Instinct MI300X 192GB 단일 GPU(ROCm 7.0, vLLM 0.10.1)를 사용했으나, 레시피 자체는 하드웨어 독립적(hardware-agnostic)이다. 40GB 이상 데이터센터 GPU에서도 AMD 전용 환경 변수만 제거하면 동일하게 실행된다.
학습 데이터
두 개의 코퍼스를 사용했으며, 모두 Apache 2.0 라이선스다:
- 2021년 CVE → CWE 매핑: MITRE/NVD 공개 데이터. CTI-Bench 평가 세트와의 중복을 학습 전 제거
- 합성 방어 분석가 Q&A: 중복 제거된 CVE 설명을 기반으로 더 강력한 교사 모델이 생성
사용법
빠른 추론 (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))12GB 이상의 GPU가 있으면 바로 실행 가능하다. 고처리량 서빙이 필요하다면 AMD MI300X에서 vllm/vllm-openai-rocm 공식 이미지로 vLLM 서빙도 지원된다.
사용하면 안 되는 케이스
- 익스플로잇 코드 또는 무기화된 PoC 생성
- 자격을 갖춘 인간의 검토 없이 보안 결정을 자동 실행
- 법률·의료·규제 대상 조언
- 사이버 보안 외 일반 코드 생성이나 범용 대화
라이선스
Apache 2.0. 상업적 사용, 수정, 재배포 모두 허용된다. Gemma 기반 라이선스 제약이 문제가 되는 환경에서 CyberSecQwen-4B가 적합한 대안이다.