1. 프로젝트 개요

2. 파이프라인

<aside>

image.png

</aside>

  1. 데이터 적재
  2. Step 1 : Candidate Retrieval
    1. 문서 전처리 : 문단 단위로 청킹. 문단 존재하지 않을 시 일정 사이즈의 길이로 컷팅
    2. 각 문단별 다음 임베딩 모델 동시 추론 진행:
      1. Koelectra 모델을 별도의 fine-tuning 없이 임베딩 진행
      2. KorNLI, KorSTS로 fine-tuning한 SimCSE 모델로 임베딩 진행
    3. 최신 문서가 Koelectra 모델로 임베딩을 FAISS 인덱스에 추가(HNSW) → 해당 문서 이전에 적재된 문서만을 대상으로 유사한 문서 번호로 후보군 필터링 검색
  3. Step 2: Re-ranking
    1. 추출된 Candidates를 대상으로 re-ranking 진행.
    2. 리랭킹 완료된 인덱스는 현재 문서와 유사한 상위 문서들의 인덱스를 의미
      1. 역인덱스와 비슷한 구조
  4. API 구현
    1. request 예시 :

      # 3번 문단과 비슷한 문단(청크) 보고싶은 경우
      {
      	"query_para" : 3
      }
      
    2. response 예시 :

      {
      	"cluster":[{"after_ind":4, "score":0.8}, 
      						 {"after_ind":6, "score":0.6}, 
      						 {"after_ind":10, "score":0.9}]
      }
      

3. 평가