Update README.md
Browse files
README.md
CHANGED
@@ -8,4 +8,185 @@ metrics:
|
|
8 |
- perplexity: 874
|
9 |
base_model:
|
10 |
- google/gemma-2b-it
|
11 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
- perplexity: 874
|
9 |
base_model:
|
10 |
- google/gemma-2b-it
|
11 |
+
---
|
12 |
+
|
13 |
+
|
14 |
+
#GemmaSprint
|
15 |
+
|
16 |
+
|
17 |
+
|
18 |
+
* ๋ชจ๋ธ๊ด๋ จ ๊ณผ์ , ๊ฒฐ๊ณผ๋ฑ
|
19 |
+
https://joey-k.tistory.com/15
|
20 |
+
|
21 |
+
* github
|
22 |
+
https://github.com/GOOGLE-MLB-2024-GJ/Beans
|
23 |
+
|
24 |
+
|
25 |
+
|
26 |
+
|
27 |
+
gemma ์ฒซ๋ฒ์งธ ํ์ธํ๋ ๋ชจ๋ธ์
๋๋ค.
|
28 |
+
|
29 |
+
์ปคํผ์ ๋ํ ์ ๋ฐ์ ์ธ ์ง์๊ณผ ์ปคํผ ์๋๋ฅผ ์ถ์ฒํด์ฃผ๋ ์๋น์ค์
๋๋ค.
|
30 |
+
|
31 |
+
|
32 |
+
|
33 |
+
* ๋ชจ๋ธ
|
34 |
+
|
35 |
+
2b ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ธํ๋์ ์งํํ์์ต๋๋ค.
|
36 |
+
|
37 |
+
์ฒ์์๋ ๊ธฐ๋ณธ๋ชจ๋ธ์ธ "google/gemma-2b-it"๋ก ํ์ธํ๋์ ํ๋ค๊ฐ, ์ ฌ๋ง ํ๊ตญ์ด ๋ฒ์ ์ ๋ง๋ค์ด ๋์ผ์ ๊ฒ ์์ด์ ๊ฑฐ๊ธฐ์ ๋ ํ์ฅ์ ํ์์ต๋๋ค.
|
38 |
+
|
39 |
+
|
40 |
+
|
41 |
+
-.gemma ํ๊ตญ์ด ๋ฒ์
|
42 |
+
|
43 |
+
https://huggingface.co/beomi/gemma-ko-2b
|
44 |
+
|
45 |
+
|
46 |
+
|
47 |
+
*ํ๋ํ ๋ํ
|
48 |
+
|
49 |
+
: ์ด์ํ ๋ถ๋ถ์ด ์์ง ๋ง์ ๋๋์
๋๋ค. ๋ฐ์ดํฐ์ ํ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์กฐ์ ํด์ ๋ ์์ฐ์ค๋ฝ๊ฒ ๋ง๋ค์ด ๋ณผ ์์ ์ด๋ค.
|
50 |
+
|
51 |
+
|
52 |
+
|
53 |
+
|
54 |
+
|
55 |
+
|
56 |
+
* ๋ฐ์ดํฐ
|
57 |
+
๋ฐ์ดํฐ๋ฅผ ์ฒ์์ ๊ณ ๋ฏผ์ ๋ง์ด ํ๋ค๊ฐ ์ธํฐ๋ท์ ๊ณต์ ๋์ด ์๋ ์ปคํผ ์ ๋ฐ์ ์ธ ์ง์์ ํ๋์ฉ ๊ฐ์ ธ์์ต๋๋ค.
|
58 |
+
๊ทธํ์ gpt๋ก ์ ์ ํ finetunning ๋ชจ๋ธ์ ์ํ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ฒ ํ์์ต๋๋ค. ๋ฐ๋ก gpt api๋ฅผ ์ฐ์ง ์์๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ์ ๋ฒ์์ ๋์์ต๋๋ค๋ง, ๋๋ฆ ๊ด์ฐฎ์ ํ๋ฆฌํฐ์ ๋ฐ์ดํฐ๋ผ๊ณ ์๊ฐํด์ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ฝ 2์ฒ๊ฐ ๊ฐ๋์ ์ปคํผ ์ ๋ฐ์ ์ธ ์ง์์ ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ ์ ์์์ต๋๋ค.
|
59 |
+
{ "instruction": "์ปคํผ๊ฐ ์ฒด์ค ๊ฐ์์ ๋์์ ์ค ์ ์๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?", "response": "์ปคํผ ์ ์นดํ์ธ์ด ์ ์ง๋์ฌ๋ฅผ ์ด์งํ๊ณ , ์ง๋ฐฉ ์ฐ์๋ฅผ ์ด์งํด ์ฒด์ค ๊ฐ์์ ๋์์ด ๋ ์ ์์ต๋๋ค.", "category": "closed_qa" },
|
60 |
+
{ "instruction": "ํญ์ฐํ ์ฑ๋ถ์ด ํ๋ถํ ์ปคํผ์ ๊ฑด๊ฐ ํจ๊ณผ๋ ๋ฌด์์ธ๊ฐ์?", "response": "์ปคํผ์ ํฌํจ๋ ํญ์ฐํ ์ฑ๋ถ์ ์ธํฌ ์์์ ๋ฐฉ์งํ๊ณ , ๋
ธํ๋ฅผ ์ง์ฐ์ํค๋ฉฐ, ์ ์๋ฐฉ์๋ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.", "category": "closed_qa" },
|
61 |
+
{ "instruction": "์ปคํผ๊ฐ ๊ณ ํ์ ํ์์๊ฒ ๋ฏธ์น๋ ์ํฅ์ ๋ฌด์์ธ๊ฐ์?", "response": "์ฐ๊ตฌ์ ๋ฐ๋ฅด๋ฉด, ํ๋ฃจ ํ ์์ ์ปคํผ๊ฐ ๊ณ ํ์ ํ์์ ํ๊ด ํ๋ ฅ์ ๊ฐ์ ํ์ฌ ํ๊ด ๊ฒฝํ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๋ค.", "category": "closed_qa" },
|
62 |
+
{ "instruction": "์ปคํผ๊ฐ ๋ ๊ฑด๊ฐ์ ๋ฏธ์น๋ ๊ธ์ ์ ์ธ ํจ๊ณผ๋ ๋ฌด์์ธ๊ฐ์?", "response": "์ปคํผ ์ ์นดํ์ธ์ ๋ํ๋ฏผ๊ณผ ๊ฐ์ ์ ๊ฒฝ ์ ๋ฌ ๋ฌผ์ง์ ๋ถ๋น๋ฅผ ์ด์งํด ๋ ๊ฑด๊ฐ์ ์ ์งํ๊ณ , ์ธ์ง ๊ธฐ๋ฅ์ ํฅ์์ํค๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.", "category": "closed_qa" },
|
63 |
+
|
64 |
+
|
65 |
+
context๋ ์๋๋ ์์๋๋ฐ ๊ทธ๋ค์ง ๋ง์ด ์ฐ์ด์ง ์๋ ๊ฒ๊ฐ์์ Instruction๊ณผ response๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
|
66 |
+
|
67 |
+
|
68 |
+
|
69 |
+
* ์์
|
70 |
+
|
71 |
+
์ฒ์์ kaggle๊ณผ colab์์ ์งํ์ ํ๋ค๊ฐ ๊ฐ์ธ ๋งฅ๋ถํ๋ก๊ฐ ๋ ๋น ๋ฅผ๊ฒ ๊ฐ์์ ์ฎ๊ฒผ์ต๋๋ค.
|
72 |
+
|
73 |
+
์ด๋ถ์ ์ฝ๋๋ฅผ ๋ฐํ์ผ๋ก ์์ ์ ํ์์ต๋๋ค.
|
74 |
+
|
75 |
+
https://devocean.sk.com/blog/techBoardDetail.do?ID=165703&boardType=techBlog
|
76 |
+
|
77 |
+
|
78 |
+
|
79 |
+
์ฌ๊ธฐ์ ๋งฅ๋ถ์์ ํ๋ฉด ๋ฌธ์ ๊ฐ ํ๋ ์๋๋ฐ ํธ๋์คํฌ๋จธ๊ฐ 4.38.2๊ฐ ๋งฅ๋ถ์์ ์๋์๊ฐ๋๋ค.
|
80 |
+
|
81 |
+
๊ทธ๋์ 4.38.1๋ก ๋ค์ดํด์ ์งํํ์์ต๋๋ค.
|
82 |
+
https://www.singleye.net/2024/04/%E5%9C%A8-apple-silicon-m3-max-%E4%B8%8A%E5%AF%B9-llama2-%E8%BF%9B%E8%A1%8C%E5%BE%AE%E8%B0%83/#4-qlora-4-bit-%E9%87%8F%E5%8C%96%E9%85%8D%E7%BD%AE-m3-%E8%B7%B3%E8%BF%87
|
83 |
+
|
84 |
+
|
85 |
+
|
86 |
+
๋งฅ๋ถํ๋ก m3 ๊ธฐ์ค์ผ๋ก ํด์ 2์ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ฒํ ๋ 3์๊ฐ ์ ๋ ์์๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
|
87 |
+
|
88 |
+
gpu๋ ๊ฐ์ด ๋๋ ค์ ๊ทธ๋ฐ์ง ๊ทธ๋๋ง ๋น ๋ฅด๊ฒ ์งํ ํ ์ ์์์ต๋๋ค.
|
89 |
+
|
90 |
+
|
91 |
+
|
92 |
+
macbook gpu ์์ ์ฌ์ฉ์ ์๋์ ๊ฐ์ด ์งํํ์์ต๋๋ค.
|
93 |
+
|
94 |
+
https://velog.io/@es_seong/Mac
|
95 |
+
|
96 |
+
|
97 |
+
|
98 |
+
* ํ์ธํ๋
|
99 |
+
|
100 |
+
ํ์ธํ๋์ ์๋์ ๊ฐ์ ์ค์ ์ผ๋ก ์งํํ์์ต๋๋ค. ๋งฅ์ด๋ผ์ ์์ํ๊ฐ ์๋์ cpu๋ก ์งํ์ ํ๊ฒ ๋ ํ์๊ณ , ์๋์ ์ค์ ๋ค์ ์ ์ ์ดํด๋ณด์๋ฉด
|
101 |
+
|
102 |
+
|
103 |
+
|
104 |
+
# LoRA ์ค์
|
105 |
+
lora_config = LoraConfig(
|
106 |
+
r=6,
|
107 |
+
lora_alpha=8,
|
108 |
+
lora_dropout=0.05,
|
109 |
+
target_modules=["q_proj", "o_proj", "k_proj", "v_proj", "gate_proj", "up_proj", "down_proj"],
|
110 |
+
task_type="CAUSAL_LM",
|
111 |
+
)
|
112 |
+
|
113 |
+
# ๋ชจ๋ธ ์ค์
|
114 |
+
trainer = SFTTrainer(
|
115 |
+
model=model,
|
116 |
+
train_dataset=train_data,
|
117 |
+
max_seq_length=512,
|
118 |
+
args=TrainingArguments(
|
119 |
+
output_dir="outputs",
|
120 |
+
max_steps=3000,
|
121 |
+
per_device_train_batch_size=1,
|
122 |
+
gradient_accumulation_steps=4,
|
123 |
+
optim="adamw_torch",
|
124 |
+
warmup_steps=0.03,
|
125 |
+
learning_rate=2e-4,
|
126 |
+
fp16=False,
|
127 |
+
logging_steps=100,
|
128 |
+
push_to_hub=False,
|
129 |
+
report_to='none',
|
130 |
+
use_mps_device=False
|
131 |
+
),
|
132 |
+
peft_config=lora_config,
|
133 |
+
formatting_func=generate_prompt, # ์๋ก์ด ํฌ๋งทํ
ํจ์ ์ ์ฉ
|
134 |
+
)
|
135 |
+
|
136 |
+
|
137 |
+
์๋์ ์ค์ ๋ค์ ์ ์ ์ดํด๋ณด์๋ฉด
|
138 |
+
|
139 |
+
|
140 |
+
|
141 |
+
r=6
|
142 |
+
|
143 |
+
: r์ ๋ญํฌ(rank)๋ฅผ ์๋ฏธํ๋ฉฐ, LoRA์์ ํ์ตํ๋ ์ ์ฐจ์ ํ๋ ฌ์ ์ฐจ์์ ์ ์ํฉ๋๋ค. ์ด๋ ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ์ ํจ์จ์ ํํ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ์์ r ๊ฐ๏ฟฝ๏ฟฝ ์ ์ ํ์ต ํ๋ผ๋ฏธํฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก r ๊ฐ์ด ๋์์๋ก ๋ ๋ง์ ํ์ต ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง๊ฒ ๋์ด ์ฑ๋ฅ์ด ํฅ์๋ ์ ์์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋์ด๋ฉ๋๋ค.
|
144 |
+
|
145 |
+
|
146 |
+
|
147 |
+
lora_alpha=8
|
148 |
+
|
149 |
+
: lora_alpha๋ LoRA์์ ์ฌ์ฉํ๋ ํ์ต๋ฅ ์ ์กฐ์ ํ๋ ์ค์ผ์ผ๋ง ํฉํฐ์
๋๋ค. ์ด๋ ์ ์ฐจ์ ํ๋ ฌ์์ ๋์จ ์ถ๋ ฅ์ ์กฐ์ ํ๋ ์ญํ ์ ํ๋ฉฐ, ํ์ต๋ฅ ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ์ง๋ ์ค์ํ ์์์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ ํฐ ๊ฐ์ ํ์ต ์๋๋ฅผ ๋์ผ ์ ์์ง๋ง, ๋๋ฌด ํฌ๋ฉด ๊ณผ์ ํฉ ์ํ์ด ์์ต๋๋ค.
|
150 |
+
|
151 |
+
|
152 |
+
|
153 |
+
lora_dropout=0.05
|
154 |
+
|
155 |
+
: lora_dropout์ ๋๋กญ์์ ๋น์จ์ ์ค์ ํ๋ฉฐ, ๋ชจ๋ธ ํ์ต ์ ๊ณผ์ ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ผ๋ถ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฌด์์๋ก ์ ๊ฑฐํ๋ ๋น์จ์ ๋ํ๋
๋๋ค. ์ฌ๊ธฐ์๋ 5%์ ๋๋กญ์์์ด ์ ์ฉ๋ฉ๋๋ค.
|
156 |
+
|
157 |
+
|
158 |
+
|
159 |
+
target_modules=["q_proj", "o_proj", "k_proj", "v_proj", "gate_proj", "up_proj", "down_proj"]
|
160 |
+
|
161 |
+
: target_modules๋ LoRA๊ฐ ์ ์ฉ๋๋ ๋ชจ๋๋ค์ ์ง์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ q_proj, k_proj, v_proj ๋ฑ ์ฃผ๋ก Transformer ๊ธฐ๋ฐ ๋ชจ๋ธ์์ ์ฌ์ฉ๋๋ ์ฟผ๋ฆฌ, ํค, ๋ฐธ๋ฅ ํ๋ก์ ์
๋ชจ๋์ LoRA๊ฐ ์ ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋์ ์ฃผ๋ก ์ดํ
์
๋งค์ปค๋์ฆ์์ ์ค์ํ ์ญํ ์ ํ๋ฉฐ, ์ด ๋ชจ๋๋ค๋ง ํ์ตํจ์ผ๋ก์จ ํ์ต ํจ์จ์ฑ์ ๋์
๋๋ค.
|
162 |
+
|
163 |
+
|
164 |
+
|
165 |
+
task_type="CAUSAL_LM"
|
166 |
+
|
167 |
+
: task_type์ ์ํํ๋ ค๋ ์์
์ ์ ํ์ ์ ์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ **Causal Language Modeling(CAUSAL_LM)**์ ์๋ฏธํ๋ฉฐ, ๋ชจ๋ธ์ด ๋ฌธ๋งฅ์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋ ๋ฐฉ์์ผ๋ก ํ์ต๋ฉ๋๋ค.
|
168 |
+
|
169 |
+
|
170 |
+
|
171 |
+
|
172 |
+
|
173 |
+
* ์ฑ๋ฅ
|
174 |
+
|
175 |
+
perflexity ์ธก์ ๊ฒฐ๊ณผ 874
|
176 |
+
|
177 |
+
|
178 |
+
|
179 |
+
|
180 |
+
|
181 |
+
|
182 |
+
* ์ฐธ๊ณ ํ ๋ด์ฉ๋ค
|
183 |
+
|
184 |
+
-.์บ๊ธ์์ TPU๋ก ํ์ธํ๋
|
185 |
+
|
186 |
+
https://www.kaggle.com/code/alirezaebrahimi/gemma-2-tpu-fine-tuning
|
187 |
+
|
188 |
+
|
189 |
+
|
190 |
+
-.์ปคํผ ๊ด๋ จ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค(์๋์ ๋ง์ ์ ์๋ก ๋ํ๋, ๋ฐ์ดํฐ๋ ์ด๊ฒ์ผ๋ก ํ์ง ์์.)
|
191 |
+
|
192 |
+
https://github.com/ddthang86/Coffee-data-analysis/blob/main/Arabica/df_arabica_clean.csv
|