joeykims commited on
Commit
a5538bc
ยท
verified ยท
1 Parent(s): 293a82f

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +182 -1
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