Smishing Detection RoBERTa Base ๐ก๏ธ๐ฑ
๐ Model Description
์ด ๋ชจ๋ธ์ ์ค๋ฏธ์ฑ(Smishing, SMS Phishing) ๋ฌธ์๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์งํ๊ธฐ ์ํด klue/roberta-base๋ฅผ ํ์ธํ๋(Fine-tuning)ํ ๋ชจ๋ธ์
๋๋ค.
ํ๊ตญ์ด ๋ฌธ์ ๋ฉ์์ง์ ๋ฌธ๋งฅ์ ๋ถ์ํ์ฌ ํด๋น ๋ฉ์์ง๊ฐ ์ ์์ ์ธ ๋ํ์ธ์ง, ์๋๋ฉด ์
์์ ์ธ ์ค๋ฏธ์ฑ ์๋์ธ์ง ๋ถ๋ฅํฉ๋๋ค.
์ด ๋ชจ๋ธ์ "Smishing Forecast: Self-Evolving AI-Powered Smishing Defense System" ํ๋ก์ ํธ์ ์ผํ์ผ๋ก ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ์ต์ ๋ด์ค ๊ธฐ๋ฐ์ ๊ณต๊ฒฉ ์๋๋ฆฌ์ค(Red Team)์ ์ด์ ๋์ํ๋ ๋ฐฉ์ด ์์คํ (Blue Team) ๊ฐ์ ์ ๋์ ํ์ต(Adversarial Training)์ ํตํด ์ฑ๋ฅ์ด ๊ณ ๋ํ๋์์ต๋๋ค.
- Developed by: Donghyun Hwang (and Smishing Forecast Team)
- Model Type: Text Classification (Binary)
- Language: Korean
- Base Model: klue/roberta-base
๐ฏ Intended Uses & Limitations
์ฌ์ฉ ๋ชฉ์ (Intended Use)
- ์ค๋ฏธ์ฑ ํ์ง: SMS, ๋ฉ์ ์ ๋ฑ์์ ์์ ๋ ํ ์คํธ๊ฐ ์ค๋ฏธ์ฑ์ธ์ง ํ๋ณ
- ๋ณด์ ์ ํ๋ฆฌ์ผ์ด์ : ๋ชจ๋ฐ์ผ ๋ณด์ ์ฑ, ์คํธ ํํฐ๋ง ์์คํ ์ ๋ฐฑ์๋ ๋ชจ๋ธ
- ๊ธ์ต ์ฌ๊ธฐ ์๋ฐฉ: ์ํ ์ฌ์นญ, ๋์ถ ์ฌ๊ธฐ, ์นด์นด์คํก ์ง์ธ ์ฌ์นญ ๋ฑ์ ํ์ง
์ ํ ์ฌํญ (Limitations)
- ๋ฐ์ดํฐ ํธํฅ: ํ์ต ๋ฐ์ดํฐ์ ๋๋ถ๋ถ์ด GPT-4๋ฅผ ํตํด ์์ฑ๋ **ํฉ์ฑ ๋ฐ์ดํฐ(Synthetic Data)**์ ๋๋ค. ๋ฐ๋ผ์ ์ค์ ๋ฆฌ์ผ์๋ ๋ฐ์ดํฐ(Wild Data)์ ๋ํด์๋ ์ฑ๋ฅ์ด ๋ค์ ๋จ์ด์ง ์ ์์ต๋๋ค(Overfitting possibility).
- ์ต์ ๊ณต๊ฒฉ ์ ํ: ํ์ต๋์ง ์์ ์ ์ข ๊ณต๊ฒฉ ํจํด์ ๋ํด์๋ ํ์ง์จ์ด ๋ฎ์ ์ ์์ต๋๋ค.
๐ Training Data
ํ์ต ๋ฐ์ดํฐ๋ GPT-4๋ฅผ ํ์ฉํ์ฌ ์์ฑ๋ 3,000๊ฑด ์ด์์ ํฉ์ฑ ๋ฐ์ดํฐ์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- Normal (Label 0): ์ผ์ ๋ํ, ํ๋ฐฐ ์๋ฆผ, ์นด๋ ๊ฒฐ์ ๋ฌธ์, ๊ธฐ์์ฒญ ์๋ฆผ ๋ฑ
- Smishing (Label 1):
- ์ ๋ถ ๊ธฐ๊ด ์ฌ์นญ (์ง์๊ธ์ ์ฒญ ๋ฑ)
- ๊ฐ์กฑ/์ง์ธ ์ฌ์นญ (์ก์ ํ์, ๊ธ์ ์์ฒญ)
- ๊ธ์ต ๊ธฐ๊ด ์ฌ์นญ (์ ๊ธ๋ฆฌ ๋์ถ, ํ์ ๊ฒฐ์ ์น์ธ)
- ๊ฒฝ์กฐ์ฌ ์ฌ์นญ (๋ชจ๋ฐ์ผ ์ฒญ์ฒฉ์ฅ, ๋ถ๊ณ ์ฅ)
๐ Evaluation Results
ํฉ์ฑ ํ ์คํธ ๋ฐ์ดํฐ์ (100๊ฑด) ๊ธฐ์ค ์ฑ๋ฅ์ ๋๋ค. (์ฃผ์: ํฉ์ฑ ๋ฐ์ดํฐ์ ์ต์ ํ๋ ๊ฒฐ๊ณผ์ด๋ฏ๋ก ์ค์ ํ๊ฒฝ ์ฑ๋ฅ๊ณผ๋ ์ฐจ์ด๊ฐ ์์ ์ ์์ต๋๋ค.)
| Metric | Score |
|---|---|
| Precision | 1.00 |
| Recall | 1.00 |
| F1-Score | 1.00 |
๐ How to Use
Python์ transformers ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
import re
# 1. ๋ชจ๋ธ๊ณผ ํ ํฌ๋์ด์ ๋ก๋
model_name = "donghyun95/smishing-detection-roberta-base"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
# 2. ์ ์ฒ๋ฆฌ ํจ์ (ํน์๋ฌธ์ ์ ๊ฑฐ ๋ฑ ๊ถ์ฅ)
def preprocess(text):
text = re.sub(r'[^๊ฐ-ํฃa-zA-Z0-9\s]', '', text) # ํน์๋ฌธ์ ์ ๊ฑฐ
return text.strip()
# 3. ์์ธก ํจ์
def predict_smishing(text):
clean_text = preprocess(text)
inputs = tokenizer(clean_text, return_tensors="pt", truncation=True, max_length=128)
with torch.no_grad():
outputs = model(**inputs)
probs = torch.softmax(outputs.logits, dim=1)
smishing_prob = probs[0][1].item() # Label 1์ด ์ค๋ฏธ์ฑ
return smishing_prob
# 4. ํ
์คํธ
sample_text = "์๋ง ๋ ํฐ ๊ณ ์ฅ๋์ ์๋ฆฌ๋งก๊ฒผ์ด. ์ด ๋ฒํธ๋ก ๋ฌธ์์ค."
probability = predict_smishing(sample_text)
print(f"์ค๋ฏธ์ฑ ํ๋ฅ : {probability * 100:.2f}%")
if probability > 0.7:
print("๐จ ์ค๋ฏธ์ฑ ์์ฌ ๋ฌธ์์
๋๋ค!")
else:
print("โ
์ ์ ๋ฌธ์์
๋๋ค.")
โ ๏ธ Disclaimer
์ด ๋ชจ๋ธ์ ์ฐ๊ตฌ ๋ฐ ๊ต์ก ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค. ์ค์ ๊ธ์ต ๊ฑฐ๋๋ ๋ณด์ ์์คํ ์ ๋จ๋ ์ผ๋ก ์์กดํ์ฌ ์ฌ์ฉํ๊ธฐ์๋ ์ํ์ด ๋ฐ๋ฅผ ์ ์์ผ๋ฉฐ, ๋ณด์กฐ์ ์ธ ์๋จ์ผ๋ก ํ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
๐๏ธ Citation
If you use this model in your research or project, please cite it as follows:
BibTeX:
@misc{smishing-forecast-2026,
author = {Hwang, Donghyun and Cho, Eunkyung and Ahn, Seongmin and Hwang, Sunwoo},
title = {Smishing Forecast: Self-Evolving AI-Powered Smishing Defense System},
year = {2026},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/DongHyun925/SmishingForecast}}
}
APA: Hwang, D., Cho, E., Ahn, S., & Hwang, S. (2026). Smishing Forecast: Self-Evolving AI-Powered Smishing Defense System. GitHub. https://github.com/DongHyun925/SmishingForecast
๐ License
- Downloads last month
- -
Model tree for donghyun95/smishing-detection-roberta-base
Base model
klue/roberta-base