Wrap up Report
<기술적인 도전>
본인의 점수 및 순위
- Public : LB 점수 EM: 66.25%, F1: 78.70%, 2등
- Private : LB 점수 EM: 64.17%, F1: 74.88%, 2등
EDA
기본적인 전략
- EDA를 통해서 해당 Competition에서는 Retrieval가 중요하다고 판단.
- 따라서 리더보드에 제출했을 때, Retrieval의 성능 만을 확인하기 위해서는 일정한 성능을 보장하는 MRC가 필요.
- 이에 적합한 PORORO의 MRC를 선택하여 Retrieval 성능을 빠르게 실험 그리고 제출 기회를 최대한으로 활용.
- 해당 정보를 바탕으로 팀 공용 Retrieval Setting 및 팀원의 모델 학습에 도움.
검증(Validation)전략
- 제공된 Train dataset과 Validation dataset을 사용하지 않았기 때문에, 해당 데이터 전부를 Validation으로 사용.
Retrieval
- 해당 세팅은 최종 버전이며, 이외에도 시도해볼 수 있는 모든 세팅에 대해서 테스트를 진행.
- 해당 세팅 과정에서 본의 아니게 엘라스틱 서치에 대해서 많은 것을 배울 수 있었음. (가이드북 정독, 관련 서적 정독)
- 세팅 이외에도 쿼리를 어떻게 주느냐에 따라서 엘라스틱 서치의 성능이 천차만별.
- 여러 번의 시도 끝에, NER을 통해서 선정된 단어에 가중치를 방식으로 최종 결정.
PORORO MRC
- PORORO의 MRC를 그대로 사용하기에는 두 가지 문제점이 존재
- 문제점 1. Logit(Score)를 출력하지 않음.
- 문제점 2. Top-1의 Answer 만을 출력.
- 소스 코드를 수정하여 위 두가지 문제를 해결.
- 해당 해결 과정에서 나온 코드를 PORORO에 PR할 계획.
앙상블 방법
- Rule base Hard Voting
- 단순하게 Hard Voting을 하기에는 후처리 방법에 따라서 그 결과가 달라짐.
- 따라서 후처리 뿐만 아니라 Rule Base 기반의 알고리즘을 추가하여 앙상블을 시도함.
- 또한, 각기 다른 모델들의 장점을 잘 살릴 수 있도록 앙상블을 설계.
- 해당 방법 덕분에 마지막 날 6% 이상의 성능을 상승.
시도했으나 잘 되지 않았던 것들
- rank_bm25 라이브러리에 미구현 되어 있는 BM25-Adpt와 BM25T를 구현하려고 했으나, 공식에 대한 이해 부족으로 실패.
- Hugging Face와 Haystack 라이브러리를 기반으로 한국어 Dense Passage Retrieval을 시도했으나 실패.
- 양질의 Train 데이터 부족
- 높은 배치사이즈를 위한 컴퓨팅 파워 부족
- 한국어로 pretrain된 모델의 부재
- KoBART를 기반으로 하는 Generation-based MRC를 구현
- 후처리를 안해도 된다는 장점이 존재
- 단, Extraction-based MRC의 성능을 이기지 못함
- 엘라스틱 서치의 다양한 세팅을 통한 Retrieval ensemble
- Doc2Vec Embedding을 이용한 Retrieval
- Bert Embedding을 이용한 Retrieval
- Pyserini 라이브러리 사용
<학습과정에서의 교훈>
학습과 관련하여 개인과 동료로서 얻은 교훈
- 개인으로 진행하는 competition과 팀으로 진행하는 competition의 전략은 달라야 한다는 것을 배웠습니다.
- 특히, 팀으로 진행하는 competition의 경우 더욱 더 많은 실험을 해볼 수 있기 때문에, 정보 공유와 취합 그리고 정리가 중요합니다.
- 그리고 대회 막바지 서로 다른 모델들이 존재하기 때문에, 어떻게 앙상블을 할지 미리 생각해야 할 것 같습니다.
- 끝으로, 팀을 위해 개인이 어디까지 희생해야 하는지 그리고 개인의 이득을 위해서 어디까지 팀을 이용해야 하는지 그 밸런스가 중요한 것 같습니다.
- 이를 위해서는 확실한 리더의 존재가 필요하다고 생각합니다.
피어세션을 진행하며 좋았던 부분과 동료로부터 배운 부분
- 피어세션을 하면서 가장 좋았던 부분은 두 가지가 있습니다.
- 첫째, 다른 팀원들의 실험 내용을 참고할 수 있었습니다.
- 둘째, 제 실험 내용을 설명하기 위해 스스로 한 번 정리한다는 것입니다.
<마주한 한계와 도전숙제>
아쉬웠던 점들
- 저는 이번 스테이지에서 1등을 하고 싶었습니다.
- 하지만 저희 팀은 졌고 2등으로 대회를 마무리했습니다.
- 1등을 하기 위해서 최선을 다했던 것 만큼, 가장 아쉬운 부분입니다.
한계/교훈을 바탕으로 다음 스테이지에서 새롭게 시도해볼 것
- 그냥. 1등 할 생각입니다. 다른 것은 잘 모르겠습니다.