--- 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)