| --- |
| language: |
| - ko |
| license: apache-2.0 |
| base_model: unsloth/Llama-3.2-3B-Instruct |
| tags: |
| - llama |
| - lora |
| - korean |
| - game-npc |
| - maplestory |
| - big-five |
| - unsloth |
| pipeline_tag: text-generation |
| --- |
| |
| # π maple-npc-llama3.2-3B-lora |
|
|
| **λ©μ΄νμ€ν 리 NPC λν νΉν LoRA νμΈνλ λͺ¨λΈ** |
|
|
| > Llama 3.2 3B Instruct κΈ°λ° | Unsloth LoRA | νκ΅μ΄ κ²μ NPC νΉν |
|
|
| --- |
|
|
| ## π λͺ¨λΈ κ°μ |
|
|
| λ©μ΄νμ€ν 리 μΈκ³κ΄μ νΉνλ NPC λν μμ± λͺ¨λΈμ
λλ€. |
| **Big Five μ±κ²© λͺ¨λΈ**μ ν둬ννΈλ‘ μ μ΄νμ¬ NPCλ³ κ³ μ ν λ§ν¬μ μ±κ²©μ ꡬνν©λλ€. |
|
|
| | νλͺ© | λ΄μ© | |
| |------|------| |
| | λ² μ΄μ€ λͺ¨λΈ | `unsloth/Llama-3.2-3B-Instruct` | |
| | νμ΅ λ°©λ² | LoRA (r=16) | |
| | νμ΅ λ°μ΄ν° | λ©μ΄νμ€ν 리 NPC λν 134μν | |
| | μ΄κΈ° Loss | 3.25 | |
| | μ΅μ’
Loss | 2.41 | |
| | νμ΅ μκ° | 33μ΄ (A100, Unsloth 2x) | |
| | νμ΅ νλΌλ―Έν° | 0.57% (18M / 3.2B) | |
|
|
| --- |
|
|
| ## π λ² μ΄μ€ λͺ¨λΈ vs νμΈνλ λΉκ΅ |
|
|
| ### Q1. ν€λ€μμ€ λ§μ μ κ΄μκ² μΈμ¬ν΄μ€ |
|
|
| **β λ² μ΄μ€ Llama 3.2** |
| ``` |
| Hello! I'm a priestess of Henesys. |
| How can I help you today? |
| ``` |
|
|
| **β
maple-npc (νμΈνλ ν)** |
| ``` |
| μ΄μ μ€μΈμ, λͺ¨νκ°λ. |
| μ λ ν€λ€μμ€ μ μ μ μ§ν€λ μ κ΄μ
λλ€. |
| μλμ€ μ¬μ μ κ°νΈκ° ν¨κ»νμκΈΈ λ°λλλ€. |
| ``` |
|
|
| --- |
|
|
| ### Q2. κ²μ λ§λ²μ¬μ λν΄ μκ³ μμ΄? |
|
|
| **β λ² μ΄μ€ Llama 3.2** |
| ``` |
| The Black Mage is a powerful villain in MapleStory. |
| He was sealed away but has returned... |
| ``` |
|
|
| **β
maple-npc (νμΈνλ ν)** |
| ``` |
| ...κ·Έ μ΄λ¦μ ν¨λΆλ‘ μ
μ λ΄μ§ λ§μΈμ. |
| λ΄μΈλ μ§ 100λ
μ΄ μ§λ¬μ§λ§ |
| μμ§λ κ·Έ μ΄λ μ κΈ°μ΄μ΄ λλ₯ κ³³κ³³μ λ¨μμμ΅λλ€. |
| ``` |
|
|
| --- |
|
|
| ### Q3. κΆμλ‘ μ μ§νλ €λ©΄ μ΄λ»κ² ν΄μΌ ν΄? |
|
|
| **β λ² μ΄μ€ Llama 3.2** |
| ``` |
| To become an archer, visit the job advancement NPC |
| and meet the level requirements. |
| ``` |
|
|
| **β
maple-npc (νμΈνλ ν)** |
| ``` |
| κΆμμ κΈΈμ κ±·κ³ μΆμΌμ κ°μ? |
| λ 벨 10 μ΄μμ΄ λμ
¨λ€λ©΄ |
| ν€λ€μμ€ νν°μμ μ μ§ μμμ μΉλ₯Ό μ μμ΅λλ€. |
| νκ³Ό νμ΄μ μ€λΉλμ
¨λμ, λͺ¨νκ°λ? |
| ``` |
|
|
| --- |
|
|
| ### Q4. λ©λ₯΄μΈλ°μ€ μ¬μλμ μ΄λ€ λΆμ΄μΌ? |
|
|
| **β λ² μ΄μ€ Llama 3.2** |
| ``` |
| Mercedes is an elf queen character in MapleStory |
| with high agility and dual bowguns. |
| ``` |
|
|
| **β
maple-npc (νμΈνλ ν)** |
| ``` |
| λ©λ₯΄μΈλ°μ€ μ¬μλ... |
| μνμ‘±μ μλμ΄μ λΉμ μνΈμμ΄μλλ€. |
| κ²μ λ§λ²μ¬μμ μ μμμ νλ‘ μΈμ°μλ€ |
| κΈ΄ μ μ λμ
¨μ§λ§, κ·Έ μ©λ§Ήν¨μ μ°λ¦¬ λͺ¨λμ ν¬λ§μ
λλ€. |
| ``` |
|
|
| --- |
|
|
| ## β
ν΅μ¬ κ°μ ν¬μΈνΈ |
|
|
| | νλͺ© | λ² μ΄μ€ λͺ¨λΈ | νμΈνλ ν | |
| |------|------------|------------| |
| | μΈμ΄ | μμ΄ νΌμ© | μμ νκ΅μ΄ | |
| | λ§ν¬ | μ 보 μ λ¬μ²΄ | NPC μΊλ¦ν° λ§ν¬ | |
| | μΈκ³κ΄ | μν€ μ€λͺ
μμ€ | μΈκ³κ΄ λͺ°μ
λ°μ | |
| | κ°μ νν | μμ | μΊλ¦ν° κ°μ ν¬ν¨ | |
| | κ³ μ λͺ
μ¬ | λ²μ μ€λ₯ λ€μ | μ νν λ©μ΄ν μ©μ΄ | |
|
|
| --- |
|
|
| ## π μ¬μ©λ² |
| ```python |
| from unsloth import FastLanguageModel |
| |
| model, tokenizer = FastLanguageModel.from_pretrained( |
| "devmeta/maple-npc-llama3.2-3B-lora", |
| max_seq_length=512, |
| load_in_4bit=True, |
| ) |
| FastLanguageModel.for_inference(model) |
| |
| prompt = """λλ λ©μ΄νμ€ν 리 ν€λ€μμ€ λ§μμ μ κ΄ NPCμΌ. |
| μΉνμ±μ΄ λκ³ λ°λ»ν μ±κ²©μ΄μΌ. |
| μ¬μ©μ: μλ
νμΈμ! |
| NPC:""" |
| |
| inputs = tokenizer(prompt, return_tensors="pt").to("cuda") |
| outputs = model.generate(**inputs, max_new_tokens=100, |
| temperature=0.7, do_sample=True) |
| print(tokenizer.decode(outputs[0], skip_special_tokens=True)) |
| ``` |
|
|
| --- |
|
|
| ## π κ΄λ ¨ νλ‘μ νΈ |
|
|
| **MaplePersona** β Big Five μ¬λΌμ΄λ κΈ°λ° NPC μ±κ²© μ μ΄ μΉμ± |
| - Gemini Flash + RAG μ§μ 컨ν
μ€νΈ + Big Five μ€μκ° μ μ΄ |
| - μ¬λΌμ΄λ μ‘°μ μΌλ‘ λμμ /λ°λ»ν NPC μΈκ²© μ¦μ μ ν |
|
|
| --- |
|
|
| ## π€ κ°λ°μ |
|
|
| **Taewan Kim** |
| GitHub: [Taewan627](https://github.com/Taewan627) |
| HuggingFace: [devmeta](https://huggingface.co/devmeta) |