boostcampaitech2 / mrc-level2-nlp-04

mrc-level2-nlp-04 created by GitHub Classroom
4 stars 5 forks source link

Dense retrieval 구현 동참 누가 빨리하나 시합 #19

Open raki-1203 opened 2 years ago

raki-1203 commented 2 years ago

문제 1

train data 와 validation data 의 context 는 wiki 에 모두 포함되어 있음

~그러나 retrieval 을 모델이 잘 못함 터무니없는 context 를 추천해줌~ 모델이 accuracy 는 꽤 높았고 train loss 도 잘 줄었다고 생각했는데 ~생각보다 너무 터무니 없어서 놀랐음~

image

역시 코드는 문제없었다. 내가 코딩을 잘 못한 것일 뿐.....

학습한 모델 사용하니

image

적절하게 질문에 다른 context 를 갖고 오는 것을 확인 할 수 있음

image

질문 하나에 대해서도 빠르게 가져옴 그런데 실제 정답과 비교하는건 아직 코딩을 안해서 정확한지 예시는 지금 못들었지만 상당히 관련된 context 를 뽑아온 것 같아 보인다.

현재는 k=1 인 경우의 train dataset 과 validation dataset 에 있는 모든 question 에 대한 정답 context 가져온 확률

예측한 context 가 정답 context 를 포함할 확률(정확도)

k dense 걸린시간(초) vs sparse 걸리시간(초)
1 19.18 25.390 25.19 13.626
5 42.25 28.106 53.77 17.367
10 53.96 28.018 63.57 16.936
20 66.34 28.162 72.78 17.023
30 72.73 28.307 77.19 17.480
40 77.00 28.252 79.63 17.147
50 79.72 28.412 81.73 17.261
60 82.18 28.550 83.44 17.668
70 83.83 28.358 84.57 17.350
80 85.40 28.665 85.69 17.480
90 86.69 28.589 86.55 17.862
100 87.93 28.637 87.24 17.543

Dense klue/roberta-small encoder 의 경우 k 가 1일때와 2이상일때부터의 시간 초가 3초 정도 차이나는 것 같고 몇개를 가져오든 시간은 비슷

k 가 늘어날수록 question 질문과 관련된 문장을 포함할 확률은 높아지는 걸 확인할 수 있음

TF-IDF 방법으로 가져올 때 k 가 80일때까지 dense 보다 정답 context 를 가져올 확률이 높음

encoder 가 klue/roberta-small 이라서 그런건가? 다른 모델을 쓰면 더 올라갈까? 궁금해졌음

kimziont commented 2 years ago

북핵급 도발에 자극받고 갑니다 ><

sangmandu commented 2 years ago

희락님 이겨라!!

kimziont commented 2 years ago

희락님 이겨라!ㅋㅋㅋ

kimziont commented 2 years ago

좋은 글 감사합니다. Dense passage retrieval에서 faiss를 적용하게 되면 Sparse보다 빨라질지 궁금하네요ㅎㅎ