dahara1 commited on
Commit
49f8652
1 Parent(s): 3681411

add finetune samples

Browse files
config.json CHANGED
@@ -26,15 +26,4 @@
26
  "use_cache": true,
27
  "use_parallel_residual": true,
28
  "vocab_size": 50277
29
- "quantization_config": {
30
- "quant_method":"gptq",
31
- "bits": 4,
32
- "group_size": 128,
33
- "damp_percent": 0.01,
34
- "desc_act": true,
35
- "sym": true,
36
- "true_sequential": true,
37
- "model_name_or_path": null,
38
- "model_file_base_name": null
39
- }
40
  }
 
26
  "use_cache": true,
27
  "use_parallel_residual": true,
28
  "vocab_size": 50277
 
 
 
 
 
 
 
 
 
 
 
29
  }
finetune_sample/README.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-nc-4.0
3
+ inference: false
4
+ language:
5
+ - ja
6
+ ---
7
+
8
+ for finetune sample
9
+
10
+
11
+
finetune_sample/checkpoint-700/README.md ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: peft
3
+ ---
4
+ ## Training procedure
5
+
6
+
7
+ The following `bitsandbytes` quantization config was used during training:
8
+ - quant_method: gptq
9
+ - bits: 4
10
+ - tokenizer: None
11
+ - dataset: None
12
+ - group_size: 128
13
+ - damp_percent: 0.01
14
+ - desc_act: True
15
+ - sym: True
16
+ - true_sequential: True
17
+ - use_cuda_fp16: False
18
+ - model_seqlen: None
19
+ - block_name_to_quantize: None
20
+ - module_name_preceding_first_block: None
21
+ - batch_size: 1
22
+ - pad_token_id: None
23
+ - disable_exllama: True
24
+ ### Framework versions
25
+
26
+
27
+ - PEFT 0.5.0
finetune_sample/checkpoint-700/adapter_config.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_mapping": null,
3
+ "base_model_name_or_path": "test-model3",
4
+ "bias": "none",
5
+ "fan_in_fan_out": false,
6
+ "inference_mode": true,
7
+ "init_lora_weights": true,
8
+ "layers_pattern": null,
9
+ "layers_to_transform": null,
10
+ "lora_alpha": 16,
11
+ "lora_dropout": 0.1,
12
+ "modules_to_save": null,
13
+ "peft_type": "LORA",
14
+ "r": 64,
15
+ "revision": null,
16
+ "target_modules": [
17
+ "query_key_value"
18
+ ],
19
+ "task_type": "CAUSAL_LM"
20
+ }
finetune_sample/checkpoint-700/adapter_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fcfef0c72b4fd8f0e5ea06605691c9091330cdf51e155d1f4729445a0752f588
3
+ size 179333129
finetune_sample/checkpoint-700/optimizer.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0aa8c4cfeab1eed7054642b9c5a1379a5782b568cc8bc96393ba4baee244e05c
3
+ size 358655685
finetune_sample/checkpoint-700/rng_state.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:57a11434c8c20faed3ac8d68282ec0c7256bfcd54943d2b5be0f8019e079ddde
3
+ size 14575
finetune_sample/checkpoint-700/scheduler.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:30423cc69a1c7d18caef4643847588d5884db012263cbe7b7224fa4719ca4156
3
+ size 627
finetune_sample/checkpoint-700/special_tokens_map.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "<|endoftext|>",
3
+ "eos_token": "<|endoftext|>",
4
+ "pad_token": "<|endoftext|>",
5
+ "unk_token": "<|endoftext|>"
6
+ }
finetune_sample/checkpoint-700/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
finetune_sample/checkpoint-700/tokenizer_config.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "clean_up_tokenization_spaces": true,
3
+ "model_max_length": 1000000000000000019884624838656,
4
+ "tokenizer_class": "PreTrainedTokenizerFast"
5
+ }
finetune_sample/checkpoint-700/trainer_state.json ADDED
@@ -0,0 +1,439 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_metric": null,
3
+ "best_model_checkpoint": null,
4
+ "epoch": 215.3846153846154,
5
+ "eval_steps": 500,
6
+ "global_step": 700,
7
+ "is_hyper_param_search": false,
8
+ "is_local_process_zero": true,
9
+ "is_world_process_zero": true,
10
+ "log_history": [
11
+ {
12
+ "epoch": 3.08,
13
+ "learning_rate": 0.0002,
14
+ "loss": 1.1505,
15
+ "step": 10
16
+ },
17
+ {
18
+ "epoch": 6.15,
19
+ "learning_rate": 0.0002,
20
+ "loss": 0.753,
21
+ "step": 20
22
+ },
23
+ {
24
+ "epoch": 9.23,
25
+ "learning_rate": 0.0002,
26
+ "loss": 0.568,
27
+ "step": 30
28
+ },
29
+ {
30
+ "epoch": 12.31,
31
+ "learning_rate": 0.0002,
32
+ "loss": 0.3911,
33
+ "step": 40
34
+ },
35
+ {
36
+ "epoch": 15.38,
37
+ "learning_rate": 0.0002,
38
+ "loss": 0.2373,
39
+ "step": 50
40
+ },
41
+ {
42
+ "epoch": 18.46,
43
+ "learning_rate": 0.0002,
44
+ "loss": 0.1112,
45
+ "step": 60
46
+ },
47
+ {
48
+ "epoch": 21.54,
49
+ "learning_rate": 0.0002,
50
+ "loss": 0.0842,
51
+ "step": 70
52
+ },
53
+ {
54
+ "epoch": 24.62,
55
+ "learning_rate": 0.0002,
56
+ "loss": 0.0736,
57
+ "step": 80
58
+ },
59
+ {
60
+ "epoch": 27.69,
61
+ "learning_rate": 0.0002,
62
+ "loss": 0.0662,
63
+ "step": 90
64
+ },
65
+ {
66
+ "epoch": 30.77,
67
+ "learning_rate": 0.0002,
68
+ "loss": 0.0676,
69
+ "step": 100
70
+ },
71
+ {
72
+ "epoch": 33.85,
73
+ "learning_rate": 0.0002,
74
+ "loss": 0.0632,
75
+ "step": 110
76
+ },
77
+ {
78
+ "epoch": 36.92,
79
+ "learning_rate": 0.0002,
80
+ "loss": 0.0639,
81
+ "step": 120
82
+ },
83
+ {
84
+ "epoch": 40.0,
85
+ "learning_rate": 0.0002,
86
+ "loss": 0.0605,
87
+ "step": 130
88
+ },
89
+ {
90
+ "epoch": 43.08,
91
+ "learning_rate": 0.0002,
92
+ "loss": 0.0605,
93
+ "step": 140
94
+ },
95
+ {
96
+ "epoch": 46.15,
97
+ "learning_rate": 0.0002,
98
+ "loss": 0.0608,
99
+ "step": 150
100
+ },
101
+ {
102
+ "epoch": 49.23,
103
+ "learning_rate": 0.0002,
104
+ "loss": 0.0606,
105
+ "step": 160
106
+ },
107
+ {
108
+ "epoch": 52.31,
109
+ "learning_rate": 0.0002,
110
+ "loss": 0.0614,
111
+ "step": 170
112
+ },
113
+ {
114
+ "epoch": 55.38,
115
+ "learning_rate": 0.0002,
116
+ "loss": 0.0602,
117
+ "step": 180
118
+ },
119
+ {
120
+ "epoch": 58.46,
121
+ "learning_rate": 0.0002,
122
+ "loss": 0.0603,
123
+ "step": 190
124
+ },
125
+ {
126
+ "epoch": 61.54,
127
+ "learning_rate": 0.0002,
128
+ "loss": 0.06,
129
+ "step": 200
130
+ },
131
+ {
132
+ "epoch": 64.62,
133
+ "learning_rate": 0.0002,
134
+ "loss": 0.059,
135
+ "step": 210
136
+ },
137
+ {
138
+ "epoch": 67.69,
139
+ "learning_rate": 0.0002,
140
+ "loss": 0.061,
141
+ "step": 220
142
+ },
143
+ {
144
+ "epoch": 70.77,
145
+ "learning_rate": 0.0002,
146
+ "loss": 0.0612,
147
+ "step": 230
148
+ },
149
+ {
150
+ "epoch": 73.85,
151
+ "learning_rate": 0.0002,
152
+ "loss": 0.0624,
153
+ "step": 240
154
+ },
155
+ {
156
+ "epoch": 76.92,
157
+ "learning_rate": 0.0002,
158
+ "loss": 0.0595,
159
+ "step": 250
160
+ },
161
+ {
162
+ "epoch": 80.0,
163
+ "learning_rate": 0.0002,
164
+ "loss": 0.0601,
165
+ "step": 260
166
+ },
167
+ {
168
+ "epoch": 83.08,
169
+ "learning_rate": 0.0002,
170
+ "loss": 0.0593,
171
+ "step": 270
172
+ },
173
+ {
174
+ "epoch": 86.15,
175
+ "learning_rate": 0.0002,
176
+ "loss": 0.0622,
177
+ "step": 280
178
+ },
179
+ {
180
+ "epoch": 89.23,
181
+ "learning_rate": 0.0002,
182
+ "loss": 0.0607,
183
+ "step": 290
184
+ },
185
+ {
186
+ "epoch": 92.31,
187
+ "learning_rate": 0.0002,
188
+ "loss": 0.0592,
189
+ "step": 300
190
+ },
191
+ {
192
+ "epoch": 95.38,
193
+ "learning_rate": 0.0002,
194
+ "loss": 0.0592,
195
+ "step": 310
196
+ },
197
+ {
198
+ "epoch": 98.46,
199
+ "learning_rate": 0.0002,
200
+ "loss": 0.0597,
201
+ "step": 320
202
+ },
203
+ {
204
+ "epoch": 101.54,
205
+ "learning_rate": 0.0002,
206
+ "loss": 0.0599,
207
+ "step": 330
208
+ },
209
+ {
210
+ "epoch": 104.62,
211
+ "learning_rate": 0.0002,
212
+ "loss": 0.06,
213
+ "step": 340
214
+ },
215
+ {
216
+ "epoch": 107.69,
217
+ "learning_rate": 0.0002,
218
+ "loss": 0.0591,
219
+ "step": 350
220
+ },
221
+ {
222
+ "epoch": 110.77,
223
+ "learning_rate": 0.0002,
224
+ "loss": 0.0593,
225
+ "step": 360
226
+ },
227
+ {
228
+ "epoch": 113.85,
229
+ "learning_rate": 0.0002,
230
+ "loss": 0.0594,
231
+ "step": 370
232
+ },
233
+ {
234
+ "epoch": 116.92,
235
+ "learning_rate": 0.0002,
236
+ "loss": 0.0608,
237
+ "step": 380
238
+ },
239
+ {
240
+ "epoch": 120.0,
241
+ "learning_rate": 0.0002,
242
+ "loss": 0.0597,
243
+ "step": 390
244
+ },
245
+ {
246
+ "epoch": 123.08,
247
+ "learning_rate": 0.0002,
248
+ "loss": 0.06,
249
+ "step": 400
250
+ },
251
+ {
252
+ "epoch": 126.15,
253
+ "learning_rate": 0.0002,
254
+ "loss": 0.0591,
255
+ "step": 410
256
+ },
257
+ {
258
+ "epoch": 129.23,
259
+ "learning_rate": 0.0002,
260
+ "loss": 0.0606,
261
+ "step": 420
262
+ },
263
+ {
264
+ "epoch": 132.31,
265
+ "learning_rate": 0.0002,
266
+ "loss": 0.0609,
267
+ "step": 430
268
+ },
269
+ {
270
+ "epoch": 135.38,
271
+ "learning_rate": 0.0002,
272
+ "loss": 0.0585,
273
+ "step": 440
274
+ },
275
+ {
276
+ "epoch": 138.46,
277
+ "learning_rate": 0.0002,
278
+ "loss": 0.0597,
279
+ "step": 450
280
+ },
281
+ {
282
+ "epoch": 141.54,
283
+ "learning_rate": 0.0002,
284
+ "loss": 0.0609,
285
+ "step": 460
286
+ },
287
+ {
288
+ "epoch": 144.62,
289
+ "learning_rate": 0.0002,
290
+ "loss": 0.0609,
291
+ "step": 470
292
+ },
293
+ {
294
+ "epoch": 147.69,
295
+ "learning_rate": 0.0002,
296
+ "loss": 0.0598,
297
+ "step": 480
298
+ },
299
+ {
300
+ "epoch": 150.77,
301
+ "learning_rate": 0.0002,
302
+ "loss": 0.061,
303
+ "step": 490
304
+ },
305
+ {
306
+ "epoch": 153.85,
307
+ "learning_rate": 0.0002,
308
+ "loss": 0.0606,
309
+ "step": 500
310
+ },
311
+ {
312
+ "epoch": 156.92,
313
+ "learning_rate": 0.0002,
314
+ "loss": 0.0634,
315
+ "step": 510
316
+ },
317
+ {
318
+ "epoch": 160.0,
319
+ "learning_rate": 0.0002,
320
+ "loss": 0.0599,
321
+ "step": 520
322
+ },
323
+ {
324
+ "epoch": 163.08,
325
+ "learning_rate": 0.0002,
326
+ "loss": 0.0611,
327
+ "step": 530
328
+ },
329
+ {
330
+ "epoch": 166.15,
331
+ "learning_rate": 0.0002,
332
+ "loss": 0.0652,
333
+ "step": 540
334
+ },
335
+ {
336
+ "epoch": 169.23,
337
+ "learning_rate": 0.0002,
338
+ "loss": 0.0619,
339
+ "step": 550
340
+ },
341
+ {
342
+ "epoch": 172.31,
343
+ "learning_rate": 0.0002,
344
+ "loss": 0.0618,
345
+ "step": 560
346
+ },
347
+ {
348
+ "epoch": 175.38,
349
+ "learning_rate": 0.0002,
350
+ "loss": 0.0609,
351
+ "step": 570
352
+ },
353
+ {
354
+ "epoch": 178.46,
355
+ "learning_rate": 0.0002,
356
+ "loss": 0.0597,
357
+ "step": 580
358
+ },
359
+ {
360
+ "epoch": 181.54,
361
+ "learning_rate": 0.0002,
362
+ "loss": 0.0607,
363
+ "step": 590
364
+ },
365
+ {
366
+ "epoch": 184.62,
367
+ "learning_rate": 0.0002,
368
+ "loss": 0.06,
369
+ "step": 600
370
+ },
371
+ {
372
+ "epoch": 187.69,
373
+ "learning_rate": 0.0002,
374
+ "loss": 0.0587,
375
+ "step": 610
376
+ },
377
+ {
378
+ "epoch": 190.77,
379
+ "learning_rate": 0.0002,
380
+ "loss": 0.0595,
381
+ "step": 620
382
+ },
383
+ {
384
+ "epoch": 193.85,
385
+ "learning_rate": 0.0002,
386
+ "loss": 0.0592,
387
+ "step": 630
388
+ },
389
+ {
390
+ "epoch": 196.92,
391
+ "learning_rate": 0.0002,
392
+ "loss": 0.0605,
393
+ "step": 640
394
+ },
395
+ {
396
+ "epoch": 200.0,
397
+ "learning_rate": 0.0002,
398
+ "loss": 0.0592,
399
+ "step": 650
400
+ },
401
+ {
402
+ "epoch": 203.08,
403
+ "learning_rate": 0.0002,
404
+ "loss": 0.0616,
405
+ "step": 660
406
+ },
407
+ {
408
+ "epoch": 206.15,
409
+ "learning_rate": 0.0002,
410
+ "loss": 0.0596,
411
+ "step": 670
412
+ },
413
+ {
414
+ "epoch": 209.23,
415
+ "learning_rate": 0.0002,
416
+ "loss": 0.0587,
417
+ "step": 680
418
+ },
419
+ {
420
+ "epoch": 212.31,
421
+ "learning_rate": 0.0002,
422
+ "loss": 0.0614,
423
+ "step": 690
424
+ },
425
+ {
426
+ "epoch": 215.38,
427
+ "learning_rate": 0.0002,
428
+ "loss": 0.0591,
429
+ "step": 700
430
+ }
431
+ ],
432
+ "logging_steps": 10,
433
+ "max_steps": 10000,
434
+ "num_train_epochs": 3334,
435
+ "save_steps": 10,
436
+ "total_flos": 1586920711709184.0,
437
+ "trial_name": null,
438
+ "trial_params": null
439
+ }
finetune_sample/checkpoint-700/training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8c1207143eb2c930f6c1ad3da7fe6a921e5a3ead4e713becdba6f55c764039b8
3
+ size 4027
finetune_sample/config.json ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "matsuo-lab/weblab-10b-instruction-sft",
3
+ "architectures": [
4
+ "GPTNeoXForCausalLM"
5
+ ],
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 0,
8
+ "classifier_dropout": 0.1,
9
+ "eos_token_id": 0,
10
+ "hidden_act": "gelu",
11
+ "hidden_dropout": 0.0,
12
+ "hidden_size": 4864,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 19456,
15
+ "layer_norm_eps": 1e-05,
16
+ "max_position_embeddings": 2048,
17
+ "model_type": "gpt_neox",
18
+ "num_attention_heads": 38,
19
+ "num_hidden_layers": 36,
20
+ "rope_scaling": null,
21
+ "rotary_emb_base": 10000,
22
+ "rotary_pct": 0.25,
23
+ "tie_word_embeddings": false,
24
+ "torch_dtype": "float16",
25
+ "transformers_version": "4.31.0",
26
+ "use_cache": true,
27
+ "use_parallel_residual": true,
28
+ "vocab_size": 50277
29
+ "quantization_config": {
30
+ "quant_method":"gptq",
31
+ "bits": 4,
32
+ "group_size": 128,
33
+ "damp_percent": 0.01,
34
+ "desc_act": true,
35
+ "sym": true,
36
+ "true_sequential": true,
37
+ "model_name_or_path": null,
38
+ "model_file_base_name": null
39
+ }
40
+ }
finetune_sample/finetune.py ADDED
@@ -0,0 +1,221 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+
3
+ # Original Scripts are
4
+ # https://gist.github.com/SunMarc/dcdb499ac16d355a8f265aa497645996
5
+ # and
6
+ # https://gist.github.com/younesbelkada/9f7f75c94bdc1981c8ca5cc937d4a4da
7
+ # changed by webbigdata for use_safetensors.
8
+
9
+
10
+ # Copyright 2023 The HuggingFace Inc. team. All rights reserved.
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ import os
24
+ from dataclasses import dataclass, field
25
+ from typing import Optional
26
+
27
+ import torch
28
+ from datasets import load_dataset
29
+ from peft import LoraConfig
30
+ from transformers import (
31
+ AutoModelForCausalLM,
32
+ AutoTokenizer,
33
+ HfArgumentParser,
34
+ AutoTokenizer,
35
+ TrainingArguments,
36
+ )
37
+ from peft import prepare_model_for_kbit_training, get_peft_model
38
+ from transformers import GPTQConfig
39
+
40
+ from trl import SFTTrainer
41
+
42
+ # This example fine-tunes Llama 2 model on Guanaco dataset
43
+ # using GPTQ and peft.
44
+ # Use it by correctly passing --model_name argument when running the
45
+ # script. The default model is ybelkada/llama-7b-GPTQ-test
46
+
47
+ # Versions used:
48
+ # accelerate == 0.21.0
49
+ # auto-gptq == 0.4.2
50
+ # trl == 0.4.7
51
+ # peft from source
52
+ # transformers from source
53
+ # optimum from source
54
+
55
+ # For models that have `config.pretraining_tp > 1` install:
56
+ # pip install git+https://github.com/huggingface/transformers.git
57
+
58
+ @dataclass
59
+ class ScriptArguments:
60
+ """
61
+ These arguments vary depending on how many GPUs you have, what their capacity and features are, and what size model you want to train.
62
+ """
63
+
64
+ local_rank: Optional[int] = field(default=-1, metadata={"help": "Used for multi-gpu"})
65
+
66
+ per_device_train_batch_size: Optional[int] = field(default=4)
67
+ per_device_eval_batch_size: Optional[int] = field(default=1)
68
+ gradient_accumulation_steps: Optional[int] = field(default=4)
69
+ learning_rate: Optional[float] = field(default=2e-4)
70
+ max_grad_norm: Optional[float] = field(default=0.3)
71
+ weight_decay: Optional[int] = field(default=0.001)
72
+ lora_alpha: Optional[int] = field(default=16)
73
+ lora_dropout: Optional[float] = field(default=0.1)
74
+ lora_r: Optional[int] = field(default=64)
75
+ max_seq_length: Optional[int] = field(default=512)
76
+ model_name: Optional[str] = field(
77
+ default="dahara1/weblab-10b-instruction-sft-GPTQ/finetune_sample",
78
+ metadata={
79
+ "help": "The model that you want to train from the Hugging Face hub. E.g. gpt2, gpt2-xl, bert, etc."
80
+ }
81
+ )
82
+ dataset_name: Optional[str] = field(
83
+ default="timdettmers/openassistant-guanaco",
84
+ metadata={"help": "The preference dataset to use."},
85
+ )
86
+ num_train_epochs: Optional[int] = field(
87
+ default=1,
88
+ metadata={"help": "The number of training epochs for the reward model."},
89
+ )
90
+ fp16: Optional[bool] = field(
91
+ default=False,
92
+ metadata={"help": "Enables fp16 training."},
93
+ )
94
+ bf16: Optional[bool] = field(
95
+ default=False,
96
+ metadata={"help": "Enables bf16 training."},
97
+ )
98
+ packing: Optional[bool] = field(
99
+ default=False,
100
+ metadata={"help": "Use packing dataset creating."},
101
+ )
102
+ gradient_checkpointing: Optional[bool] = field(
103
+ default=True,
104
+ metadata={"help": "Enables gradient checkpointing."},
105
+ )
106
+ optim: Optional[str] = field(
107
+ default="adamw_hf",
108
+ metadata={"help": "The optimizer to use."},
109
+ )
110
+ lr_scheduler_type: str = field(
111
+ default="constant",
112
+ metadata={"help": "Learning rate schedule. Constant a bit better than cosine, and has advantage for analysis"},
113
+ )
114
+ max_steps: int = field(default=10000, metadata={"help": "How many optimizer update steps to take"})
115
+ warmup_ratio: float = field(default=0.03, metadata={"help": "Fraction of steps to do a warmup for"})
116
+ group_by_length: bool = field(
117
+ default=True,
118
+ metadata={
119
+ "help": "Group sequences into batches with same length. Saves memory and speeds up training considerably."
120
+ },
121
+ )
122
+ save_steps: int = field(default=10, metadata={"help": "Save checkpoint every X updates steps."})
123
+ logging_steps: int = field(default=10, metadata={"help": "Log every X updates steps."})
124
+ merge_and_push: Optional[bool] = field(
125
+ default=False,
126
+ metadata={"help": "Merge and push weights after training"},
127
+ )
128
+ output_dir: str = field(
129
+ default="./results",
130
+ metadata={"help": "The output directory where the model predictions and checkpoints will be written."},
131
+ )
132
+
133
+
134
+ parser = HfArgumentParser(ScriptArguments)
135
+ script_args = parser.parse_args_into_dataclasses()[0]
136
+
137
+
138
+ def create_and_prepare_model(args):
139
+ major, _ = torch.cuda.get_device_capability()
140
+ if major >= 8:
141
+ print("=" * 80)
142
+ print("Your GPU supports bfloat16, you can accelerate training with the argument --bf16")
143
+ print("=" * 80)
144
+
145
+ # Load the entire model on the GPU 0
146
+ #device_map = {"":0}
147
+ # switch to `device_map = "auto"` for multi-GPU
148
+ device_map = "auto"
149
+
150
+
151
+ # need to disable exllama kernel
152
+ # exllama kernel are not very stable for training
153
+ model = AutoModelForCausalLM.from_pretrained(
154
+ args.model_name,
155
+ device_map=device_map,
156
+ use_safetensors=True,
157
+ quantization_config= GPTQConfig(bits=4, disable_exllama=True)
158
+ )
159
+
160
+ # check: https://github.com/huggingface/transformers/pull/24906
161
+ model.config.pretraining_tp = 1
162
+
163
+ peft_config = LoraConfig(
164
+ lora_alpha=script_args.lora_alpha,
165
+ lora_dropout=script_args.lora_dropout,
166
+ r=script_args.lora_r,
167
+ bias="none",
168
+ task_type="CAUSAL_LM",
169
+ )
170
+
171
+ tokenizer = AutoTokenizer.from_pretrained(script_args.model_name, trust_remote_code=True)
172
+ tokenizer.pad_token = tokenizer.eos_token
173
+
174
+ return model, peft_config, tokenizer
175
+
176
+
177
+ training_arguments = TrainingArguments(
178
+ output_dir=script_args.output_dir,
179
+ per_device_train_batch_size=script_args.per_device_train_batch_size,
180
+ gradient_accumulation_steps=script_args.gradient_accumulation_steps,
181
+ optim=script_args.optim,
182
+ save_steps=script_args.save_steps,
183
+ logging_steps=script_args.logging_steps,
184
+ learning_rate=script_args.learning_rate,
185
+ fp16=script_args.fp16,
186
+ bf16=script_args.bf16,
187
+ max_grad_norm=script_args.max_grad_norm,
188
+ max_steps=script_args.max_steps,
189
+ warmup_ratio=script_args.warmup_ratio,
190
+ group_by_length=script_args.group_by_length,
191
+ lr_scheduler_type=script_args.lr_scheduler_type,
192
+ )
193
+
194
+ model, peft_config, tokenizer = create_and_prepare_model(script_args)
195
+ model = prepare_model_for_kbit_training(model)
196
+ model = get_peft_model(model, peft_config)
197
+ model.config.use_cache = False
198
+ dataset = load_dataset("csv", data_files="jawiki3.csv", split='train')
199
+
200
+
201
+ # Fix weird overflow issue with fp16 training
202
+ tokenizer.padding_side = "right"
203
+ trainer = SFTTrainer(
204
+ model=model,
205
+ train_dataset=dataset,
206
+ dataset_text_field="QuestionAnswer",
207
+ max_seq_length=script_args.max_seq_length,
208
+ tokenizer=tokenizer,
209
+ args=training_arguments,
210
+ packing=script_args.packing,
211
+ )
212
+
213
+ trainer.train()
214
+
215
+ if script_args.merge_and_push:
216
+ output_dir = os.path.join(script_args.output_dir, "final_checkpoints")
217
+ trainer.model.save_pretrained(output_dir)
218
+
219
+ # Free memory for merging weights
220
+ del model
221
+ torch.cuda.empty_cache()
finetune_sample/jawiki3.csv ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ QuestionAnswer
2
+ [質問]『風の谷のナウシカ』に出演するナウシカはどのような能力を持っていますか?[回答]ナウシカは「風使い」として大気の流れを読む能力を持ち、動力付き小型グライダーのメーヴェを乗りこなします。
3
+ [質問]『風の谷のナウシカ』に出演するナウシカはどのような性格ですか?[回答]ナウシカは腐海を含めた全ての生き物を愛し、それらと心を通わす力を持っています。
4
+ [質問]『風の谷のナウシカ』に出演するアスベルはどのような人物ですか?[回答]アスベルはペジテ市長の息子で、勇猛果敢な少年です。
5
+ [質問]『風の谷のナウシカ』に出演するアスベルの家族は?[回答]アスベルにはラステルという妹がいましたが、避難民と共に乗っていた貨物船が墜落し亡くしています。
6
+ [質問]『風の谷のナウシカ』に出演するミトはどのような役割を果たしていますか?[回答]ミトは風の谷の城で働く城オジのリーダー格で、ナウシカのことを常に案じています。
7
+ [質問]『風の谷のナウシカ』に出演するユパは何歳ですか?[回答]ユパは45歳です。
8
+ [質問]『風の谷のナウシカ』に出演するユパが飼っている動物は何ですか?[回答]ユパは2頭のトリウマ、クイとカイと共に腐海の謎を解くための旅を続けています。
9
+ [質問]『風の谷のナウシカ』に出演するクシャナは何歳ですか?[回答]クシャナは25歳です。
10
+ [質問]『風の谷のナウシカ』に出演するクシャナはどのような地位にありますか?[回答]クシャナはトルメキア王国の第4皇女で、トルメキア第3軍最高指揮官として兵から絶大な信頼と忠誠を得ています。
11
+ [質問]『風の谷のナウシカ』に出演するクシャナの家族関係はどうですか?[回答]クシャナは王家で唯一先王の血を引いており、そのために父や兄から疎まれています。
12
+ [質問]『風の谷のナウシカ』ではナウシカとクシャナはどのような関係ですか?[回答]ナウシカとクシャナは行動を共にする中で、憎しみに依らない生き方を知ります。
13
+ [質問]『風の谷のナウシカ』に出演するミトは何歳ですか?[回答]ミトは40歳です。
14
+ [質問]『風の谷のナウシカ』ではユパはクシャナをどのように助けましたか?[回答]ユパは復讐に駆られた土鬼兵の刃からクシャナを身を挺して庇い、両者の和解を成し遂げました。
15
+ [質問]『風の谷のナウシカ』でアスベルがナウシカに助けられた場所はどこですか?[回答]アスベルは墜ちた先の腐海でナウシカに助けられました。
16
+ [質問]『風の谷のナウシカ』に出演するナウシカは何歳ですか?[回答]ナウシカは16歳です。
17
+ [質問]『風の谷のナウシカ』は誰によって作成されましたか?[回答]『風の谷のナウシカ』は宮崎駿によって作成されました。
18
+ [質問]『風の谷のナウシカ』はどのジャンルに分類されますか?[回答]この作品はSF・ファンタジー作品です。
19
+ [質問]漫画『風の谷のナウシカ』が初めて発表されたのはどの雑誌ですか?[回答]『風の谷のナウシカ』は初めて『アニメージュ』誌上で発表されました。
20
+ [質問]『風の谷のナウシカ』の作品の舞台は何ですか?[回答]この作品の舞台は戦争による科学文明の崩壊後、異形の生態系に覆われた終末世界です。
21
+ [質問]『風の谷のナウシカ』の主人公の名前は何ですか?[回答]主人公の名前はナウシカです。
22
+ [質問]劇場版アニメ『風の谷のナウシカ』はいつ公開されましたか?[回答]劇場版アニメ『風の谷のナウシカ』は1984年に公開されました。
23
+ [質問]『風の谷のナウシカ』は何年に歌舞伎化されましたか?[回答]『風の谷のナウシカ』は2019年に歌舞伎化されました。
24
+ [質問]漫画『風の谷のナウシカ』は何度の中断期間を挟みましたか?[回答]この漫画は4度の中断期間を挟みました。
25
+ [質問]漫画『風の谷のナウシカ』はどの賞を受賞していますか?[回答]1994年に第23回日本漫画家協会賞大賞、1995年に第26回星雲賞コミック部門を受賞しています。
26
+ [質問]コミックス『風の谷のナウシカ』全巻の累計発行部数は何部ですか?[回答]コミックス全7巻の累計発行部数は1780万部を突破しています。
27
+ [質問]コミックス『風の谷のナウシカ』は何か国語で翻訳・出版されていますか?[回答]『風の谷のナウシカ』は海外でも8か国語で翻訳・出版されています。
28
+ [質問]『風の谷のナウシカ』に���演するクロトワは何歳ですか?[回答]27歳
29
+ [質問]『風の谷のナウシカ』に出演するミラルパは何年以上生きていますか?[回答]100年以上
30
+ [質問]漫画『風の谷のナウシカ』に出演するミラルパは最終的にどのような君主になりましたか?[回答]暴君
31
+ [質問]漫画『風の谷のナウシカ』に出演するナムリスは弟をどうしましたか?[回答]殺害
32
+ [質問]漫画『風の谷のナウシカ』に出演するナムリスの体は何に改造されていますか?[回答]ヒドラと同じ体
33
+ [質問]漫画『風の谷のナウシカ』に出演するクロトワは元々どこから送り込まれてきましたか?[回答]ヴ王
34
+ [質問]漫画『風の谷のナウシカ』に出演するミラルパは元々どのような君主でしたか?[回答]慈悲深い名君
35
+ [質問]『風の谷のナウシカ』に出演するクロトワはどの大学を卒業していますか?[回答]軍大学院
36
+ [質問]『風の谷のナウシカ』で巨神兵はどのような存在とされているか? [回答]巨神兵は火の7日間で世界を滅ぼしたとされる巨人であり、物語の時点ではほとんどが腐海で木々に埋もれ、化石と呼ばれています。
37
+ [質問]『風の谷のナウシカ』で巨神兵の骨格はどこで発見されましたか?[回答]ペジテ市の地下で発見されました。
38
+ [質問]『風の谷のナウシカ』で王蟲の体液はどのような特性を持ちますか? [回答]王蟲の体液は青く、王蟲の血に染まった服は蟲の怒りを鎮める力があります。
39
+ [質問]『風の谷のナウシカ』の王蟲が好んで食べるものは何ですか? [回答]王蟲は腐海の“大木”であるムシゴヤシを好んで食べます。
40
+ [質問]『風の谷のナウシカ』の王蟲の眼は通常何色で、怒るとどう変化しますか? [回答]王蟲の眼は通常青色で、怒ると赤くなります。
41
+ [質問]『風の谷のナウシカ』の大王ヤンマは何の働きを持ちますか? [回答]大王ヤンマは「森の見張り役」と呼ばれ、腐海に何らかの異常が起こった時、他の蟲を呼び集める働きを持っています。
42
+ [質問]『風の谷のナウシカ』に出てくるウシアブは何色の体を持ちますか? [回答]ウシアブは赤茶色ないし紫色の丸い体を持っています。
43
+ [質問]『風の谷のナウシカ』で、王蟲の表皮は何に利用されますか? [回答]王蟲の表皮は装甲板、刃物や甲冑に加工されます。
44
+ [質問]『風の谷のナウシカ』の王蟲は何の精神文化を有していますか? [回答]王蟲は比較的高度な知性と超個体的意識をもち、思いやりや慈しみなどの精神文化を有しています。
45
+ [質問]『風の谷のナウシカ』で、ミノネズミは何の幼生であり、その特徴は? [回答]ミノネズミはヘビケラの幼生で、鼠のように地面を走り、頭部に白くて小さいが鎌状の器官を具えています。
46
+ [質問]『風の谷のナウシカ』で、王蟲が人間に対してどのような感情を持つことがありますか? [回答]王蟲は時には自身が憎しみに駆られて殺してしまった人間のことすら悲しむことがあります。
47
+ [質問]『風の谷のナウシカ』における風の谷の戦士はどのような装備を身につけますか? [回答]風の谷の戦士は、戦場に出る際には王蟲の甲皮から作られた胴鎧と手甲を着けます。
48
+ [質問]『風の谷のナウシカ』で王蟲が分泌する「漿液(しょうえき)」の特性は? [回答]王蟲が分泌する「漿液(しょうえき)」は透明で粘性のある液体で、人間がこれを肺に満たすことで液体呼吸が可能となります。
49
+ [質問]『風の谷のナウシカ』で300年前の大海嘯の原因は何でしたか? [回答]300年前の大海嘯の原因は、古代エフタル王国の王位継承を巡る内乱によって増大した武器の需要に応えるために王蟲が乱獲された事だったと伝えられています。
50
+ [質問]『風の谷のナウシカ』で、ナウシカが主に乗る飛行メカは何ですか? [回答]ナウシカが主に乗る飛行メカはメーヴェと呼ばれます。辺境の風使いが使用する小型ジェットグライダー。強力な小型エンジンを1基備えており、1人乗りだがもう1人乗せる事も可能ですん。機体は白。作中では「凧」とも呼ばれています。
finetune_sample/lora_test.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import AutoTokenizer
2
+ from auto_gptq import AutoGPTQForCausalLM
3
+ from peft import PeftModel, PeftConfig
4
+
5
+ from transformers import AutoModelForCausalLM
6
+ from transformers import GPTQConfig
7
+
8
+ quantized_model_dir = "dahara1/weblab-10b-instruction-sft-GPTQ/finetune_sample"
9
+ model_basename = "model"
10
+
11
+ tokenizer = AutoTokenizer.from_pretrained(quantized_model_dir)
12
+
13
+ device_map = "auto"
14
+ model = AutoModelForCausalLM.from_pretrained(
15
+ quantized_model_dir,
16
+ device_map=device_map,
17
+ use_safetensors=True,
18
+ quantization_config= GPTQConfig(bits=4, disable_exllama=True)
19
+ )
20
+
21
+ adapters_name = f'checkpoint-700}'
22
+ p_model = PeftModel.from_pretrained(model, adapters_name)
23
+
24
+ prompt_text = [
25
+ "風の谷のナウシカは何歳ですか?",
26
+ "風の谷のナウシカに出演するミトは何歳ですか?",
27
+ "風の谷のナウシカに出演するユパは何歳ですか?",
28
+ "『風の谷のナウシカ』に出演するクシャナはどのような地位にありますか?",
29
+ "『風の谷のナウシカ』の王蟲の眼は通常何色で、怒るとどう変化しますか?",
30
+ "劇場版アニメ『風の谷のナウシカ』はいつ公開されましたか?",
31
+ "漫画『風の谷のナウシカ』全巻の累計発行部数は何部ですか?",
32
+ "『風の谷のナウシカ』は何年に歌舞伎化されましたか?",
33
+ #『風の谷のナウシカ』で、ナウシカが主に乗る飛行メカは何ですか?",
34
+ "『風の谷のナウシカ』に出演するクロトワはどの大学を卒業していますか?"]
35
+
36
+ for j in range(len(prompt_text)):
37
+ prompt_template = f'以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。\n\n### 指示:\n{prompt_text[j]}\n\n### 応答:'
38
+
39
+ tokens = tokenizer(prompt_template, return_tensors="pt").to("cuda:0").input_ids
40
+ output = p_model.generate(input_ids=tokens, max_new_tokens=100, do_sample=True, temperature=0.01)
41
+ print(tokenizer.decode(output[0]))
42
+
43
+
44
+
finetune_sample/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a3fd04aac72abac2bfaaac8358f1b09c1bf426c09a77c15f7d0a667ab2faa92
3
+ size 6297627280
finetune_sample/quantize_config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bits": 4,
3
+ "group_size": 128,
4
+ "damp_percent": 0.01,
5
+ "desc_act": true,
6
+ "sym": true,
7
+ "true_sequential": true,
8
+ "model_name_or_path": null,
9
+ "model_file_base_name": null
10
+ }
finetune_sample/special_tokens_map.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "<|endoftext|>",
3
+ "eos_token": "<|endoftext|>",
4
+ "unk_token": "<|endoftext|>"
5
+ }
finetune_sample/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
finetune_sample/tokenizer_config.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "clean_up_tokenization_spaces": true,
3
+ "model_max_length": 1000000000000000019884624838656,
4
+ "tokenizer_class": "PreTrainedTokenizerFast"
5
+ }