[P3] Week 4 Day 21 (完)

나며기·2021년 5월 22일
0

부스트캠프 AI Tech

목록 보기
79/79
post-thumbnail

Wrap up Report

<기술적인 도전>

Github Repo

본인의 점수 및 순위

  • 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% 이상의 성능을 상승.

시도했으나 잘 되지 않았던 것들

  1. rank_bm25 라이브러리에 미구현 되어 있는 BM25-Adpt와 BM25T를 구현하려고 했으나, 공식에 대한 이해 부족으로 실패.
  2. Hugging Face와 Haystack 라이브러리를 기반으로 한국어 Dense Passage Retrieval을 시도했으나 실패.
  • 양질의 Train 데이터 부족
  • 높은 배치사이즈를 위한 컴퓨팅 파워 부족
  • 한국어로 pretrain된 모델의 부재
  1. KoBART를 기반으로 하는 Generation-based MRC를 구현
  • 후처리를 안해도 된다는 장점이 존재
  • 단, Extraction-based MRC의 성능을 이기지 못함
  1. 엘라스틱 서치의 다양한 세팅을 통한 Retrieval ensemble
  2. Doc2Vec Embedding을 이용한 Retrieval
  3. Bert Embedding을 이용한 Retrieval
  4. Pyserini 라이브러리 사용

<학습과정에서의 교훈>

학습과 관련하여 개인과 동료로서 얻은 교훈

  • 개인으로 진행하는 competition과 팀으로 진행하는 competition의 전략은 달라야 한다는 것을 배웠습니다.
  • 특히, 팀으로 진행하는 competition의 경우 더욱 더 많은 실험을 해볼 수 있기 때문에, 정보 공유와 취합 그리고 정리가 중요합니다.
  • 그리고 대회 막바지 서로 다른 모델들이 존재하기 때문에, 어떻게 앙상블을 할지 미리 생각해야 할 것 같습니다.
  • 끝으로, 팀을 위해 개인이 어디까지 희생해야 하는지 그리고 개인의 이득을 위해서 어디까지 팀을 이용해야 하는지 그 밸런스가 중요한 것 같습니다.
  • 이를 위해서는 확실한 리더의 존재가 필요하다고 생각합니다.

피어세션을 진행하며 좋았던 부분과 동료로부터 배운 부분

  • 피어세션을 하면서 가장 좋았던 부분은 두 가지가 있습니다.
  • 첫째, 다른 팀원들의 실험 내용을 참고할 수 있었습니다.
  • 둘째, 제 실험 내용을 설명하기 위해 스스로 한 번 정리한다는 것입니다.

<마주한 한계와 도전숙제>

아쉬웠던 점들

  • 저는 이번 스테이지에서 1등을 하고 싶었습니다.
  • 하지만 저희 팀은 졌고 2등으로 대회를 마무리했습니다.
  • 1등을 하기 위해서 최선을 다했던 것 만큼, 가장 아쉬운 부분입니다.

한계/교훈을 바탕으로 다음 스테이지에서 새롭게 시도해볼 것

  • 그냥. 1등 할 생각입니다. 다른 것은 잘 모르겠습니다.
profile
PLUS ULTRA

0개의 댓글