boostcampaitech2 / mrc-level2-nlp-04

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

top-k의 k를 늘렸을 때 LB의 변화 #14

Open SinGonKim opened 2 years ago

SinGonKim commented 2 years ago

Inference 에서 top-k를 x라 하면 Retriever가 질문과 가장 관련성 높은 x개의 문서 출력 Reader는 x개의 문서를 읽고 답변 예측 Reader가 예측한 답변 중 가장 score가 높은 것을 최종 답으로 사용합니다.

마스터님께서 k를 늘리면 점수가 대체로 높아진다고 하셨고 희락님께서 To_do(해야할 것)에 올리셨고 그에 따라서 실험을 해보았습니다. 다음과 같이 따라가보면 1 2 3 4

top_k 숫자만 바꾸면 sparse에서 top_k를 알아서 concate해서 연결시켜줌을 알 수 있습니다.(retireval에서는 거의 모든 변수에서 top_k를 사용합니다. argument에서도 6 바꾸면 끝입니다.

eval단계에서도 top_k를 사용해서인지 top_k를 바꿀 때 마다 train부터 시행해서 결과를 뽑아내야 합니다. 현재까지 한 top_k=10일 때와 50. 100, 20, 40, 30일 때를 비교해보겠습니다. top_k = 10, 50 7 top_k = 100, 20 1 top_k = 40, 30 1

위에 보시면 답이 어느순간 달라짐을 알 수 있습니다. 리더보드(LB)의 결과를 확인한 결과 8

top_k = 100 top_k=100

top_k = 50 8

top_k = 40 40

top_k = 30 30

top_k = 20 2

top_k = 10 9

이 나왔습니다. 즉 상당히 효과가 있다는 것을 알 수 있었습니다. 물론 Sparse_retrieval 으로 해서 조금씩 달라질 수 있지만 k=30일때로 하는 것이 좋을 것 같습니다.

sangmandu commented 2 years ago

고생하셨어요. k를 여러개로 해서 실험이 진행되면 좋을 것 같아요. 5, 10, 20, 50 등으로

kimziont commented 2 years ago

신곤님 좋은 insight 제공해주셔서 감사드립니다. 궁금한 것이 있는데, k를 늘려서 k개의 문서를 retrieval한다고 했을 때, 예를 들어, k = 10일 때보다, k = 50일 때 성능이 더 좋아졌다는 것은 가장 유사도가 높은 첫 번째 문서보다, 11번째(혹은 그 이상)으로 유사도가 높은 문서에서 정답이 나오는 경우도 있다는 뜻인가요?

SinGonKim commented 2 years ago

신곤님 좋은 insight 제공해주셔서 감사드립니다. 궁금한 것이 있는데, k를 늘려서 k개의 문서를 retrieval한다고 했을 때, 예를 들어, k = 10일 때보다, k = 50일 때 성능이 더 좋아졌다는 것은 가장 유사도가 높은 첫 번째 문서보다, 11번째(혹은 그 이상)으로 유사도가 높은 문서에서 정답이 나오는 경우도 있다는 뜻인가요?

넵 그 문서를 k개 끌어다가 다 이어 붙인 다음에 start_point, end_point를 잡아서 정답을 도출 하는 것입니다. 답이 다르다는 것은 k가 커졌을 때 유사도가 높은 문서에서 정답이 나온 것이라고 볼 수 있습니다. 그런데 k=100일 때 점수가 줄어들었는데 저는 아직 정확히 이해를 못했는데 Granularity에 따라 k가 달라질 수 있다고 할 수 있고 항상 k를 올린다고 성능이 높아지는 것은 아니라고 하셨습니다.

kimziont commented 2 years ago

아하 이어붙임으로써 k개의 문서를 고려하는거군요! 감사합니다ㅎㅎ k가 너무 커지면 또 성능이 떨어지는군요. 그 부분은 이번주에 Reader 부분을 공부하면서 저도 생각해보겠습니다.

sangmandu commented 2 years ago

신곤님 고생하셨어요. 현재 테스트 결과를 보니까 최적의 k가 20~50 사이에 존재하는 것 같은데, 30이랑 40도 해주실 수 있나요??

SinGonKim commented 2 years ago

신곤님 고생하셨어요. 현재 테스트 결과를 보니까 최적의 k가 20~50 사이에 존재하는 것 같은데, 30이랑 40도 해주실 수 있나요??

넵 30 40 돌리면서 오늘까지 이거 마무리하고 내일부터 새로운 것 하려고 합니다.