NovaSearch-Team/RAG-Retrieval

Unify Efficient Fine-tuning of RAG Retrieval, including Embedding, ColBERT, ReRanker.

What it solves

RAG-Retrieval은 RAG(Retrieval-Augmented Generation) 파이프라인의 검색 단계 최적화를 위한 포괄적인 툴킷을 제공합니다. 임베딩 모델, Late Interaction 모델, Reranker를 포함한 다양한 유형의 검색 모델을 통합된 프레임워크워크를 통해 학습, 미세 조정 및 배포하는 데 따르는 어려움을 해결합니다.

How it works

이 프로젝트는 세 가지 주요 기능을 통해 검색 모델의 전체 수명 주기를 구현합니다:

  • Training and Fine-tuning: BERT-based 및 LLM-based 임베딩 모델, ColBERT-style Late Interaction 모델, Reranker의 엔드투엔드 미세 조정을 지원합니다. BGE, BCE, GTE와 같은 인기 있는 오픈소스 모델과 호환됩니다.

  • Distillation: 사용자가 더 크고 성능이 높은 모델(예: 대규모 LLM-based Reranker)로부터 더 작고 효율적인 모델(예: BERT-base 또는 0.5B LLMs)로 지식을 전이할 수 있게 합니다.

  • Inference: 경량 Python 라이브러리 (rag-retrieval)를 포함하여 다양한 Reranker 모델을 호출하는 통합 인터페이스를 제공하며, 긴 문서를 truncation 또는 splitting을 통해 처리하여 점수를 최적화합니다.

Who it’s for

RAG 시스템을 구축하는 개발자와 연구자로서, 맞춤형 학습 또는 모델 압축을 통해 검색 컴포넌트의 정확도와 효율성을 향상시키고자 하는 분들입니다.

Highlights

  • Unified Framework: 임베딩, Late Interaction, Reranker 모델을 위한 단일 코드베이스.
  • Model Distillation: 대규모 모델을 배포 가능한 작은 버전으로 증류하는 내장 지원.
  • Advanced Algorithms: 출력 벡터 차원을 줄이기 위한 MRL 알고리즘과 Stella 증류 방법을 구현합니다.
  • Scalable Training: DeepSpeed 및 FSDP를 사용한 멀티 GPU 전략 통합 지원.