hun3359 commited on
Commit
7aea892
·
1 Parent(s): 09c76d2

fine tuning on klue bert base

Browse files
.gitignore ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ data/
2
+ preprocess/
3
+ ckpt/
4
+ wandb/
README.md ADDED
@@ -0,0 +1,208 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - ko
5
+ library_name: transformers
6
+ pipeline_tag: text-classification
7
+ widget:
8
+ - text: 오늘 밥이 너무 맛있었어. 행복해
9
+ - text: 오늘 따라 저녁이 좀 맛있네.
10
+ - text: 직장에서 부당한 일을 겪어서 너무 화가 나
11
+ - text: 퇴직금으로 적립한 펀드 수익률이 많이 올랐어.
12
+ - text: 퇴직금으로 적립한 펀드 수익률이 많이 떨어졌어.
13
+ - text: 퇴직금으로 적립한 펀드 수익률이 많이 내려갔어.
14
+ - text: 우연히 남자친구가 헤어진 전 여자친구를 잊지 못했다는 걸 알았어.
15
+ ---
16
+
17
+ # 한국어 감정 분류모델
18
+ ## 60가지의 세분화된 감정분류 모델
19
+ ### Dataset: Aihub-감성대화말뭉치
20
+ ### Dataset URL : https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=86
21
+
22
+ ### model: hun3359/klue-bert-base-sentiment
23
+
24
+ ![confusion_matrix](result/confusion_matirx.png)
25
+
26
+ ** fine-tuning log **
27
+
28
+ distilbert-base-multilingual-cased을 5 epoch fine-tuning --> acc: 0.25 (2023.08.08)
29
+
30
+ bongsoo/mdistilbertV3.1을 5 epoch fine-tuning --> acc: 0.26 (2023.08.09)
31
+
32
+ klue/bert-base를 5 epoch fine-tuning --> see below results (2023.08.09)
33
+
34
+ - klue-bert-base-sentiment fine tuning result
35
+
36
+ ```json
37
+ {
38
+ "test_loss": 2.8668248653411865,
39
+ "test_accuracy": 0.29371889480006863,
40
+ "test_f1": 0.29102037288558685,
41
+ "test_runtime": 50.8082,
42
+ "test_samples_per_second": 458.745,
43
+ "test_steps_per_second": 14.348
44
+ }
45
+ ```
46
+
47
+ - klue-bert-base-sentiment config
48
+
49
+ ```json
50
+ {
51
+ "_name_or_path": "klue/bert-base",
52
+ "architectures": [
53
+ "BertForSequenceClassification"
54
+ ],
55
+ "attention_probs_dropout_prob": 0.1,
56
+ "classifier_dropout": null,
57
+ "hidden_act": "gelu",
58
+ "hidden_dropout_prob": 0.1,
59
+ "hidden_size": 768,
60
+ "initializer_range": 0.02,
61
+ "intermediate_size": 3072,
62
+ "id2label":{
63
+ "0": "분노",
64
+ "1": "툴툴대는",
65
+ "2": "좌절한",
66
+ "3": "짜증내는",
67
+ "4": "방어적인",
68
+ "5": "악의적인",
69
+ "6": "안달하는",
70
+ "7": "구역질 나는",
71
+ "8": "노여워하는",
72
+ "9": "성가신",
73
+ "10": "슬픔",
74
+ "11": "실망한",
75
+ "12": "비통한",
76
+ "13": "후회되는",
77
+ "14": "우울한",
78
+ "15": "마비된",
79
+ "16": "염세적인",
80
+ "17": "눈물이 나는",
81
+ "18": "낙담한",
82
+ "19": "환멸을 느끼는",
83
+ "20": "불안",
84
+ "21": "두려운",
85
+ "22": "스트레스 받는",
86
+ "23": "취약한",
87
+ "24": "혼란스러운",
88
+ "25": "당혹스러운",
89
+ "26": "회의적인",
90
+ "27": "걱정스러운",
91
+ "28": "조심스러운",
92
+ "29": "초조한",
93
+ "30": "상처",
94
+ "31": "질투하는",
95
+ "32": "배신당한",
96
+ "33": "고립된",
97
+ "34": "충격 받은",
98
+ "35": "가난한 불우한",
99
+ "36": "희생된",
100
+ "37": "억울한",
101
+ "38": "괴로워하는",
102
+ "39": "버려진",
103
+ "40": "당황",
104
+ "41": "고립된(당황한)",
105
+ "42": "남의 시선을 의식하는",
106
+ "43": "외로운",
107
+ "44": "열등감",
108
+ "45": "죄책감의",
109
+ "46": "부끄러운",
110
+ "47": "혐오스러운",
111
+ "48": "한심한",
112
+ "49": "혼란스러운(당황한)",
113
+ "50": "기쁨",
114
+ "51": "감사하는",
115
+ "52": "신뢰하는",
116
+ "53": "편안한",
117
+ "54": "만족스러운",
118
+ "55": "흥분",
119
+ "56": "느긋",
120
+ "57": "안도",
121
+ "58": "신이 난",
122
+ "59": "자신하는"
123
+ },
124
+ "label2id": {
125
+ "분노": 0,
126
+ "툴툴대는": 1,
127
+ "좌절한": 2,
128
+ "짜증내는": 3,
129
+ "방어적인": 4,
130
+ "악의적인": 5,
131
+ "안달하는": 6,
132
+ "구역질 나는": 7,
133
+ "노여워하는": 8,
134
+ "성가신": 9,
135
+ "슬픔": 10,
136
+ "실망한": 11,
137
+ "비통한": 12,
138
+ "후회되는": 13,
139
+ "우울한": 14,
140
+ "마비된": 15,
141
+ "염세적인": 16,
142
+ "눈물이 나는": 17,
143
+ "낙담한": 18,
144
+ "환멸을 느끼는": 19,
145
+ "불안": 20,
146
+ "두려운": 21,
147
+ "스트레스 받는": 22,
148
+ "취약한": 23,
149
+ "혼란스러운": 24,
150
+ "당혹스러운": 25,
151
+ "회의적인": 26,
152
+ "걱정스러운": 27,
153
+ "조심스러운": 28,
154
+ "초조한": 29,
155
+ "상처": 30,
156
+ "질투하는": 31,
157
+ "배신당한": 32,
158
+ "고립된": 33,
159
+ "충격 받은": 34,
160
+ "가난한 불우한": 35,
161
+ "희생된": 36,
162
+ "억울한": 37,
163
+ "괴로워하는": 38,
164
+ "버려진": 39,
165
+ "당황": 40,
166
+ "고립된(당황한)": 41,
167
+ "남의 시선을 의식하는": 42,
168
+ "외로운": 43,
169
+ "열등감": 44,
170
+ "죄책감의": 45,
171
+ "부끄러운": 46,
172
+ "혐오스러운": 47,
173
+ "한심한": 48,
174
+ "혼란스러운(당황한)": 49,
175
+ "기쁨": 50,
176
+ "감사하는": 51,
177
+ "신뢰하는": 52,
178
+ "편안한": 53,
179
+ "만족스러운": 54,
180
+ "흥분": 55,
181
+ "느긋": 56,
182
+ "안도": 57,
183
+ "신이 난": 58,
184
+ "자신하는": 59
185
+ },
186
+ "layer_norm_eps": 1e-12,
187
+ "max_position_embeddings": 512,
188
+ "model_type": "bert",
189
+ "num_attention_heads": 12,
190
+ "num_hidden_layers": 12,
191
+ "pad_token_id": 0,
192
+ "position_embedding_type": "absolute",
193
+ "problem_type": "single_label_classification",
194
+ "torch_dtype": "float32",
195
+ "transformers_version": "4.30.2",
196
+ "type_vocab_size": 2,
197
+ "use_cache": true,
198
+ "vocab_size": 32000
199
+ }
200
+ ```
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
config.json ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "klue/bert-base",
3
+ "architectures": [
4
+ "BertForSequenceClassification"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "classifier_dropout": null,
8
+ "hidden_act": "gelu",
9
+ "hidden_dropout_prob": 0.1,
10
+ "hidden_size": 768,
11
+ "initializer_range": 0.02,
12
+ "intermediate_size": 3072,
13
+ "id2label":{
14
+ "0": "분노",
15
+ "1": "툴툴대는",
16
+ "2": "좌절한",
17
+ "3": "짜증내는",
18
+ "4": "방어적인",
19
+ "5": "악의적인",
20
+ "6": "안달하는",
21
+ "7": "구역질 나는",
22
+ "8": "노여워하는",
23
+ "9": "성가신",
24
+ "10": "슬픔",
25
+ "11": "실망한",
26
+ "12": "비통한",
27
+ "13": "후회되는",
28
+ "14": "우울한",
29
+ "15": "마비된",
30
+ "16": "염세적인",
31
+ "17": "눈물이 나는",
32
+ "18": "낙담한",
33
+ "19": "환멸을 느끼는",
34
+ "20": "불안",
35
+ "21": "두려운",
36
+ "22": "스트레스 받는",
37
+ "23": "취약한",
38
+ "24": "혼란스러운",
39
+ "25": "당혹스러운",
40
+ "26": "회의적인",
41
+ "27": "걱정스러운",
42
+ "28": "조심스러운",
43
+ "29": "초조한",
44
+ "30": "상처",
45
+ "31": "질투하는",
46
+ "32": "배신당한",
47
+ "33": "고립된",
48
+ "34": "충격 받은",
49
+ "35": "가난한 불우한",
50
+ "36": "희생된",
51
+ "37": "억울한",
52
+ "38": "괴로워하는",
53
+ "39": "버려진",
54
+ "40": "당황",
55
+ "41": "고립된(당황한)",
56
+ "42": "남의 시선을 의식하는",
57
+ "43": "외로운",
58
+ "44": "열등감",
59
+ "45": "죄책감의",
60
+ "46": "부끄러운",
61
+ "47": "혐오스러운",
62
+ "48": "한심한",
63
+ "49": "혼란스러운(당황한)",
64
+ "50": "기쁨",
65
+ "51": "감사하는",
66
+ "52": "신뢰하는",
67
+ "53": "편안한",
68
+ "54": "만족스러운",
69
+ "55": "흥분",
70
+ "56": "느긋",
71
+ "57": "안도",
72
+ "58": "신이 난",
73
+ "59": "자신하는"
74
+ },
75
+ "label2id": {
76
+ "분노": 0,
77
+ "툴툴대는": 1,
78
+ "좌절한": 2,
79
+ "짜증내는": 3,
80
+ "방어적인": 4,
81
+ "악의적인": 5,
82
+ "안달하는": 6,
83
+ "구역질 나는": 7,
84
+ "노여워하는": 8,
85
+ "성가신": 9,
86
+ "슬픔": 10,
87
+ "실망한": 11,
88
+ "비통한": 12,
89
+ "후회되는": 13,
90
+ "우울한": 14,
91
+ "마비된": 15,
92
+ "염세적인": 16,
93
+ "눈물이 나는": 17,
94
+ "낙담한": 18,
95
+ "환멸을 느끼는": 19,
96
+ "불안": 20,
97
+ "두려운": 21,
98
+ "스트레스 받는": 22,
99
+ "취약한": 23,
100
+ "혼란스러운": 24,
101
+ "당혹스러운": 25,
102
+ "회의적인": 26,
103
+ "걱정스러운": 27,
104
+ "조심스러운": 28,
105
+ "초조한": 29,
106
+ "상처": 30,
107
+ "질투하는": 31,
108
+ "배신당한": 32,
109
+ "고립된": 33,
110
+ "충격 받은": 34,
111
+ "가난한 불우한": 35,
112
+ "희생된": 36,
113
+ "억울한": 37,
114
+ "괴로워하는": 38,
115
+ "버려진": 39,
116
+ "당황": 40,
117
+ "고립된(당황한)": 41,
118
+ "남의 시선을 의식하는": 42,
119
+ "외로운": 43,
120
+ "열등감": 44,
121
+ "죄책감의": 45,
122
+ "부끄러운": 46,
123
+ "혐오스러운": 47,
124
+ "한심한": 48,
125
+ "혼란스러운(당황한)": 49,
126
+ "기쁨": 50,
127
+ "감사하는": 51,
128
+ "신뢰하는": 52,
129
+ "편안한": 53,
130
+ "만족스러운": 54,
131
+ "흥분": 55,
132
+ "느긋": 56,
133
+ "안도": 57,
134
+ "신이 난": 58,
135
+ "자신하는": 59
136
+ },
137
+ "layer_norm_eps": 1e-12,
138
+ "max_position_embeddings": 512,
139
+ "model_type": "bert",
140
+ "num_attention_heads": 12,
141
+ "num_hidden_layers": 12,
142
+ "pad_token_id": 0,
143
+ "position_embedding_type": "absolute",
144
+ "problem_type": "single_label_classification",
145
+ "torch_dtype": "float32",
146
+ "transformers_version": "4.30.2",
147
+ "type_vocab_size": 2,
148
+ "use_cache": true,
149
+ "vocab_size": 32000
150
+ }
fine_tuning.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b6421fe0466821c63e138ab7cb59199ffcbc06da565ed801e2687ffe43bfff3
3
+ size 442726709
result/confusion_matirx.png ADDED
result/eval_result.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"test_loss": 2.8668248653411865, "test_accuracy": 0.29371889480006863, "test_f1": 0.29102037288558685, "test_runtime": 50.8082, "test_samples_per_second": 458.745, "test_steps_per_second": 14.348}
special_tokens_map.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": "[CLS]",
3
+ "mask_token": "[MASK]",
4
+ "pad_token": "[PAD]",
5
+ "sep_token": "[SEP]",
6
+ "unk_token": "[UNK]"
7
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "clean_up_tokenization_spaces": true,
3
+ "cls_token": "[CLS]",
4
+ "do_basic_tokenize": true,
5
+ "do_lower_case": false,
6
+ "mask_token": "[MASK]",
7
+ "model_max_length": 512,
8
+ "never_split": null,
9
+ "pad_token": "[PAD]",
10
+ "sep_token": "[SEP]",
11
+ "strip_accents": null,
12
+ "tokenize_chinese_chars": true,
13
+ "tokenizer_class": "BertTokenizer",
14
+ "unk_token": "[UNK]"
15
+ }
trainer_state.json ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_metric": 2.8668248653411865,
3
+ "best_model_checkpoint": "/home/ubuntu/klue-bert-base-sentiment/ckpt/checkpoint-8000",
4
+ "epoch": 4.80439258750858,
5
+ "global_step": 14000,
6
+ "is_hyper_param_search": false,
7
+ "is_local_process_zero": true,
8
+ "is_world_process_zero": true,
9
+ "log_history": [
10
+ {
11
+ "epoch": 0.69,
12
+ "learning_rate": 1.9171814230153285e-05,
13
+ "loss": 3.5906,
14
+ "step": 2000
15
+ },
16
+ {
17
+ "epoch": 0.69,
18
+ "eval_accuracy": 0.24888450317487557,
19
+ "eval_f1": 0.2428758491014593,
20
+ "eval_loss": 3.097123622894287,
21
+ "eval_runtime": 51.8822,
22
+ "eval_samples_per_second": 449.249,
23
+ "eval_steps_per_second": 14.051,
24
+ "step": 2000
25
+ },
26
+ {
27
+ "epoch": 1.37,
28
+ "learning_rate": 1.6121406238084344e-05,
29
+ "loss": 2.9898,
30
+ "step": 4000
31
+ },
32
+ {
33
+ "epoch": 1.37,
34
+ "eval_accuracy": 0.27591384932212115,
35
+ "eval_f1": 0.27566530866405486,
36
+ "eval_loss": 2.9477760791778564,
37
+ "eval_runtime": 50.8962,
38
+ "eval_samples_per_second": 457.952,
39
+ "eval_steps_per_second": 14.323,
40
+ "step": 4000
41
+ },
42
+ {
43
+ "epoch": 2.06,
44
+ "learning_rate": 1.3070998246015405e-05,
45
+ "loss": 2.8459,
46
+ "step": 6000
47
+ },
48
+ {
49
+ "epoch": 2.06,
50
+ "eval_accuracy": 0.28659687660888966,
51
+ "eval_f1": 0.2826091515090862,
52
+ "eval_loss": 2.8875882625579834,
53
+ "eval_runtime": 50.8821,
54
+ "eval_samples_per_second": 458.078,
55
+ "eval_steps_per_second": 14.327,
56
+ "step": 6000
57
+ },
58
+ {
59
+ "epoch": 2.75,
60
+ "learning_rate": 1.0020590253946467e-05,
61
+ "loss": 2.6296,
62
+ "step": 8000
63
+ },
64
+ {
65
+ "epoch": 2.75,
66
+ "eval_accuracy": 0.29371889480006863,
67
+ "eval_f1": 0.29102037288558685,
68
+ "eval_loss": 2.8668248653411865,
69
+ "eval_runtime": 47.4836,
70
+ "eval_samples_per_second": 490.864,
71
+ "eval_steps_per_second": 15.353,
72
+ "step": 8000
73
+ },
74
+ {
75
+ "epoch": 3.43,
76
+ "learning_rate": 6.9701822618775275e-06,
77
+ "loss": 2.4791,
78
+ "step": 10000
79
+ },
80
+ {
81
+ "epoch": 3.43,
82
+ "eval_accuracy": 0.29573536983010124,
83
+ "eval_f1": 0.29324160202994004,
84
+ "eval_loss": 2.8735780715942383,
85
+ "eval_runtime": 46.5634,
86
+ "eval_samples_per_second": 500.565,
87
+ "eval_steps_per_second": 15.656,
88
+ "step": 10000
89
+ },
90
+ {
91
+ "epoch": 4.12,
92
+ "learning_rate": 3.919774269808587e-06,
93
+ "loss": 2.3754,
94
+ "step": 12000
95
+ },
96
+ {
97
+ "epoch": 4.12,
98
+ "eval_accuracy": 0.29963960871803674,
99
+ "eval_f1": 0.2981925753127358,
100
+ "eval_loss": 2.8763158321380615,
101
+ "eval_runtime": 50.6623,
102
+ "eval_samples_per_second": 460.066,
103
+ "eval_steps_per_second": 14.389,
104
+ "step": 12000
105
+ },
106
+ {
107
+ "epoch": 4.8,
108
+ "learning_rate": 8.693662777396478e-07,
109
+ "loss": 2.2536,
110
+ "step": 14000
111
+ },
112
+ {
113
+ "epoch": 4.8,
114
+ "eval_accuracy": 0.30096962416337736,
115
+ "eval_f1": 0.29941923278028376,
116
+ "eval_loss": 2.8771862983703613,
117
+ "eval_runtime": 52.0168,
118
+ "eval_samples_per_second": 448.086,
119
+ "eval_steps_per_second": 14.015,
120
+ "step": 14000
121
+ }
122
+ ],
123
+ "max_steps": 14570,
124
+ "num_train_epochs": 5,
125
+ "total_flos": 1.3559570938389888e+16,
126
+ "trial_name": null,
127
+ "trial_params": null
128
+ }
vocab.txt ADDED
The diff for this file is too large to render. See raw diff