boostcampaitech7 / level2-mrc-nlp-14

level2-mrc-nlp-14 created by GitHub Classroom
1 stars 1 forks source link

[New Feature] SparseRetriever 클래스 구현 #3

Closed eyeol closed 1 month ago

eyeol commented 1 month ago

기능 요약

DataTrainingArgumentsembedding_type이라는 argument를 추가하여, 사용자가 원하는 Sparse Embedding 방식(Tfidf, Count 등)을 선택할 수 있도록 구현. 선택된 방식에 따라 SparseRetriever 클래스에서 해당 Embedding 방식으로 Passage Embedding을 진행하고, 그에 맞춰 문서 검색을 수행함.

고안 배경

다양한 Sparse Embedding 방식을 실험해볼 수 있도록 Sparse Embedding 방식을 쉽게 변경할 수 있게 하여, 성능 평가 및 비교 실험을 할 수 있도록 함. 이를 통해 다양한 Retrieval 방식(Tfidf, Count 등)을 하나의 코드 구조 내에서 쉽게 테스트할 수 있음.

기능 상세 플로우

  1. embedding_type argument를 추가: DataTrainingArgumentsembedding_type argument를 추가하여 사용자에게 선택지를 제공. (기존에 이 기능을 하던 retrieval_type은 sparse, dense 중에 선택하는 것으로 수정)
  2. Passage Embedding 수행: SparseRetriever 클래스는 embedding_type을 기반으로 자동으로 적절한 임베딩 방식을 선택(TfidfVectorizer 또는 Count, Hash)하여 Passage Embedding을 수행.
  3. Retrieve 수행: 선택된 임베딩 방식으로 Passage Embedding이 끝난 후, 해당 방식에 맞춰 유사도를 계산하고 문서 검색을 수행.

예상 결과

기타 사항

bm25 구현도 추가할 예정입니다