Spaces:
No application file
No application file
Jiwoong
commited on
Commit
·
d564c9a
1
Parent(s):
6244161
docs: 1차 문서
Browse files
README.md
CHANGED
|
@@ -1,10 +1,157 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
| 1 |
+
# 🔤 한국어 텍스트 비난독화 AI 모델 | Korean Text De-obfuscation Fine-tuning
|
| 2 |
+
|
| 3 |
+
[](https://opensource.org/licenses/MIT)
|
| 4 |
+
[](https://www.python.org/downloads/)
|
| 5 |
+
[](https://huggingface.co/)
|
| 6 |
+
|
| 7 |
+
**숭실대학교 지능형시스템 과목**의 **91veMe4Plus 팀**에서 설계하고 개발한 **난독화된 한국어 문자열의 원본을 추론하는 언어모델 파인튜닝** 연구 프로젝트입니다.
|
| 8 |
+
|
| 9 |
+
## 🎯 프로젝트 개요
|
| 10 |
+
|
| 11 |
+
**난독화된 한국어 텍스트를 원본으로 복원**하는 언어모델 파인튜닝 프로젝트입니다. **Naver HyperCLOVAX-SEED-Text-Instruct-0.5B** 모델을 **LoRA (Low-Rank Adaptation)**로 파인튜닝하여 왜곡되거나 변형된 한국어 문자열에서 원본 텍스트를 정확히 추론할 수 있는 AI 모델을 개발했습니다.
|
| 12 |
+
|
| 13 |
+
### 🔤 난독화 복원 예시
|
| 14 |
+
|
| 15 |
+
| 난독화된 텍스트 | 원본 텍스트 |
|
| 16 |
+
|----------------|--------------|
|
| 17 |
+
| ㅇㅏㄴㄴㅕㅇ하세요 | 안녕하세요 |
|
| 18 |
+
| ㅎㅏㅇㅏㄱㅣㅁㅏㄹ | 하늘이 맑음 |
|
| 19 |
+
| ㅁㅏㄹㅎㅏㅁㅅㅣㄴㄴㅏ | 말할 수 있는 나 |
|
| 20 |
+
|
| 21 |
+
### 핵심 성과
|
| 22 |
+
- **BLEU 점수**: 7-10배 향상 (0.0029 → 0.0233)
|
| 23 |
+
- **ROUGE-1**: 2배 향상 (0.138 → 0.279)
|
| 24 |
+
- **문자 정확도**: 2배 향상 (0.151 → 0.332)
|
| 25 |
+
- **추론 시간**: 50% 단축 (6.78s → 3.03s)
|
| 26 |
+
|
| 27 |
+
## 🏫 학술 정보
|
| 28 |
+
|
| 29 |
+
- **대학교**: 숭실대학교 (Soongsil University)
|
| 30 |
+
- **과목**: 지능형시스템 (Intelligent Systems)
|
| 31 |
+
- **팀명**: 91veMe4Plus
|
| 32 |
+
- **프로젝트**: 한국어 텍스트 비난독화 AI 모델 성능 최적화 연구
|
| 33 |
+
|
| 34 |
+
## 📊 모델 성능
|
| 35 |
+
|
| 36 |
+
| 모델 | BLEU | ROUGE-1 | ROUGE-2 | ROUGE-L | 문자 정확도 | 추론 시간 |
|
| 37 |
+
|------|------|---------|---------|---------|-------------|-----------|
|
| 38 |
+
| 원본 HyperCLOVAX | 0.0029 | 0.138 | 0.064 | 0.138 | 0.151 | 6.78s |
|
| 39 |
+
| **파인튜닝 모델** | **0.0233** | **0.276** | **0.148** | **0.279** | **0.332** | **3.03s** |
|
| 40 |
+
|
| 41 |
+
## 🛠️ 기술 스택
|
| 42 |
+
|
| 43 |
+
### 모델 아키텍처
|
| 44 |
+
- **베이스 모델**: Naver HyperCLOVAX-SEED-Text-Instruct-0.5B
|
| 45 |
+
- **파인튜닝 기법**: LoRA (Low-Rank Adaptation)
|
| 46 |
+
- **양자화**: 4-bit BitsAndBytes
|
| 47 |
+
- **최적화**: AdamW + Linear Warmup
|
| 48 |
+
|
| 49 |
+
### LoRA 설정
|
| 50 |
+
```python
|
| 51 |
+
LoraConfig(
|
| 52 |
+
r=16,
|
| 53 |
+
lora_alpha=32,
|
| 54 |
+
target_modules=["q_proj", "k_proj", "v_proj", "o_proj",
|
| 55 |
+
"gate_proj", "up_proj", "down_proj"],
|
| 56 |
+
lora_dropout=0.1,
|
| 57 |
+
task_type=TaskType.CAUSAL_LM
|
| 58 |
+
)
|
| 59 |
+
```
|
| 60 |
+
|
| 61 |
+
## 📈 실험 결과
|
| 62 |
+
|
| 63 |
+
### 하이퍼파라미터 최적화
|
| 64 |
+
- **Learning Rate**: 1e-4 vs 5e-4 비교
|
| 65 |
+
- **Batch Size**: 1, 2, 4 비교
|
| 66 |
+
- **Dataset Size**: 10K vs 30K 샘플 비교
|
| 67 |
+
|
| 68 |
+
### 최적 설정
|
| 69 |
+
- **Learning Rate**: 1e-4
|
| 70 |
+
- **Batch Size**: 4
|
| 71 |
+
- **Dataset Size**: 10,000 샘플 (효율성 관점)
|
| 72 |
+
|
| 73 |
+
## 💾 데이터셋
|
| 74 |
+
|
| 75 |
+
**696,024개** 한국어 텍스트 샘플 (6가지 유형):
|
| 76 |
+
- 구어체/대화체 (16,878)
|
| 77 |
+
- 뉴스문어체 (281,932)
|
| 78 |
+
- 문화문어체 (25,628)
|
| 79 |
+
- 전문분야문어체 (306,542)
|
| 80 |
+
- 조례문어체 (36,339)
|
| 81 |
+
- 지자체웹사이트문어체 (28,705)
|
| 82 |
+
|
| 83 |
+
## 🚀 빠른 시작
|
| 84 |
+
|
| 85 |
+
### 설치
|
| 86 |
+
```bash
|
| 87 |
+
pip install transformers peft torch bitsandbytes
|
| 88 |
+
```
|
| 89 |
+
|
| 90 |
+
### 사용법
|
| 91 |
+
```python
|
| 92 |
+
from transformers import AutoTokenizer, AutoModelForCausalLM
|
| 93 |
+
from peft import PeftModel
|
| 94 |
+
|
| 95 |
+
# 모델 로드
|
| 96 |
+
base_model = AutoModelForCausalLM.from_pretrained(
|
| 97 |
+
"navercorp/HyperCLOVAX-SEED-Text-Instruct-0.5B"
|
| 98 |
+
)
|
| 99 |
+
model = PeftModel.from_pretrained(base_model, "path/to/lora/adapter")
|
| 100 |
+
tokenizer = AutoTokenizer.from_pretrained(
|
| 101 |
+
"navercorp/HyperCLOVAX-SEED-Text-Instruct-0.5B"
|
| 102 |
+
)
|
| 103 |
+
|
| 104 |
+
# 추론
|
| 105 |
+
prompt = """### 지시사항:
|
| 106 |
+
다음 난독화된 한국어 텍스트를 원래 텍스트로 복원해주세요.
|
| 107 |
+
|
| 108 |
+
난독화된 텍스트: ㅇㅏㄴㄴㅕㅇ하세요
|
| 109 |
+
|
| 110 |
+
### 응답:"""
|
| 111 |
+
|
| 112 |
+
inputs = tokenizer(prompt, return_tensors="pt")
|
| 113 |
+
outputs = model.generate(**inputs, max_new_tokens=128, temperature=0.7)
|
| 114 |
+
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
| 115 |
+
```
|
| 116 |
+
|
| 117 |
+
## 📁 주요 파일
|
| 118 |
+
|
| 119 |
+
```
|
| 120 |
+
FineTuningLLM/
|
| 121 |
+
├── 🧪 실험 노트북
|
| 122 |
+
│ ├── learning_rate_hyperclova_deobfuscation_finetuning.ipynb
|
| 123 |
+
│ ├── batch_size_hyperclova_deobfuscation_finetuning.ipynb
|
| 124 |
+
│ └── datasets_hyperclova_deobfuscation_finetuning.ipynb
|
| 125 |
+
├── 📊 성능 분석
|
| 126 |
+
│ ├── model_performance_analysis_*.ipynb
|
| 127 |
+
│ └── team_all_model_performance_analysis_*.ipynb
|
| 128 |
+
├── 🤖 훈련된 모델
|
| 129 |
+
│ ├── hyperclova-deobfuscation-lora-1e-4-learning-rate/
|
| 130 |
+
│ ├── hyperclova-deobfuscation-lora-*-batch-size/
|
| 131 |
+
│ └── hyperclova-deobfuscation-lora-*-datasets/
|
| 132 |
+
└── 📈 분석 결과 (CSV, PNG)
|
| 133 |
+
```
|
| 134 |
+
|
| 135 |
+
## 🔧 요구사항
|
| 136 |
+
|
| 137 |
+
- Python 3.8+
|
| 138 |
+
- PyTorch 2.0+
|
| 139 |
+
- CUDA 지원 GPU (권장)
|
| 140 |
+
- 16GB+ RAM
|
| 141 |
+
|
| 142 |
+
## 📝 라이선스
|
| 143 |
+
|
| 144 |
+
MIT License - Copyright (c) 2025 91veMe4Plus
|
| 145 |
+
|
| 146 |
+
## 🤝 기여하기
|
| 147 |
+
|
| 148 |
+
이슈나 PR은 언제든 환영합니다! 한국어 NLP 연구에 관심이 있으시면 참여해주세요.
|
| 149 |
+
|
| 150 |
+
## 📞 연락처
|
| 151 |
+
|
| 152 |
+
- **팀**: 91veMe4Plus
|
| 153 |
+
- **프로젝트**: 한국어 텍스트 비난독화 AI 모델 성능 분석
|
| 154 |
+
|
| 155 |
---
|
| 156 |
|
| 157 |
+
*이 프로젝트는 한국어 텍스트 처리 성능 향상을 위한 연구 목적으로 개발되었습니다.*
|