File size: 6,228 Bytes
0e101cd
 
b9a3b65
 
 
0e101cd
 
 
 
 
 
 
 
 
 
 
b9a3b65
0e101cd
b9a3b65
 
 
 
0e101cd
de3f00b
 
0e101cd
b9a3b65
 
 
 
 
 
 
 
 
 
2b26ca6
 
 
 
b9a3b65
2b26ca6
 
b9a3b65
 
 
 
1a491c7
b9a3b65
 
2b26ca6
 
 
 
 
 
 
 
0e101cd
b9a3b65
1a491c7
 
 
 
 
 
 
b9a3b65
 
 
0e101cd
 
 
 
 
 
452ef8e
0e101cd
 
 
 
 
 
 
 
 
 
 
 
b9a3b65
0e101cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b9a3b65
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
---
license: mit
widget:
  - text: "[CLS] 인천발 KTX와 관련한 송도역 복합환승센터가 사실상 무산, 단순 철도·버스 위주 환승시설로 만들어진다. 이 때문에 인천시의 인천발 KTX 기점에 앵커시설인 복합환승센터를 통한 인근 지역 경제 활성화를 이뤄낸다는 계획의 차질이 불가피하다. [SEP] 경제와 관련된 뉴스인가요? [SEP] 예 [SEP]"
  - text: "[CLS] 인천발 KTX와 관련한 송도역 복합환승센터가 사실상 무산, 단순 철도·버스 위주 환승시설로 만들어진다. 이 때문에 인천시의 인천발 KTX 기점에 앵커시설인 복합환승센터를 통한 인근 지역 경제 활성화를 이뤄낸다는 계획의 차질이 불가피하다. [SEP] 경제에 긍정적인 뉴스인가요? [SEP] 아니요 [SEP]"
datasets:
- nsmc
- skt/kobest_v1
- jason9693/APEACH
- kor_nlu
- klue
- KETI-AIR/korquad
language:
- ko
pipeline_tag: text-classification
---
# AZOU: GPT 3.5보다 뛰어난 제로샷 분류 성능을 가진 한국어 모델

`[CLS] 입력 정보 [SEP] 지시문 [SEP] 라벨 [SEP]` 형태의 텍스트를 모델에 넣으면, 모델이 세 텍스트의 관계를 파악하고 점수를 반환합니다. 점수가 높을 수록, 라벨이 지시문을 잘 따르는 결과임을 의미합니다. 텍스트에 다음과 같은 질문을 함께 주고 평가할 수 있습니다.

1. 제로샷 분류(주제 분류, 혐오 분류): 이 글의 주제가 뭔가요? 이 글은 혐오 표현을 포함하고 있나요?
2. 데이터 검색 및 필터링: 이 글은 "화장품 사용법"에 대한 내용을 포함하고 있나요?

