Jiwoong commited on
Commit
d564c9a
·
1 Parent(s): 6244161

docs: 1차 문서

Browse files
Files changed (1) hide show
  1. README.md +155 -8
README.md CHANGED
@@ -1,10 +1,157 @@
1
- ---
2
- title: README
3
- emoji: 📈
4
- colorFrom: pink
5
- colorTo: purple
6
- sdk: static
7
- pinned: false
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ---
9
 
10
- Edit this `README.md` markdown file to author your organization card.
 
1
+ # 🔤 한국어 텍스트 비난독화 AI 모델 | Korean Text De-obfuscation Fine-tuning
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
+ [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
5
+ [![HuggingFace](https://img.shields.io/badge/🤗-HuggingFace-yellow)](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
+ *이 프로젝트는 한국어 텍스트 처리 성능 향상을 위한 연구 목적으로 개발되었습니다.*