오늘 한 일
- Dense Retriever 숟가락 얹기 시작
- Cross Encoder를 사용한 Dense Retriever 구현을 하기 시작 했다.
- 오늘 구현은 다 끝내놔서 내일 네거티브 샘플링 개선된 거 합쳐서 실험 돌리면 좋을 것 같다.
sentence-transformer라고 있던데 이걸 쓰면 편해보이긴 한데 커스텀이 잘 안되어서 그냥 원래 하던대로 하는 게 좋을 것 같다.
- 그리고 BM25 성능도 찍어봤다.
- Top@1이 TF-IDF Top@5보다도 괜찮은 성능을 보이는 것 같다.
- 원래 있던 노트북 파일 조금만 수정하니 되더라. 그렇게 어렵지는 않았다.
- 스페셜 피어세션
- 프로젝트 중에 처음으로 진행한 스페셜 피어세션이었다.
- NLP 유재석(내가 맘대로 부름)님을 만났다! 끝나고 사진 찍는다는 게 진짜였다.
- 구체적인 프로젝트 진행 상황은 들을 수 없었다.
- 사실 들어도 그대로 날먹하면 나중에 보고서 쓰기가 어려울 것 같아서 안 듣는 게 오히려 좋을지도 모르겠다.
- 협업을 어떻게 하는지, 팀원 바꿀 계획 있으신지 그런 것도 이야기를 좀 나누었다.
- 멘토링
- Precision과 Gradient Accumulation에 대한 주제로 멘토링을 진행했다.
- 제한된 메모리에서도 큰 모델을 돌릴 수 있기 위한 테크닉?이라고 생각하면 편할 것 같다.
- 사실 그것보다도, 프로젝트 관련 질의응답이 좀 더 큰 도움을 받았던 것 같다.
- 실험을 할 때는 일단 기본적으로 작은 모델을 먼저 써서 실험을 빠르게 돌릴 수 있도록 하는 게 좋다는 걸 알았다.
- 사실 생각해보면 당연한거긴 한데, 망각하고 있었던 것 같다.
- 그리고 dense retriever를 평가하기 위한 evaluation dataset을 만들어서 추적하는 게 좋을 것이라고 하셨다.
- 그리고 프로젝트 자체를 좀 다른 관점으로 바라볼 수 있게 된 것 같다.
- 프로젝트 성적 자체보다도, 약간 어떻게 논리적인 사고를 하는가를 보게 될 것이라는 거?
- 주어진 문제를 어떻게 바라보고, 어떤 문제를 눈치채고 어떻게 해결하고 구현할 것인가?
- 이런 문제가 더 중요했던 것 같다.
- 그런 의미에서 너무 코드 리팩토링이니 streamlit이니 그런 거에 집중하는 거는 프로젝트를 통해 그런 걸 보여주기 어렵지 않을까 생각한다.
다음에 할 일
- Dense Retriever Cross Encoder 실험 하면서 고치기?
- 잘 되면 Hybrid Retriever까지 확장해보기
- 실험 편의성 설정: WandB 연동 + Retriever-reader evaluation