# 학위가 필요한 직업을 분류한 사례 연구

[Clavié et al., 2023](https://arxiv.org/abs/2303.07142)는 생산 시스템에 중간 규모 텍스트 분류 사용 사례를 적용한 프롬프트 엔지니어링에 대한 사례 연구를 발표했습니다. 직업이 정말 대학을 갓 졸업한 사람에게 적합한 "입문 수준의 직업"인지 아닌지 분류하는 작업을 하여 일련의 프롬프트 엔지니어링 기술을 평가하고 GPT-3.5 (`gpt-3.5-turbo`)를 이용하여 결과를 보고했습니다.

이 연구는 LLM이 DeBERTa-V3의 매우 강력한 기준선을 포함한 다른 모든 테스트된 모델들을 능가했음을 보여줍니다. `gpt-3.5-turbo` 또한 모든 주요 메트릭에서 구 버전의 GPT3 변종보다 눈에 띄게 뛰어난 성능을 보이지만, 템플릿에 대한 적용성이 다른 변종들에 비해 부족하여 추가적인 출력 파싱이 필요합니다.

이 연구의 프롬프트 엔지니어링 접근법에서 얻은 주요 결과는 다음과 같습니다.

- 전문가의 지식이 필요하지 않은 이러한 단순 작업의 경우, 모든 실험에서 퓨샷 생각의 사슬 프롬프팅(Few-shot CoT prompting)이 제로샷 프롬프팅(Zero-shot prompting)에 비해 상대적으로 낮은 성능을 보여주었습니다.
- 프롬프트는 올바른 추론 도출에 엄청난 영향을 미칩니다. 모델에게 직업을 분류하라고 단순히 명령했을 때에는 65.6의 F1 점수를 얻었으나, 프롬프트 엔지니어링 된 모델은 91.7의 F1 점수를 보여주었습니다.
- 모델을 템플릿에 강제로 적용하려 한 모든 경우에 성능이 저하되었습니다(이 현상은 논문 후반의 GPT-4를 사용한 초기 테스트에서 사라졌습니다).
- 여러 작은 수정사항이 성능에 엄청난 영향을 미쳤습니다.
  - 아래 표에서 테스트 된 모든 수정 사항을 확인할 수 있습니다.
  - 적절한 지시를 내리고 요점을 반복하는 것이 가장 큰 성능 동력으로 나타났습니다.
  - 단순히 모델에게 (사람) 이름을 지어주는 것으로 F1 점수가 0.6 상승했습니다.

### 테스트 된 프롬프트 수정 사항들

| 약어     | 설명                                                                              |
| -------- | --------------------------------------------------------------------------------- |
| Baseline | 채용 공고를 제공하고 갓 졸업한 사람에게 적합한지 묻습니다.                        |
| CoT      | 질의를 하기 전에 정확히 분류된 몇 가지 예시를 제공합니다.                         |
| Zero-CoT | 모델에게 단계별로 추론하여 정답을 제시하도록 요구합니다.                          |
| rawinst  | 역할 및 작업에 대한 지시를 사용자 메시지에 추가함으로써 제공합니다.               |
| sysinst  | 역할 및 작업에 대한 지시를 시스템 메시지로서 제공합니다.                          |
| bothinst | 시스템 메시지로서의 역할과 사용자 메시지로서의 작업으로 명령을 분할합니다.        |
| mock     | 그들을 인정하는 의사 토론을 통해 작업 지시를 제공합니다.                          |
| reit     | 요점을 반복하여 지시를 강화합니다.                                                |
| strict   | 모델에게 주어진 템플릿을 엄격히 준수하여 답변하도록 요청합니다.                   |
| loose    | 최종 답변만 주어진 탬플릿을 준수하여 반환하도록 요청합니다.                       |
| right    | 모델에게 올바른 결론에 도달하도록 요청합니다.                                     |
| info     | 일반적인 추론 실패를 해결하기 위한 추가 정보를 제공합니다.                        |
| name     | 모델에게 대화에서 부를 이름을 제공합니다.                                         |
| pos      | 질의를 하기 전 모델에게 긍정적인 피드백을 제공합니다.                             |


### 프롬프트 수정 사항이 성능에 미치는 영향

|                                         | 정확도   | 재현율 | F1       | 템플릿 고착도 |
| --------------------------------------- | -------- | ------ | -------- | ------------- |
| _Baseline_                              | _61.2_   | _70.6_ | _65.6_   | _79%_         |
| _CoT_                                   | _72.6_   | _85.1_ | _78.4_   | _87%_         |
| _Zero-CoT_                              | _75.5_   | _88.3_ | _81.4_   | _65%_         |
| _+rawinst_                              | _80_     | _92.4_ | _85.8_   | _68%_         |
| _+sysinst_                              | _77.7_   | _90.9_ | _83.8_   | _69%_         |
| _+bothinst_                             | _81.9_   | _93.9_ | _87.5_   | _71%_         |
| +bothinst+mock                          | 83.3     | 95.1   | 88.8     | 74%           |
| +bothinst+mock+reit                     | 83.8     | 95.5   | 89.3     | 75%           |
| _+bothinst+mock+reit+strict_            | _79.9_   | _93.7_ | _86.3_   | _**98%**_     |
| _+bothinst+mock+reit+loose_             | _80.5_   | _94.8_ | _87.1_   | _95%_         |
| +bothinst+mock+reit+right               | 84       | 95.9   | 89.6     | 77%           |
| +bothinst+mock+reit+right+info          | 84.9     | 96.5   | 90.3     | 77%           |
| +bothinst+mock+reit+right+info+name     | 85.7     | 96.8   | 90.9     | 79%           |
| +bothinst+mock+reit+right+info+name+pos | **86.9** | **97** | **91.7** | 81%           |

템플릿 고착도란 모델이 요구받은 형식으로 응답한 빈도를 나타냅니다.
