Faiss (scaling up)

창진손·2023년 2월 17일
0

MRC

목록 보기
6/6

부스트코스의 딥러닝으로 만드는 질의응답 시스템을 보고 정리한 것입니다.

Passage Retrieval

  • question, passage 두 부분에 encoder 존재
  • question은 입력과 동시에 encoding을 함
  • passage는 미리 encoding을 해 둠
  • passage의 수가 많아지면 많아질수록 계산량이 증가

maximum inner product

  • 주어진 질문과 passage 사이의 inner dot product를 계산
  • 문서의 갯수가 엄청 많은 경우 exhaustive search로 찾는 것은 시간적 비용이 너무 큼
  • memory, accuracy, speed 사이의 trade off가 존재


Compression - scalar quantization

  • 벡터를 압축하는 방법
  • 4byte -> 1byte
  • 메모리가 더 적게 들고 정보 손실도 적음


Pruning - inverted file

  • search space를 줄여 속도 개선
  • 클러스터링을 통하여 미리 벡터공간을 나누어 둠
  • 근접한 클러스터에 대해서만 exhaustive search를 진행

Introduction to Faiss

  • indexing을 도와주는 것 (embedding을 해주는 것은 아님)
  • encoder를 통해 문서벡터를 얻은 후 clustering을 위해 index training 과정을 거침
  • 그 후 inference time에 question vector가 들어옴
  • 가장 가까운 cluster를 방문해서 cluster 내의 vector을 일일이 비교하여 top-k의 문서 벡터를 추출
profile
NLP취준생

0개의 댓글