[space demo](https://huggingface.co/spaces/iknow-lab/azou)에서 모델을 직접 사용해보세요!<br/>
base model: [klue/roberta-large](https://huggingface.co/klue/roberta-large)

## Developers
- 김희규([email protected])
- 박성호([email protected])
- 육세현([email protected])
- 김효진([email protected])

# Benchmark
### 제로샷 분류 성능
|task|azou|GPT-3.5-turbo|
|---|---|---|
|aihub_complaints_topic|32.84|15|
|aihub_dialog_topic|42.8|32|
|ko_relation_fields|40.3|38.1|
|Average|<b>38.65</b>|28.37|

- 학습에 사용하지 않은 텍스트와 라벨도 잘 분류하는지 판단하기 위해, AIHub의 텍스트 분류 데이터셋들을 가져와서 ChatGPT와 정확도를 비교했습니다. 
- GPT 3.5-turbo의 경우, 비용 문제로 aihub_complaints_topic는 1300개, aihub_dialog_topic와 ko_relation_fields는 1000개만 평가했습니다(azou는 전체 평가).
- aihub_complaints_topic: AIHub [민원 업무 자동화 인공지능 언어 데이터](https://www.aihub.or.kr/aihubdata/data/view.do?currMenu=&topMenu=&aihubDataSe=data&dataSetSn=619) - 16개 카테고리 class 분류
- aihub_dialog_topic: AIHub [한국어 대화 요약](https://www.aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=data&dataSetSn=117)의 10개 주제 class 분류
- ko_relation_fields: AIHub [한국어 지식기반 관계 데이터](https://www.aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=data&dataSetSn=71633) 의 13개 주제 및 분야 분류

### Seen Task 성능
|task|accuracy|
|---|---|
|nsmc|87.42|
|apeach|83.26|
|klue-ynat|82.08|
|kobest-boolq|89.6|
|kobest-copa|70.9|
|kobest-hellaswag|76.4|
|kobest-sentineg|92.19|
|kobest-wic|79.84|

### CSATQA

|     **Models**    |   **GR**  |   **LI**  |  **RCH**  |  **RCS**  |  **RCSS** |   **WR**  | **Average** |
|:-----------------:|:---------:|:---------:|:---------:|:---------:|:---------:|:---------:|:-----------:|
| polyglot-ko-12.8B |      32.0 |     29.73 |      17.14|     10.81 |     21.43 |      18.18 |       21.55|
|  gpt-3.5-wo-token |      16.0 |     32.43 |     42.86 |     18.92 |     35.71 |      0.00 |       24.32 |
|   gpt-3.5-w-token |      16.0 |     35.14 |     42.86 |     18.92 |     35.71 |      9.09 |       26.29 |
|    **azou(ours)** |      24.0 |     22.32 |     25.71 |     21.62 |     30.95 |      9.09 |       22.61 |

* GPT 3.5의 성능은 [CSATQA 데이터셋](https://huggingface.co/datasets/HAERAE-HUB/csatqa)의 README에서 가져왔습니다.
  
# 사용 예시
```
# Load model directly
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("iknow-lab/azou")
model = AutoModelForSequenceClassification.from_pretrained("iknow-lab/azou")

def inference(instruction, input, labels):
    instruction = f"{input} [SEP] {instruction}"
    inputs = tokenizer([instruction] * len(labels), labels, truncation=True, padding=True, return_tensors="pt")
    
    scores = model(**inputs).logits.squeeze(1).tolist()
    output = dict(zip(labels, scores))

    print(instruction, output)

inference(
    "문장을 감성분류해주세요",
    "아 영화 노잼",
    ["긍정적", "부정적"]
)

inference(
    "글과 관련된 내용을 만들어주세요",
    "예전에는 주말마다 극장에 놀러갔는데 요새는 좀 안가는 편이에요",
    ["영화에 관한 글이다", "드라마에 관한 글입니다"]
)


inference(
    "글을 읽고 시장에 미칠 영향을 판단해보세요",
    """인천발 KTX와 관련한 송도역 복합환승센터가 사실상 무산, 단순 철도·버스 위주 환승시설로 만들어진다. 이 때문에 인천시의 인천발 KTX 기점에 앵커시설인 복합환승센터를 통한 인근 지역 경제 활성화를 이뤄낸다는 계획의 차질이 불가피하다.

25일 시에 따르면 연수구 옥련동 104 일대 29만1천725㎡(8만8천평)에 추진 중인 2만8천62가구 규모의 송도역세권구역 도시개발사업과 연계, KTX 송도역 복합환승센터와 상업시설·업무시설 등의 조성을 추진 중이다. """,
    ["긍정", "부정", "중립"]
)

```

## Citation
```
@misc {azou2023,
  url={https://huggingface.co/iknow-lab/azou/},
  title={AZOU: GPT 3.5보다 뛰어난 제로샷 분류 성능을 가진 한국어 모델},
  author={Kim, Heegyu and Park, Sungho and Yuk, Sehyun and Kim, Hyojin},
  year={2023},
  month={Nov}
} 
```