앙상블 리트리버 및 롱 컨텍스트 리오더 요약

서론

이 비디오에서는 앙상블 리트리버와 롱 컨텍스트 리오더라는 두 가지 고급 검색 기법에 대해 설명합니다. 이러한 기술은 검색 시스템의 응답 품질을 향상시키는 데 중요한 역할을 합니다.

스파스 리트리버 (Sparse Retriever)

  • 스파스 리트리버는 문서 내 단어의 출현 빈도를 기반으로 행렬을 생성합니다.
  • 사용자의 쿼리와 유사한 인덱스를 추출하여 참고 문서를 제공합니다.
  • 장점: 빠르고 간편하며, 도메인에 상관없이 적용 가능합니다.
  • 단점: 맥락을 이해하지 못하고, 같은 의미를 가진 다른 단어를 제대로 처리하지 못합니다.

덴스 리트리버 (Dense Retriever)

  • 덴스 리트리버는 문서를 딥러닝 모델(인코더)을 통해 밀집 벡터 형태로 변환합니다.
  • 질문 역시 인코더를 통해 밀집 벡터로 만들어 유사도를 비교합니다.
  • 장점: 맥락을 고려하여 검색 품질이 우수하며, 동의어 처리 가능합니다.
  • 단점: 인코더의 사전 학습 데이터에 의존하므로, 정확한 단어가 포함되지 않은 문서가 나올 수 있습니다.

앙상블 리트리버 (Ensemble Retriever)

  • 앙상블 리트리버는 스파스 리트리버와 덴스 리트리버를 결합하여 각 방식의 장점을 상호 보완합니다.
  • 스파스 리트리버는 BM25 알고리즘을 사용하고, 덴스 리트리버는 페이스(Faiss) 또는 크로마(Chroma)와 같은 벡터 스토어를 사용합니다.
  • 하이브리드 서치를 통해 특정 단어가 포함된 문서와 맥락상 유사한 문서를 모두 검색할 수 있습니다.

RRF (Reciprocal Rank Fusion)

  • 앙상블 리트리버는 RRF를 사용하여 검색된 참고 문서를 재정렬합니다.
  • BM25와 Faiss/Chroma에서 나온 결과를 결합하여 사용자 쿼리에 더 적합한 순서로 문서를 재정렬합니다.
  • 예를 들어, “비타민 B1 장점”에 대한 쿼리가 있을 때, 비타민 B1에 대한 문서가 먼저 나오고, 그 다음으로 장점에 관련된 내용이 나오는 순서로 정렬합니다.

앙상블 리트리버와 덴스 리트리버 비교 예시

  • 질문: “혁신 정책 금융과 극저신용 대출 모형의 차이”
  • 앙상블 리트리버는 “극저신용 대출 모형” 관련 문서와 “혁신 성장 정책 금융 동향” 관련 문서를 번갈아 가며 보여줍니다.
  • 덴스 리트리버는 “극저신용 대출 모형” 관련 문서만 반복해서 보여주는 경향이 있습니다.
  • 질문: “극저신용자 대출의 신용 등급”
  • 앙상블 리트리버는 7등급 이하의 신용 등급에 대한 답변과 관련된 여러 문서들을 보여줍니다.
  • 덴스 리트리버는 관련도는 높지만 특정 키워드와 정확하게 일치하지 않는 문서를 보여줄 수 있습니다.
  • 앙상블 리트리버가 사용자의 의도에 더 부합하는 답변을 제공하는 것을 확인할 수 있습니다.

롱 컨텍스트 리오더 (Long Context Reordering)

  • 롱 컨텍스트 리오더는 LLM이 긴 문맥의 앞부분과 뒷부분은 잘 참고하지만 중간 부분은 무시하는 경향을 보완합니다.
  • 여러 참고 문서가 있을 때, LLM이 더 잘 참고할 수 있도록 참고 문서의 순위를 재정렬합니다.
  • 관련성이 높은 문서는 일부러 맨 앞과 맨 뒤에 배치하여 LLM이 사용자가 원하는 답변을 더 잘 생성하도록 돕습니다.

롱 컨텍스트 리오더 예시

  • 질문: “셀틱스에 대해서 어떤 이야기를 들려주시겠는가”
  • 리오더링 전: 셀틱스 관련 문서가 순서대로 나옵니다.
  • 리오더링 후: “내가 셀틱스를 가장 좋아한다” 와 같은 쿼리와 관련성이 높은 문장이 먼저 나오고, 중간 부분은 셀틱스와 관련 없는 문서들로 채워지며, 맨 뒤에는 다시 셀틱스 관련 내용이 배치됩니다.
  • 이로 인해 LLM은 문맥을 더 잘 이해하고 사용자에게 더 적합한 답변을 제공할 수 있게 됩니다.

커스텀 체인

  • 커스텀 체인을 구성하여 롱 컨텍스트 리오더를 적용할 수 있습니다.
  • LM 체인, 스터프 다큐먼트 체인, 프롬프트 템플릿 등을 사용하여 LLM의 동작을 사용자 정의합니다.
  • 프롬프트 템플릿을 통해 LLM에 컨텍스트와 질문을 전달하고, 스터프 다큐먼트 체인을 통해 문서 순서를 재정렬합니다.
  • 리오더링 전후의 답변을 비교하여 성능 차이를 확인할 수 있습니다.

사용된 라이브러리

  • Langchain
  • PyPDFLoader
  • Sentence Transformers
  • Chroma DB
  • OpenAI
  • Hugging Face Transformers
  • Faiss
  • BM25

결론

앙상블 리트리버는 스파스 및 덴스 리트리버의 장점을 결합하여 검색 성능을 향상시키고, 롱 컨텍스트 리오더는 긴 문맥에서 LLM의 참고 능력을 향상시킵니다. 이러한 기술을 통해 검색 시스템의 응답 품질을 크게 개선할 수 있습니다.