heegyu commited on
Commit
ebf51e6
1 Parent(s): a6d8eab

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +183 -1
README.md CHANGED
@@ -60,4 +60,186 @@ inference(
60
 
61
  25일 시에 따르면 연수구 옥련동 104 일대 29만1천725㎡(8만8천평)에 추진 중인 2만8천62가구 규모의 송도역세권구역 도시개발사업과 연계, KTX 송도역 복합환승센터와 상업시설·업무시설 등의 조성을 추진 중이다.  [SEP] 글을 읽고 시장에 미칠 영향을 판단해보세요
62
  {'긍정': -61.86758804321289, '부정': 23.72732925415039, '중립': -70.4837417602539}
63
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
  25일 시에 따르면 연수구 옥련동 104 일대 29만1천725㎡(8만8천평)에 추진 중인 2만8천62가구 규모의 송도역세권구역 도시개발사업과 연계, KTX 송도역 복합환승센터와 상업시설·업무시설 등의 조성을 추진 중이다.  [SEP] 글을 읽고 시장에 미칠 영향을 판단해보세요
62
  {'긍정': -61.86758804321289, '부정': 23.72732925415039, '중립': -70.4837417602539}
63
+ ```
64
+
65
+ ## 평가(test set)
66
+ | task | accuracy |
67
+ | --- | --- |
68
+ | [nsmc](https://huggingface.co/datasets/nsmc) | 85.92 |
69
+ | [jason9693/APEACH](https://huggingface.co/datasets/jason9693/APEACH) | 32.12 |
70
+ | [klue-ynat](https://huggingface.co/datasets/klue) | 77.59 |
71
+ | [kobest-boolq](https://huggingface.co/datasets/skt/kobest_v1) | 76.99 |
72
+ | [kobest-copa](https://huggingface.co/datasets/skt/kobest_v1) | 61.2 |
73
+ | [kobest-hellaswag](https://huggingface.co/datasets/skt/kobest_v1) | 77.6 |
74
+ | [kobest-sentineg](https://huggingface.co/datasets/skt/kobest_v1) | 55.92 |
75
+ | [kobest-wic](https://huggingface.co/datasets/skt/kobest_v1) | 58.49 |
76
+
77
+
78
+ ### 평가 방식
79
+ - 모델에 `[CLS] {input} [SEP] {instruction} [SEP] label [SEP]` 형식으로 넣고 나온 positive와 negative끼리 비교함.
80
+ - positive는 정답 라벨을 사용하고, negative는 정답 라벨이 아닌 모든 라벨을 사용
81
+ - 정답 라벨의 점수가 모든 negative보다 높을 경우 맞춘 것으로 간주함. 이런 식으로 accuracy 측정.
82
+
83
+ 테스트에 사용한 매핑 코드
84
+ ```
85
+ klue_ynat_labelToTextDict = {
86
+ 0: "IT과학",
87
+ 1: "경제",
88
+ 2: "사회",
89
+ 3: "생활문화",
90
+ 4: "세계",
91
+ 5: "스포츠",
92
+ 6: "정치",
93
+ }
94
+ klue_ynat_labels = set(klue_ynat_labelToTextDict.values())
95
+
96
+ def klue_ynat_mapper(item):
97
+ positives = [klue_ynat_labelToTextDict[item["label"]]]
98
+ return {
99
+ "instruction": "문장을 읽고 주제를 분류하세요",
100
+ "input": item["title"],
101
+ "positives": positives,
102
+ "negatives": klue_ynat_labels - set(positives)
103
+ }
104
+
105
+ kobest_wic_labels = ["아니오", "예"]
106
+
107
+ def kobest_wic_mapper(item):
108
+ return {
109
+ "instruction": "주어진 두 문장에서 단어 {word}은(는) 동일한 의미로 사용되었나요?".format(word=item["word"]),
110
+ "input": "문장1: {context_1}\n문장2: {context_2}".format(**item),
111
+ "positives": [kobest_wic_labels[item['label']]],
112
+ "negatives": [kobest_wic_labels[1 - item['label']]]
113
+ }
114
+
115
+ copa_question = {
116
+ "결과": "이후에 이어질 결과는?",
117
+ "원인": "이러한 일이 일어난 원인은?"
118
+ }
119
+
120
+ def kobest_copa_mapper(item):
121
+ answers = [item["alternative_1"], item["alternative_2"]]
122
+ return {
123
+ "instruction": copa_question[item["question"]],
124
+ "input": item["premise"],
125
+ "positives": [answers[item['label']]],
126
+ "negatives": [answers[1 - item['label']]]
127
+ }
128
+
129
+
130
+ def kobest_hellaswag_mapper(item):
131
+ answers = [item[f"ending_{i}"] for i in range(1, 5)]
132
+ label = answers[item['label']]
133
+ answers.remove(label)
134
+
135
+ return {
136
+ "instruction": "이후에 이어질 내용으로 가장 적절한 것은?",
137
+ "input": item["context"],
138
+ "positives": [label],
139
+ "negatives": answers
140
+ }
141
+
142
+ kobest_boolq_labels = ["아니오", "예"]
143
+ def kobest_boolq_mapper(item):
144
+ return {
145
+ "instruction": item["question"],
146
+ "input": item["paragraph"],
147
+ "positives": [kobest_boolq_labels[item['label']]],
148
+ "negatives": [kobest_boolq_labels[1 - item['label']]]
149
+ }
150
+
151
+ kobest_sentineg_labels = ["부정", "긍정"]
152
+ def kobest_sentineg_mapper(item):
153
+ return {
154
+ "instruction": "주어진 문장의 감정을 분류하세요",
155
+ "input": item["sentence"],
156
+ "positives": [kobest_boolq_labels[item['label']]],
157
+ "negatives": [kobest_boolq_labels[1 - item['label']]]
158
+ }
159
+
160
+ nsmc_labels = ["부정", "긍정"]
161
+ def nsmc_mapper(item):
162
+ return {
163
+ "instruction": "주어진 문장의 감정을 분류하세요",
164
+ "input": item["document"],
165
+ "positives": [nsmc_labels[item['label']]],
166
+ "negatives": [nsmc_labels[1 - item['label']]]
167
+ }
168
+
169
+ apeach_labels = ["혐오 표현이 아닙니다", "혐오표현"]
170
+ def apeach_mapper(item):
171
+ return {
172
+ "instruction": "혐오성을 분류해보세요.",
173
+ "input": item["text"],
174
+ "positives": [nsmc_labels[item['class']]],
175
+ "negatives": [nsmc_labels[1 - item['class']]]
176
+ }
177
+
178
+
179
+
180
+ EVAL_LIST = {
181
+ "klue-ynat": dict(
182
+ load_args=dict(
183
+ path="klue",
184
+ name="ynat",
185
+ split="validation"
186
+ ),
187
+ mapper=klue_ynat_mapper
188
+ ),
189
+ "nsmc": dict(
190
+ load_args=dict(
191
+ path="nsmc",
192
+ split="test"
193
+ ),
194
+ mapper=nsmc_mapper
195
+ ),
196
+ "apeach": dict(
197
+ load_args=dict(
198
+ path="jason9693/APEACH",
199
+ split="test"
200
+ ),
201
+ mapper=apeach_mapper
202
+ ),
203
+ "kobest-wic": dict(
204
+ load_args=dict(
205
+ path="skt/kobest_v1",
206
+ name="wic",
207
+ split="test"
208
+ ),
209
+ mapper=kobest_wic_mapper
210
+ ),
211
+ "kobest-copa": dict(
212
+ load_args=dict(
213
+ path="skt/kobest_v1",
214
+ name="copa",
215
+ split="test"
216
+ ),
217
+ mapper=kobest_copa_mapper
218
+ ),
219
+ "kobest-hellaswag": dict(
220
+ load_args=dict(
221
+ path="skt/kobest_v1",
222
+ name="hellaswag",
223
+ split="test"
224
+ ),
225
+ mapper=kobest_hellaswag_mapper
226
+ ),
227
+ "kobest-boolq": dict(
228
+ load_args=dict(
229
+ path="skt/kobest_v1",
230
+ name="boolq",
231
+ split="test"
232
+ ),
233
+ mapper=kobest_boolq_mapper
234
+ ),
235
+ "kobest-sentineg": dict(
236
+ load_args=dict(
237
+ path="skt/kobest_v1",
238
+ name="sentineg",
239
+ split="test"
240
+ ),
241
+ mapper=kobest_sentineg_mapper
242
+ )
243
+ }
244
+
245
+ ```