gemma-mud-colab-starter
์๊ณ ์กฐ์ฉํ ๋ถ์จ ํ๋๋ฅผ ์ฝ๋ฉ ์์ ์ฌ๋ ค ๋๋ ํจํค์ง๋ค.
์ด ๋ฌถ์์ MUD ๋ฌธ์ฒดยทNPC ๋ํยท๋ฐฉ ๋ถ์๊ธฐ๋ฅผ ์ํ Gemma 4 + Unsloth LoRA ์ฒซ ์คํ์ฉ ์ต์ ํจํค์ง๋ค.
์ด ํจํค์ง๋ ์์ฑํ ๋๊ท๋ชจ ํ์ต ์์คํ
์ด ์๋๋ค.
100๊ฐ ์ํ ๋ฐ์ดํฐ๋ก ํ๋ฆ์ ์ตํ๊ณ , ๋
ธํธ๋ถ์ด ์ค์ ๋ก ํ ๋ฒ ๋์๊ฐ๊ฒ ๋ง๋๋ ๋ฐ ๋ชฉ์ ์ด ์๋ค.
1. ๋ฌด์์ด ๋ค์ด ์๋
README.md
์ ์ฒด ํ๋ฆ ์๋ดrequirements_colab.txt
์ฝ๋ฉ ์ค์น ํจํค์ง ๋ชฉ๋กrun_instructions.md
์ ๋ง ์ฌ์ด ์คํ ์์troubleshooting.md
์์ฃผ ๋งํ๋ ๋ฌธ์ ์ ํด๊ฒฐdataset/gemma4_mud_alpaca_100.jsonl
ํ์ต ๋ฐ์ดํฐ์ notebooks/Gemma4_MUD_QLoRA_Colab_Notebook.ipynb
์ฝ๋ฉ ์คํ ๋ ธํธ๋ถexamples/sample_prompts.md
ํ ์คํธ์ฉ ๋ช ๋ น ์์examples/lmstudio_system_prompt_ko.txt
LM Studio ๋ถ์ฌ ๋ฃ๊ธฐ์ฉ ์์คํ ํ๋กฌํํธexamples/lmstudio_system_prompt_npc_ko.txt
LM Studio ์งง์ NPC ๋ํ์ฉ ํ๋กฌํํธexamples/lmstudio_system_prompt_lore_ko.txt
LM Studio ์ธ๊ณ๊ด ์ค๋ช ์ฉ ํ๋กฌํํธexamples/lmstudio_test_prompts.md
LM Studio ํ์ธ์ฉ ํ ์คํธ ๋ฌธ์ฅexamples/expected_outputs.md
์ ์ ์ถ๋ ฅ์ ๊ฒฐ์ ์ฝ๋ ๊ธฐ์คoutput/.gitkeep
๊ฒฐ๊ณผ ํด๋ ์๋ฆฌ ๋ณด์กด์ฉpackage_manifest.md
ํ์ผ ์ญํ ์์ฝ
2. ์ด ํจํค์ง์ ๋ชฉ์
์ด ํจํค์ง๋ ์๋ ์ ์ ๋น ๋ฅด๊ฒ ์ํํ๋ ๋ฐ ๋ง์ถฐ์ ธ ์๋ค.
- MUD ๋ช ๋ น์ด์ ๋ํ ๋ฌธ์ฒด ํ์ต
- NPC ๋ํ ๋ฐ์ ๋ฏธ์ธ์กฐ์
- ๋ก์ปฌ ์ถ๋ก ์๋ฒ๋ MUD ์์ง์ ๋ถ์ผ ์ ์๋ LoRA ์ด๋ํฐ ์์ฑ
์ฆ,
๊ฒ์ ํ์ ์ ์ฒด๋ฅผ AI์๊ฒ ๋งก๊ธฐ๋ ๊ฒ์ด ์๋๋ผ
๋งํฌ, ๋ถ์๊ธฐ, ์งง์ ์์ฌ, ํํธ์ฑ ์๋ต์ ๋ค๋ฌ๋ ๋ฐฉํฅ์ ๋ง๋ค.
3. ์ค๋น๋ฌผ
- Google ๊ณ์
- Google Colab
- ์ ํ: Hugging Face ๊ณ์
- ์ ํ: Hugging Face ํ ํฐ
- ์ด ํจํค์ง zip ํ์ผ
4. Hugging Face ๋ก๊ทธ์ธ์ ์ธ์ ํ์ํ๊ฐ
์ด๋ฒ ๋
ธํธ๋ถ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ unsloth/gemma-4-E2B-it ๋ฅผ ์ฌ์ฉํ๋ค.
๋ก์ปฌ ์ ์ฅ๋ง ํ ๋๋ Hugging Face ๋ก๊ทธ์ธ์ด ์์ด๋ ์์ํ ์ ์๋ค.
์๋ ๊ฒฝ์ฐ์๋ ๋ก๊ทธ์ธํด ๋๋ ํธ์ด ์ข๋ค.
- Hugging Face Hub๋ก LoRA ์ด๋ํฐ๋ฅผ ์ฌ๋ฆฌ๊ณ ์ถ์ ๋
- ๋ค๋ฅธ gated Gemma ์ฒดํฌํฌ์ธํธ๋ฅผ ์ง์ ๋ถ๋ฌ์ค๊ณ ์ถ์ ๋
- ๋ชจ๋ธ/๊ฒฐ๊ณผ๋ฅผ Hub์์ ๊ด๋ฆฌํ๊ณ ์ถ์ ๋
์ค์:
- ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฌธ์์ ์ ์ง ์๋๋ค.
- ํ ํฐ์ ์ฝ๋์ ํ๋์ฝ๋ฉํ์ง ์๋๋ค.
- ํ ํฐ์ด ํ์ํ ๋๋ง ๋ ธํธ๋ถ์ ๋ก๊ทธ์ธ ์ ์ฃผ์์ ํ์ด ์ง์ ์ ๋ ฅํ๋ค.
5. ๊ฐ์ฅ ์ฌ์ด ์คํ ์์
๋ฐฉ๋ฒ A โ ๊ฐ์ฅ ์ฌ์ด ๊ธธ
- zip์ ํผ๋ค.
notebooks/Gemma4_MUD_QLoRA_Colab_Notebook.ipynb๋ฅผ Colab์์ ์ฐ๋ค.- ๋ฐํ์์ GPU๋ก ๋ฐ๊พผ๋ค.
dataset/gemma4_mud_alpaca_100.jsonlํ์ผ์ Colab ํ์ผ ํจ๋์ ์ ๋ก๋ํ๋ค.- ์ ์ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์คํํ๋ค.
- ์ค์น ์ ๋ค์ import ์ค๋ฅ๊ฐ ๋ฌ๋ค๋ฉด ๋ฐํ์ ์ฌ์์ ํ 2๋ฒ ์ ๋ถํฐ ๋ค์ ์คํํ๋ค.
- ํ์ํ ๋๋ง Hugging Face ๋ก๊ทธ์ธ ์ ์ ์ฃผ์์ ํ์ด ์คํํ๋ค.
- ํ์ต์ด ๋๋๋ฉด
/content/output/gemma_mud_lora_outํด๋๋ฅผ ํ์ธํ๋ค.
๋ฐฉ๋ฒ B โ ๋๋ผ์ด๋ธ์ ๋๊ณ ์ฐ๊ธฐ
- zip์ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ ์ฌ๋ฆฐ๋ค.
- ๋๋ผ์ด๋ธ์์ ์์ถ์ ํผ๋ค.
- ๋ ธํธ๋ถ์์ ๊ฒฝ๋ก ์ค์ ์ ๋ง ๋ฐ๊ฟ ๋๋ผ์ด๋ธ ๊ฒฝ๋ก๋ฅผ ์ก๋๋ค.
- ๋๋จธ์ง๋ ๊ฐ์ ์์๋ก ์คํํ๋ค.
6. ๋ฐ์ดํฐ์ ์์น์ ํ์
๊ธฐ๋ณธ ๋ฐ์ดํฐ์ ์ ์ฌ๊ธฐ์ ์๋ค.
dataset/gemma4_mud_alpaca_100.jsonl
ํ์์ ๋ค์ ํ๋๋ฅผ ๊ฐ์ง Alpaca ๊ณ์ด JSONL์ด๋ค.
instructioninputoutputtext
๋
ธํธ๋ถ์ ์ด ํ์ผ์ ๋จผ์ ์ฝ๊ณ , instruction/input/output ๋ฅผ Gemma 4์ฉ user/assistant ๋ํ๋ก ๋ค์ ๊ฐ์ผ ๋ค, ์ต์ข
text ์ปฌ๋ผ์ ๋ง๋ค์ด Unsloth SFTTrainer ์ ๋๊ธด๋ค.
7. ๋ ธํธ๋ถ ๊ธฐ๋ณธ ์ค์
๋
ธํธ๋ถ์ ์ฒ์ ์ฑ๊ณต ํ๋ฅ ์ ๋์ด๊ธฐ ์ํด Unsloth์ Gemma 4 E2B instruct ์ฒดํฌํฌ์ธํธ๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋๋ค.
์๋ํ๋ฉด ๋ฌด๋ฃ Colab T4์์๋ ๋น๊ต์ ํ์ค์ ์ผ๋ก ํ ๋ฒ ๋์๊ฐ๊ฒ ๋ง๋ค๊ธฐ ์ข๊ธฐ ๋๋ฌธ์ด๋ค.
๊ธฐ๋ณธ๊ฐ ์์:
per_device_train_batch_size = 1gradient_accumulation_steps = 4num_train_epochs = 1learning_rate = 2e-4MAX_SEQ_LENGTH = 1024LOAD_IN_4BIT = False
VRAM์ด ๋ถ์กฑํ๋ฉด ์ค์ ์
์์ LOAD_IN_4BIT = True ๋๋ MAX_SEQ_LENGTH = 512 ๋ก ๋ฎ์ถ๋ค.
ํต์ฌ์ Gemma 4๋ฅผ ๊ทธ๋ฅ Alpaca ๋ฌธ์์ด๋ก ๋ฃ์ง ์๊ณ , Gemma 4 ์ฑํ
ํ
ํ๋ฆฟ์ผ๋ก ๋ค์ ๊ฐ์ผ ๋ค Unsloth LoRA๋ก ํ์ตํ๋ ์ ์ด๋ค.
8. ํ์ต ํ ๊ฒฐ๊ณผ๋ ์ด๋์ ์ ์ฅ๋๋
๊ธฐ๋ณธ ์ ์ฅ ์์น:
/content/output/gemma_mud_lora_out
์ฌ๊ธฐ์๋ ๋ณดํต ์๋๊ฐ ์๊ธด๋ค.
- LoRA adapter ๊ฐ์ค์น
- ํ ํฌ๋์ด์ ํ์ผ
- ์ค์ ํ์ผ ์ผ๋ถ
- ์ฒดํฌํฌ์ธํธ ํด๋
์ด ํด๋๋ฅผ Google Drive๋ก ๋ณต์ฌํ๊ฑฐ๋, Colab์์ ์ง์ ๋ด๋ ค๋ฐ์ผ๋ฉด ๋๋ค.
9. ๋ก์ปฌ MUD ์คํ์ ๋ถ์ด๋ ํฐ ํ๋ฆ
ํ์ต์ด ๋๋๋ฉด ๋ณดํต ์ด๋ ๊ฒ ์ด์ด์ง๋ค.
- LoRA ์ด๋ํฐ ์ ์ฅ
- ๋ก์ปฌ ๋๋ ์๋ฒ ์ถ๋ก ํ๊ฒฝ์ ๋ก๋
- MUD ๋ช ๋ น ์ ๋ ฅ์ ํ๋กฌํํธ๋ก ๋ณํ
talk oracle,look,rumor๊ฐ์ ์๋ต ์์ฑ- ๊ฒ์ ์์ง์ ์ฌ์ ํ ํ์ ์ ๋งก๊ณ , AI๋ ๋ง๊ณผ ๋ถ์๊ธฐ๋ฅผ ๋งก์
ํต์ฌ์ ์ด ์ ์ ์งํค๋ ๊ฒ์ด๋ค.
- ์์ง: ์ด๋, ์ ํฌ ํ์ , ๋ณด์, ํ์คํธ ์ํ
- AI: ๋ํ, ๋ถ์๊ธฐ, ์ ์น, ์งง์ ํํธ
10. ํ๊ณ์ ์ฃผ์์ฌํญ
์ด ํจํค์ง๋ ์ฒซ ์คํ์ฉ์ด๋ค.
- ๋ฐ์ดํฐ๊ฐ 100๊ฐ๋ฟ์ด๋ผ ํ์ง์ด ํ๋ค๋ฆด ์ ์๋ค.
- ๋ฌธ์ฒด๋ ๋ฐฐ์๋, ์ธ๊ณ ๊ท์น ์ ์ฒด๋ฅผ ์๋์ผ๋ก ์ดํดํ์ง๋ ์๋๋ค.
- ํฐ ๋ชจ๋ธ์ ๋ฌด๋ฃ Colab์์ ์คํจํ ์ ์๋ค.
- ๊ธด ์ํ์ค ๊ธธ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ์ก์๋จน๋๋ค.
- ์ธ์ ์ด ๋๊ธฐ๋ฉด ์ ์ฅ ์ ๊น์ง ์์ ์ด ์ฌ๋ผ์ง ์ ์๋ค.
๋ํ ์ด๋ฐ ๋ฌธ์ฅ์ AI๊ฐ ์์๋ก ๋ด๋ฉด ์ ๋๋ค.
- โ๋๋ ํ์คํธ๋ฅผ ์๋ฃํ๋คโ
- โ๋๋ 500 ๊ณจ๋๋ฅผ ์ป์๋คโ
- โ๋ฌธ์ด ์ด๋ ธ๋คโ
์ด๊ฒ์ ๊ฒ์ ์์ง ํ์ ์์ญ์ด๋ค.
11. ๊ถ์ฅ ํ ์คํธ ๋ช ๋ น
ํ์ต ์งํ์๋ ์๋ ๋ค์ฏ ๊ฐ๋ฅผ ๋จผ์ ๋ฃ์ด ๋ณด๋ ํธ์ด ์ข๋ค.
talk oracleask oracle about first firelookrumorscan signal
์ข์ ์ถ๋ ฅ์ ์งง๊ณ , ์ธ๊ณ๊ด ์์ ๋จธ๋ฌผ๊ณ , ๊ณผ์ฅ๋ ๋ฉํ ๋ฐ์ธ์ด ์ ๋ค.
LM Studio ์์ ํ ์คํธํ ๋๋ ์๋ ํ์ผ๋ ๊ฐ์ด ๋ณด๋ฉด ํธํ๋ค.
examples/lmstudio_system_prompt_ko.txtexamples/lmstudio_system_prompt_npc_ko.txtexamples/lmstudio_system_prompt_lore_ko.txtexamples/lmstudio_test_prompts.md
12. ๋ค์ ํ์ฅ ๋จ๊ณ
- 100๊ฐ โ 300๊ฐ ๋ฐ์ดํฐ ํ์ฅ
- chat/messages ํ์ ๋ฐ์ดํฐ์ ์คํ
- NPC๋ณ ์ ์ฉ ๋ฐ์ดํฐ์ ๋ถ๋ฆฌ
- ๋ก์ปฌ ์ถ๋ก ์๋ฒ ์ฐ๋
- MUD ๋ช ๋ น์ด๋ณ ์๋ต ํ์ง ๋น๊ต
์ฒ์์๋ ํ ๋ช
์ NPC๋ง ์ด์๋๋ ์ถฉ๋ถํ๋ค.
๊ทธ ๋ค์ ์ธ๊ณ๋ฅผ ๋ํ๋ฉด ๋๋ค.