(5강) Passage Retrieval - Dense Embedding
Introduction to Dense Embedding
이전 강의에서 살펴본 TF-IDF의 Vector는 Sparse한 특징을 갖는다. Sparse Embedding 방식은 단어의 유무를 정확하게 파악하는데는 유용하지만, 다양한 한계점을 갖는다. 차원의 수가 매우 크며, 각 단어의 유사성을 고려하지 못하는 것이 일례이다.
위와 같은 한계점을 극복할 수 있는 방안이 Dense Embedding이다.
Dense Embedding Model의 Overview는 다음과 같다.
Dense Embedding을 생성할 Encoder를 훈련하고, 질문과 문서를 비교하여 관련 문서를 추출하는 형태로 이루어진다.
Training Dense Encoder
Dense Embedding을 생성할 Encoder로는 PLM (Pre-trained Language Model)을 주로 사용한다.
BERT의 경우, [CLS]
Token의 Output을 각 질문이나 문서의 Vector로 활용한다.
Dense Encoder의 학습은 다음과 같은 목표를 갖는다.
Passage Retrieval with Dense Encoder
위의 방법을 통해 학습한 Encoder와, 해당 Encoder로부터 얻은 Vector를 통해 Retrieval을 수행할 수 있다.
(6강) Scaling up with FAISS
Passage Retireval and Similarity Search
기존까지 살펴본 Retrieval 방식은 Scale에 따라서 필요로 하는 자원량이 증가하게 된다. Wikipedia나, Google과 같이 매우매우 많은 수의 문서 중에서 Query에 해당하는 문서를 찾기 위한 방법에 대해 알아보자.
먼저, 이전까지 계산해왔던 Similarity는 엄밀히 말했을 때 L2와 같은 '거리'가 아니고, '내적'값의 최대화였음을 기억하자.
MIPS의 방식은 문서집합과의 계산을 통해 이루어지는데, 이때 모든 문서 임베딩을 일일히 보면서 검색할 수는 없는 Scale을 가정하자. 즉, 자원 사용의 최적화와 속도를 위해 수행되는 작업이다.
Approximating Similarity Search
위와 같은 상황에서 접근해볼 수 있는 대표적인 방법은 다음과 같다.
Introduction to FAISS
FAISS는 위 두 방법을 모두 활용하여, 높은 속도를 자랑하는 유사도 측정 Library이다. 문서뿐 아니라 다양한 형태의 Data에 대해 사용할 수 있다.
Scaling up with FAISS
FAISS를 사용하는 실습 코드에 대해 알아보자.
Reference
Dense Passage Retrieval for Open-Domain Question Answering
Open domain QA tutorial: Dense retrieval
Project
오늘의 목표 및 진척상황
- 음절 단위 Tokenizing
직면했던 문제와 학습한 내용
- 음절 단위 Tokenizing
Baseline만 며칠째 보고있고, 해당 함수를 구현하려고 하면 막막해서 손을 놓게 된다.
추가로 진행 할 사항
- 정신 차리기
'네이버 부스트캠프 AI Tech' 카테고리의 다른 글
[P3] Day 67 (21.05.04) (0) | 2021.06.26 |
---|---|
[P3] Day 66 (21.05.03) (0) | 2021.06.26 |
[P3] Day 64 (21.04.29) (0) | 2021.06.26 |
[P3] Day 63 (21.04.28) (0) | 2021.06.26 |
[P3] Day 62 (21.04.27) (0) | 2021.06.26 |
Uploaded by Notion2Tistory v1.1.0