supermon2018's picture
Upload README.md with huggingface_hub
528b65c verified
---
base_model: Qwen/Qwen3-8B
library_name: peft
language:
- ko
- en
license: apache-2.0
tags:
- korean
- qwen3
- lora
- finetuned
- deepspeed
---
# Qwen3-8B Korean Finetuned Model
์ด ๋ชจ๋ธ์€ Qwen3-8B๋ฅผ ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ๋กœ ํŒŒ์ธํŠœ๋‹ํ•œ LoRA ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
## ๋ชจ๋ธ ์ƒ์„ธ ์ •๋ณด
- **๊ธฐ๋ณธ ๋ชจ๋ธ**: Qwen/Qwen3-8B
- **ํŒŒ์ธํŠœ๋‹ ๋ฐฉ๋ฒ•**: LoRA (Low-Rank Adaptation)
- **ํ›ˆ๋ จ ํ”„๋ ˆ์ž„์›Œํฌ**: DeepSpeed ZeRO-2 + Transformers
- **์–ธ์–ด**: ํ•œ๊ตญ์–ด, ์˜์–ด
- **๊ฐœ๋ฐœ์ž**: supermon2018
## ํ›ˆ๋ จ ๊ตฌ์„ฑ
### LoRA ์„ค์ •
- **Rank (r)**: 4
- **Alpha**: 8
- **Dropout**: 0.05
- **Target Modules**: qkv_proj, o_proj, gate_proj, up_proj, down_proj
### ํ›ˆ๋ จ ํŒŒ๋ผ๋ฏธํ„ฐ
- **Epochs**: 2
- **Batch Size**: 2 per device
- **Gradient Accumulation**: 8 steps
- **Learning Rate**: 2e-4
- **Precision**: BF16
- **Optimizer**: AdamW
### ํ•˜๋“œ์›จ์–ด
- **GPU**: 3x RTX 4090 (24GB each)
- **๋ถ„์‚ฐ ํ›ˆ๋ จ**: DeepSpeed ZeRO-2
- **๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”**: Gradient Checkpointing
## ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
### ์˜์กด์„ฑ ์„ค์น˜
```bash
pip install torch transformers peft
```
### ๋ชจ๋ธ ๋กœ๋“œ ๋ฐ ์‚ฌ์šฉ
```python
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# ๊ธฐ๋ณธ ๋ชจ๋ธ๊ณผ ํ† ํฌ๋‚˜์ด์ € ๋กœ๋“œ
base_model_name = "Qwen/Qwen3-8B"
model = AutoModelForCausalLM.from_pretrained(
base_model_name,
torch_dtype=torch.bfloat16,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(base_model_name)
# LoRA ์–ด๋Œ‘ํ„ฐ ๋กœ๋“œ
model = PeftModel.from_pretrained(
model,
"supermon2018/qwen3-8b-korean-finetuned"
)
# ์ถ”๋ก 
def generate_response(prompt, max_length=512):
inputs = tokenizer(prompt, return_tensors="pt")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_length=max_length,
temperature=0.7,
do_sample=True,
pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
return response[len(prompt):].strip()
# ์‚ฌ์šฉ ์˜ˆ์‹œ
prompt = "์•ˆ๋…•ํ•˜์„ธ์š”. ํ•œ๊ตญ์–ด๋กœ ๋Œ€ํ™”ํ•ด ์ฃผ์„ธ์š”."
response = generate_response(prompt)
print(response)
```
## ์„ฑ๋Šฅ ๋ฐ ํŠน์ง•
- **๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ**: LoRA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 16MB ํฌ๊ธฐ์˜ ๊ฐ€๋ฒผ์šด ์–ด๋Œ‘ํ„ฐ
- **๋‹ค๊ตญ์–ด ์ง€์›**: ํ•œ๊ตญ์–ด์™€ ์˜์–ด ๋ชจ๋‘ ์ง€์›
- **๋น ๋ฅธ ์ถ”๋ก **: ๊ธฐ๋ณธ ๋ชจ๋ธ์— ์–ด๋Œ‘ํ„ฐ๋งŒ ์ถ”๊ฐ€ํ•˜์—ฌ ๋น ๋ฅธ ๋กœ๋”ฉ
## ์ œํ•œ์‚ฌํ•ญ
- ์ด ๋ชจ๋ธ์€ LoRA ์–ด๋Œ‘ํ„ฐ์ด๋ฏ€๋กœ ๊ธฐ๋ณธ Qwen3-8B ๋ชจ๋ธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
- ํŠน์ • ๋„๋ฉ”์ธ์ด๋‚˜ ํƒœ์Šคํฌ์— ๋”ฐ๋ผ ์ถ”๊ฐ€ ํŒŒ์ธํŠœ๋‹์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
## ๋ผ์ด์„ ์Šค
Apache 2.0 ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
## ์ธ์šฉ
์ด ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์‹ค ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ธ์šฉํ•ด ์ฃผ์„ธ์š”:
```bibtex
@misc{qwen3-korean-finetuned,
author = {supermon2018},
title = {Qwen3-8B Korean Finetuned Model},
year = {2024},
publisher = {Hugging Face},
url = {https://huggingface.co/supermon2018/qwen3-8b-korean-finetuned}
}
```
## ๋ฌธ์˜์‚ฌํ•ญ
๋ชจ๋ธ ์‚ฌ์šฉ ์ค‘ ๋ฌธ์˜์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋ฉด ์ด์Šˆ๋ฅผ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.