Update README.md
Browse files
README.md
CHANGED
|
@@ -1,22 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
-
|
| 6 |
-
-
|
| 7 |
-
-
|
| 8 |
-
-
|
| 9 |
-
|
| 10 |
-
language:
|
| 11 |
-
- en
|
| 12 |
---
|
| 13 |
|
| 14 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
-
-
|
| 17 |
-
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
-
|
| 21 |
|
| 22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# ๐ maple-npc-llama3.2-3B-lora
|
| 2 |
+
|
| 3 |
+
**๋ฉ์ดํ์คํ ๋ฆฌ NPC ๋ํ ํนํ LoRA ํ์ธํ๋ ๋ชจ๋ธ**
|
| 4 |
+
|
| 5 |
+
> Llama 3.2 3B Instruct ๊ธฐ๋ฐ | Unsloth LoRA | ํ๊ตญ์ด ๊ฒ์ NPC ํนํ
|
| 6 |
+
|
| 7 |
+
---
|
| 8 |
+
|
| 9 |
+
## ๐ ๋ชจ๋ธ ๊ฐ์
|
| 10 |
+
|
| 11 |
+
๋ฉ์ดํ์คํ ๋ฆฌ ์ธ๊ณ๊ด์ ํนํ๋ NPC ๋ํ ์์ฑ ๋ชจ๋ธ์
๋๋ค.
|
| 12 |
+
**Big Five ์ฑ๊ฒฉ ๋ชจ๋ธ**์ ํ๋กฌํํธ๋ก ์ ์ดํ์ฌ
|
| 13 |
+
NPC๋ณ ๊ณ ์ ํ ๋งํฌ์ ์ฑ๊ฒฉ์ ๊ตฌํํฉ๋๋ค.
|
| 14 |
+
|
| 15 |
+
- ๋ฒ ์ด์ค ๋ชจ๋ธ: `unsloth/Llama-3.2-3B-Instruct`
|
| 16 |
+
- ํ์ต ๋ฐฉ๋ฒ: LoRA (r=16, alpha=32)
|
| 17 |
+
- ํ์ต ๋ฐ์ดํฐ: ๋ฉ์ดํ์คํ ๋ฆฌ NPC ๋ํ 134์ํ
|
| 18 |
+
- ํ์ต ์๊ฐ: 33์ด (A100, Unsloth 2x ๊ฐ์)
|
| 19 |
+
|
| 20 |
---
|
| 21 |
+
|
| 22 |
+
## ๐ฎ ์ฃผ์ ํน์ง
|
| 23 |
+
|
| 24 |
+
- ๋ฉ์ดํ์คํ ๋ฆฌ ์ธ๊ณ๊ด (ํค๋ค์์ค, ์๋ฆฌ๋์, ์๋ ๋ธ ๋ฑ) ๋ฐ์
|
| 25 |
+
- Big Five ์ฑ๊ฒฉ ๋ชจ๋ธ ๊ธฐ๋ฐ NPC ์ฑ๊ฒฉ ์ ์ด
|
| 26 |
+
- ํด๋์ค๋ณ ๋งํฌ ์ฐจ๋ณํ (์ํฌ๋ฉ์ด์ง, ํฌํ
, ๋ฉ๋ฅด์ธ๋ฐ์ค ๋ฑ)
|
| 27 |
+
- RAG ์ง์ญ ์ปจํ
์คํธ ์ฃผ์
์ง์
|
| 28 |
+
|
|
|
|
|
|
|
| 29 |
---
|
| 30 |
|
| 31 |
+
## ๐ ์ฌ์ฉ๋ฒ
|
| 32 |
+
```python
|
| 33 |
+
from transformers import AutoTokenizer, AutoModelForCausalLM
|
| 34 |
+
|
| 35 |
+
model = AutoModelForCausalLM.from_pretrained("devmeta/maple-npc-llama3.2-3B-lora")
|
| 36 |
+
tokenizer = AutoTokenizer.from_pretrained("devmeta/maple-npc-llama3.2-3B-lora")
|
| 37 |
+
|
| 38 |
+
prompt = """๋๋ ๋ฉ์ดํ์คํ ๋ฆฌ ํค๋ค์์ค ๋ง์์ ์ ๊ด NPC์ผ.
|
| 39 |
+
์นํ์ฑ์ด ๋๊ณ ๋ฐ๋ปํ ์ฑ๊ฒฉ์ด์ผ.
|
| 40 |
+
์ฌ์ฉ์: ์๋
ํ์ธ์!
|
| 41 |
+
NPC:"""
|
| 42 |
+
|
| 43 |
+
inputs = tokenizer(prompt, return_tensors="pt")
|
| 44 |
+
outputs = model.generate(**inputs, max_new_tokens=100)
|
| 45 |
+
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
| 46 |
+
```
|
| 47 |
|
| 48 |
+
---
|
| 49 |
+
|
| 50 |
+
## ๐ ํ์ต ๊ฒฐ๊ณผ
|
| 51 |
+
|
| 52 |
+
| ํญ๋ชฉ | ๊ฐ |
|
| 53 |
+
|------|-----|
|
| 54 |
+
| ๋ฒ ์ด์ค ๋ชจ๋ธ | Llama 3.2 3B Instruct |
|
| 55 |
+
| ํ์ต ์ํ ์ | 134๊ฐ |
|
| 56 |
+
| Epoch | 2 |
|
| 57 |
+
| ์ด๊ธฐ Loss | 3.25 |
|
| 58 |
+
| ์ต์ข
Loss | 2.41 |
|
| 59 |
+
| ํ์ต ์๊ฐ | 33์ด (A100) |
|
| 60 |
+
| ํ์ต ํ๋ผ๋ฏธํฐ | 0.57% (LoRA) |
|
| 61 |
+
|
| 62 |
+
---
|
| 63 |
+
|
| 64 |
+
## ๐ ๊ด๋ จ ํ๋ก์ ํธ
|
| 65 |
+
|
| 66 |
+
- **MaplePersona**: Big Five ์ฌ๋ผ์ด๋ ๊ธฐ๋ฐ NPC ์ฑ๊ฒฉ ์ ์ด ์น์ฑ
|
| 67 |
+
- Gemini Flash + RAG + Big Five ์ค์๊ฐ ์ ์ด
|
| 68 |
+
- [Live Demo](#) | [์คํฌ๋ฆฐ์ท](#)
|
| 69 |
+
|
| 70 |
+
---
|
| 71 |
+
|
| 72 |
+
## ๐ค ๊ฐ๋ฐ์
|
| 73 |
+
|
| 74 |
+
**Taewan Kim** | Nexon KartRider ๋ ๋ฒจ๋์์ธ ํํธ์ฅ (20๋
)
|
| 75 |
+
- ์๊ฐ๋ํ๊ต ๋ฉํ๋ฒ์ค ์ ๋ฌธ๋ํ์ ๋ฐ์ฌ๊ณผ์
|
| 76 |
+
- GitHub: [Taewan627](https://github.com/Taewan627)
|
| 77 |
+
```
|
| 78 |
+
|
| 79 |
+
---
|
| 80 |
|
| 81 |
+
## ์ถ๊ฐ๋ก ํ ๊ฒ
|
| 82 |
|
| 83 |
+
๋ชจ๋ธ ํ๊ทธ๋ ์ถ๊ฐํ์ธ์. Settings โ Tags:
|
| 84 |
+
```
|
| 85 |
+
korean
|
| 86 |
+
game-npc
|
| 87 |
+
maplestory
|
| 88 |
+
llama
|
| 89 |
+
lora
|
| 90 |
+
big-five
|