주말동안 한 것

  • Cross Encoder 개발
    • 성능은 잘 나온다.
    • 그런데 Question과 Passage의 Pair에 대한 점수만 계산할 수 있어서, Sparse Embedding을 통해 미리 몇 개의 후보를 추린 다음 거기서 K개의 최종 passage를 검색하는 식으로 해야 한다.
      • 이 방법의 단점은 결국 Sparse Embedding에서 retrieval하지 못했다면, 결국 이 방식으로는 찾을 수 없다는 점이다.
      • 즉, 고점이 Sparse Embedding으로 제한된다.

오늘 한 일

  • 위 문제에 대해서 토론을 해봤다.
    • 일단은 Sparse Embedding이랑 Dense Embedding의 가중평균을 구하면 Sparse Embedding의 고점을 뚫을 수 있지 않을까 제안해봤다.
    • 근데 지금 보니까 Reader의 성능이 Retriever에 비해 별로 안나오고 있어서 Reader에 좀 포커싱을 맞추어야 할 것 같다.
  • Reader 성능 향상을 하기 위해서는
    • 일단 데이터 전처리 방법을 적용하는 것?
      • K 모 캠퍼님이 한자 제거 하는 걸 만들었는데 좀 보안할 점이 있어서 아직 써보지는 못했다.
    • 데이터 증강
      • 일단 KorQuAD 데이터셋을 넣으면 성능이 개선되리라고 믿는고 있다… 아직 안해봐서 해보면 좋을 것 같다.
    • 모델 변경
      • 지금 쓰고 있는 게 klue/bert-base라 이걸 바꿔서 사용해야 할 것 같다.
  • evaluation할 때 retriever의 성능을 함께 측정하기
    • 이것도 고치는 거 금방일 줄 알았는데 하루종일 걸렸다.
    • 겨우 고쳤는데 또 뭔 버그 있는 것 같아서 손봐야 할 것 같다…

다음에 할 일

  • 위에 써 놓은 reader 성능 향상을 위한 방법론을 적용해봐야겠다.
    • 이 글만 다 쓰고 모델 변경부터 좀 해봐야겠다.