주말동안 한 것
- 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 성능 향상을 위한 방법론을 적용해봐야겠다.
- 이 글만 다 쓰고 모델 변경부터 좀 해봐야겠다.