Closed wogkr810 closed 2 years ago
Test.csv와의 prediction.json을 비교하여 EM과 F1 score를 측정하는것은 SQuAD의 evaluate.py를 이용하며, 후처리는 우리의 데이터셋에 맞게 KorQuAD의 evaluate.py를 적용했다.
유형 | EM | F1 |
---|---|---|
SOTA | 63.64 | 78.12 |
KorQuAD | 61.69 | 77.50 |
KorQuAD(괄호 보존) | 63.64 | 78.12 |
현재 SOTA 데이터셋 및 모델 기준으로, 완전하지 않은 답변은 크게 두가지로 나뉜다.
no_answer
을 임의의 답변으로 예측하는경우다수의 구성원
을 예측하는 답변
등의 답변이 육안으로 확인 가능하고, 밑의 방법으로 후처리를 시도할 수 있다.
구축한 데이터셋을 기준으로 구성원을 잘 맞추지 못하는 경우는 숫자를 포함하지 않으며 길이가 2 이하인 답변
이므로 룰베이스로 처리해줄 수 있다. 하지만, 실제 서비스를 고려할 경우에는 적합하지 않다.
Top-k 파라미터를 3으로 정했지만, 3가지 답변의 확률이 특정 임계값을 넘지 않는 경우, no_answer 답변으로 처리한다.
현재 submission.py를 통한 성능 측정은 어절 단위로 구분되어 있지만, 한국어 특성을 고려한다면 밑의 이미지와 같이 KorQuAD의 기준을 따라 음절 단위로 구분하여 새롭게 평가할 수 있다.
Task 수행 이유 : 데이터셋 구축이 완료되고, Train후에 Inference 를 했을 때,
송지
,이은
,. 2008년 2월 9일
등의 완전하지 않은 문장 또는 공백과 특수기호가 포함된 답변을 확인할 수 있다. 실제 서비스에 적용한다는 점을 고려할 때, 예측 답안의 확률과 no_answer을 고려한 답변이 출력되어야 하므로 후처리를 진행했다.목표 : 서비스단에서 답변을 예측할 때 낮은 확률로 예측하는 답변은 다른 답변을 추천하며, 특수기호가 포함된 답변은 정제하여 올바른 답변을 출력한다.