๋ฌธ์ ํด๊ฒฐ
1. Hugging Face ์ธ์ฆ ์คํจ
์ฆ์
- ๋ก๊ทธ์ธ ์ ์์ ์ค๋ฅ๊ฐ ๋๋ค.
- ํ ํฐ ์ ๋ ฅ ํ์๋ ์ธ์ฆ ์คํจ ๋ฉ์์ง๊ฐ ๋ฌ๋ค.
์์ธ
- ํ ํฐ์ด ํ๋ ธ๊ฑฐ๋ ๋ง๋ฃ๋์์ ์ ์๋ค.
- ํ ํฐ ๊ถํ์ด ๋ถ์กฑํ ์ ์๋ค.
- ๋ถ์ฌ ๋ฃ๋ ๊ณผ์ ์์ ๊ณต๋ฐฑ์ด ์์์ ์ ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- Hugging Face์์ ์ ํ ํฐ์ ๋ค์ ๋ฐ๊ธํ๋ค.
- ๋ณต์ฌํ ๋ ์๋ค ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ค.
- ๋ ธํธ๋ถ์ ์ฌ์์ํ ๋ค ๋ค์ ๋ก๊ทธ์ธํ๋ค.
2. Gemma ๋ชจ๋ธ ์ ๊ทผ ๊ถํ ์ค๋ฅ
์ฆ์
from_pretrained๋จ๊ณ์์ ์ ๊ทผ ๊ฑฐ๋ถ๊ฐ ๋ฌ๋ค.- gated model ๊ด๋ จ ๋ฉ์์ง๊ฐ ๋์จ๋ค.
์์ธ
- Gemma ๋ชจ๋ธ ์ฌ์ฉ ์กฐ๊ฑด์ ์์ง ์น์ธํ์ง ์์๋ค.
- ์น์ธ ํ์๋ ๋ก๊ทธ์ธ ์ํ๊ฐ ๋ฐ์๋์ง ์์์ ์ ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- Hugging Face์์ ์ํ๋ Gemma ๋ชจ๋ธ ์นด๋๋ก ์ด๋ํ๋ค.
- ์ฌ์ฉ ์กฐ๊ฑด์ ์น์ธํ๋ค.
- ๋ค์ ๋ก๊ทธ์ธํ๋ค.
- ๊ณ์ ๋งํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ธ
unsloth/gemma-4-E2B-it๊ฒฝ๋ก๋ก ๋จผ์ ์ํํ๋ค.
3. Colab GPU๊ฐ ์ ์กํ๋ ๊ฒฝ์ฐ
์ฆ์
torch.cuda.is_available()๊ฐFalse๋ก ๋์จ๋ค.import unsloth์์Unsloth cannot find any torch accelerator์ค๋ฅ๊ฐ ๋๋ค.
์์ธ
- ๋ฐํ์์ด CPU๋ก ์ด๋ ธ์ ์ ์๋ค.
- ๋ฌด๋ฃ Colab ์์์ด ์ ์ ๋ถ์กฑํ ์ ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ๋ฐํ์ โ ๋ฐํ์ ์ ํ ๋ณ๊ฒฝ โ GPU ๋ก ๋ค์ ์ค์ ํ๋ค.
- ์ ์ธ์ ์ ๋ค์ ์ด์ด ๋ณธ๋ค.
- GPU๋ก ๋ฐ๊พผ ๋ค์๋ ์ค์น ์ ๋ถํฐ ๋ค์ ์คํํ๋ค.
- ๊ณ์ ์ ๋๋ฉด ์ ์ ํ ๋ค์ ์๋ํ๋ค.
4. bitsandbytes / quantization ๊ด๋ จ ์ค๋ฅ
์ฆ์
- 4bit ์์ํ ์ค์ ์ ์์ ์ค๋ฅ๊ฐ ๋๋ค.
- bitsandbytes import ์ค๋ฅ๊ฐ ๋๋ค.
์์ธ
- ํจํค์ง ์ค์น๊ฐ ๋ ๋๋ฌ์ ์ ์๋ค.
- GPU ์ธ์ ์ด ์๋ ์ํ์ผ ์ ์๋ค.
- ์ค์น ํ ๋ฐํ์ ์ฌ์์์ด ํ์ํ ์ ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์ค์น ์ ์ ๋ค์ ์คํํ๋ค.
- ๋ฐํ์์ ์ฌ์์ํ๋ค.
- GPU๊ฐ ์ค์ ๋ก ์กํ๋์ง ๋ค์ ํ์ธํ๋ค.
LOAD_IN_4BIT = True/False๋ฅผ ๋ฐ๊ฟ ์ด๋ ์ชฝ์ด ํ์ฌ ์ธ์ ์์ ์์ ์ ์ธ์ง ํ์ธํ๋ค.
4-1. import ๋จ๊ณ์์ ๋ฐ๋ก ๊นจ์ง๋ ๊ฒฝ์ฐ
์ฆ์
from transformers import ...๋จ๊ณ์์ ๋ฐ๋ก ์ค๋ฅ๊ฐ ๋๋ค.ModuleNotFoundError: No module named 'unsloth'๊ฐ ๋ฌ๋ค.from unsloth import FastModel๋จ๊ณ์์ import error ๊ฐ ๋๋ค.from trl import SFTTrainer์์ import error ๊ฐ ๋๋ค.- ์ค์น ์ ์ ๋๋ฌ์ง๋ง ๋ค์ ์ ์์ ํจํค์ง ์ถฉ๋ ๋ฉ์์ง๊ฐ ์ด์ด์ง๋ค.
์์ธ
- Colab ๊ธฐ๋ณธ
torch์ Unsloth ์ชฝ ํจํค์ง ๋ฒ์ ์ด ์ค๊ฐ์ ์์์ ์ ์๋ค. transformers==5.5.0์ด์ ์กฐํฉ์ด๋ ๋๋ฝ๋timm/torchcodec๋๋ฌธ์ Gemma 4 import ๊ฐ ๊นจ์ง ์ ์๋ค.- ์ค์น ์งํ ์ฌ์์ ์์ด ์ด์ ๋ฐํ์ ์ํ๊ฐ ๋จ์ ์์ ์ ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ๋ ธํธ๋ถ ์ค์น ์ ์ ๊ทธ๋๋ก ๋ค์ ์คํํ๋ค.
- ์ค์น ๋ค ๋ฐ๋ก ๊นจ์ก๋ค๋ฉด ๋ฐํ์์ ์ฌ์์ํ ๋ค์ 2๋ฒ ์ ๋ถํฐ ๋ค์ ์คํํ๋ค.
- ์ค์น ์
๋ง์ง๋ง์
pip show unsloth์ถ๋ ฅ์ด ์ค์ ๋ก ๋ณด์ด๋์ง ํ์ธํ๋ค. - ๋ฒ์ ์ถ๋ ฅ์์
unsloth,transformers,trl์ด ์ ์์ ์ผ๋ก ์ฐํ๋์ง ํ์ธํ๋ค.
5. ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ
์ฆ์
- ํ์ต ์ค๊ฐ์ out of memory ์ค๋ฅ๊ฐ ๋๋ค.
- ์ธ์ ์ด ๊ฐ์๊ธฐ ์ฃฝ๋๋ค.
์์ธ
- ๋ชจ๋ธ์ด ๋๋ฌด ํฌ๋ค.
MAX_SEQ_LENGTH๊ฐ ๋๋ฌด ๊ธธ๋ค.- ๋ฐฐ์น ํฌ๊ธฐ ๋๋ ๋์ ์คํ ์กฐํฉ์ด ํ์ฌ GPU์ ๋ฌด๊ฒ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
LOAD_IN_4BIT = True๋ก ๋ฐ๊พผ๋ค.MAX_SEQ_LENGTH๋ฅผ 1024 โ 512 ๋ก ์ค์ธ๋ค.- batch size๋ 1๋ก ์ ์งํ๊ณ , ํ์ํ๋ฉด ๋ฐ์ดํฐ ์๋ฅผ ์ค์ฌ ํ๋ฆ๋ง ๋จผ์ ํ์ธํ๋ค.
6. dataset ํ์ผ ๊ฒฝ๋ก ์ค๋ฅ
์ฆ์
FileNotFoundError๊ฐ ๋ฌ๋ค.- ๋ ธํธ๋ถ์ด dataset ํ์ผ์ ์ฐพ์ง ๋ชปํ๋ค.
์์ธ
- ํ์ผ ์ ๋ก๋ ์์น๊ฐ ๋ ธํธ๋ถ ์ค์ ๊ณผ ๋ค๋ฅด๋ค.
- zip์ ํ์์ง๋ง Colab ๊ฒฝ๋ก๊ฐ ๋ฌ๋ผ์ก๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ํ์ผ ํจ๋์์ ์ค์ ๊ฒฝ๋ก๋ฅผ ํ์ธํ๋ค.
- ์ค์ ์
์
DATA_CANDIDATES๋ชฉ๋ก์ ํ์ฌ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ๋ค. - ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ dataset ํ์ผ์
/content/์ ์ง์ ์ฌ๋ฆฌ๋ ๊ฒ์ด๋ค.
7. ์ธ์ ์ข ๋ฃ ๋๋ ๋ฐํ์ ์ด๊ธฐํ
์ฆ์
- ์ฝ๋ฉ์ด ๊ฐ์๊ธฐ ๋ค์ ์์๋๋ค.
- ํ์ต ๋ก๊ทธ๊ฐ ์ฌ๋ผ์ง๋ค.
์์ธ
- ๋ฌด๋ฃ Colab ์ธ์ ์ ํ
- ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ
- ์ฅ์๊ฐ ์ ํด ์ํ
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ๋จผ์ ์์ ๋ชจ๋ธ๊ณผ ์งง์ ์ค์ ์ผ๋ก ํ ๋ฒ ์ฑ๊ณต์ํจ๋ค.
- ์ ์ฅ ์ ์ด ๋๋ฌ๋์ง ์์๋ก ํ์ธํ๋ค.
- ๊ฒฐ๊ณผ๋ ๊ฐ๋ฅํ ๋นจ๋ฆฌ Drive๋ ๋ก์ปฌ์ ๋ฐฑ์ ํ๋ค.
8. ์ถ๋ ฅ ํ์ง์ด ์ด์ํ ๊ฒฝ์ฐ
์ฆ์
- ๋งํฌ๊ฐ ํ๋ค๋ฆฐ๋ค.
- ์ธ๊ณ๊ด ๋ฐ ์ค๋ช ์ด ๋์จ๋ค.
- ๋๋ฌด ๊ธธ๊ฑฐ๋ ๊ฑด์กฐํ ๋ต์ด ๋์จ๋ค.
์์ธ
- ๋ฐ์ดํฐ ์๊ฐ ์ ๋ค.
- instruction์ด ์ถฉ๋ถํ ๊ตฌ์ฒด์ ์ด์ง ์๋ค.
- ๋ฌธ์ฒด๋ ์ตํ์ง๋ง ๊ท์น๊น์ง ์๋์ผ๋ก ๋ฐฐ์ฐ์ง ๋ชปํ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ๋ฐ์ดํฐ ์๋ฅผ 300๊ฐ ์ด์์ผ๋ก ๋๋ฆฐ๋ค.
- NPC๋ณ, ๋ช ๋ น์ด๋ณ ๋ฐ์ดํฐ๋ฅผ ๋๋๋ค.
instruction๋ฌธ์ฅ์ ๋ ๋๋ ทํ๊ฒ ์ด๋ค.- ์ค์ ๊ฒ์ ํ์ ์ ์์ง์ด ๋งก๊ณ , AI๋ ๋ํ/๋ถ์๊ธฐ/์์ฌ ๋ณด์กฐ์ ์ฐ๋ ํธ์ด ์์ ํ๋ค.
9. ์ ์ฅ ํ์ผ์ด ์ ๋ณด์ด๋ ๊ฒฝ์ฐ
์ฆ์
- ํ์ต์ ๋๋ฌ๋๋ฐ ์ถ๋ ฅ ํด๋๊ฐ ๋น์ด ๋ณด์ธ๋ค.
- ํ์ผ ํจ๋์์ ๊ฒฐ๊ณผ๊ฐ ์ ์ ๋ณด์ธ๋ค.
์์ธ
- ์ ์ฅ ๊ฒฝ๋ก๋ฅผ ์๋ชป ๋ณด์์ ์ ์๋ค.
- ์ธ์ ์ฌ์์ ์ ์ ์ฅ์ด ๋๋์ง ์์์ ์ ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
/content/output/gemma_mud_lora_out๊ฒฝ๋ก๋ฅผ ์ง์ ํ์ธํ๋ค.os.listdir()๋ก ํด๋ ๋ด์ฉ์ ์ถ๋ ฅํด ๋ณธ๋ค.- Drive ๋ณต์ฌ ์ ์ ์ฌ์ฉํด ๋ณ๋ ์์น์ ๋ฐฑ์ ํ๋ค.