Update README.md
Browse files
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 |
+
```
|