Repolode
NovaSearch-Team

NovaSearch-Team/RAG-Retrieval

임베딩, ColBERT, 리랭커 모델을 아우르는 RAG 검색 모델의 학습, 추론 및 증류를 위한 엔드투엔드 코드입니다.

스타
1,137
포크
88
열린 이슈
3
마지막 커밋
2개월 전

어떤 프로젝트인가요?

RAG-Retrieval은 검색 증강 생성에 사용되는 검색 구성 요소를 파인튜닝하고 서빙하며 증류하는 코드베이스입니다. BERT 기반 및 LLM 기반 임베딩 모델, late-interaction 방식의 ColBERT 모델, BERT 기반 및 LLM 기반 리랭커 모델의 파인튜닝을 지원하며, bge, bce, gte 계열과 같은 오픈소스 모델과 호환됩니다.

추론을 위해 프로젝트는 다양한 리랭커 모델을 하나의 인터페이스로 호출할 수 있는 경량 Python 패키지 rag-retrieval을 제공합니다. 긴 문서는 잘라내거나 분할한 뒤 최대 점수를 취하는 방식으로 처리하며, 기본 리랭커 클래스를 서브클래싱해 새 랭킹 모델을 추가할 수 있습니다.

저장소에는 임베딩 및 리랭커 모델을 위한 증류 기능도 포함되어 있어, 큰 LLM 기반 모델의 지식을 0.5B LLM이나 BERT-base 모델처럼 더 작은 모델로 옮길 수 있습니다. DeepSpeed와 FSDP를 통한 멀티 GPU 학습을 지원하며, 임베딩 코드에는 차원 축소 벡터를 위한 MRL이 구현되어 있습니다.

핵심 기능

  • 01BERT 기반 및 LLM 기반 임베딩 모델, ColBERT 모델, 리랭커를 파인튜닝합니다.
  • 02다양한 리랭커 모델을 호출할 수 있는 통합 Python 패키지를 제공합니다.
  • 03긴 문서를 잘라내거나 분할한 뒤 최대 점수를 취하는 방식으로 처리합니다.
  • 04큰 LLM 기반 임베딩 또는 리랭커 모델을 더 작은 모델로 증류합니다.
  • 05차원 축소 임베딩을 위한 MRL 손실을 구현합니다.
  • 06DeepSpeed와 FSDP를 사용한 멀티 GPU 학습을 지원합니다.

활용 사례

  • 도메인별 검색 데이터로 오픈소스 임베딩 모델을 파인튜닝합니다.
  • 단일 Python 인터페이스를 통해 RAG 파이프라인에 리랭커 단계를 추가합니다.
  • 대규모 LLM 리랭커를 더 작은 BERT 모델로 증류해 지연 시간이 짧은 서빙을 구현합니다.
  • 사용자 지정 데이터셋에서 ColBERT 방식의 late-interaction 검색을 실험합니다.

빠른 시작

  1. 1

    Python 3.8로 conda 환경을 만듭니다

    conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval
  2. 2

    reranker 추론용 PyPI 패키지를 설치합니다

    pip install rag-retrieval

사용 전 알아둘 점

  • 학습 환경을 설정하려면 requirements를 설치하기 전에 CUDA 호환 PyTorch를 로컬에 수동으로 설치해야 합니다.
  • 학습 코드는 모델 유형별로 하위 디렉터리에 구성되어 있으므로 각 워크플로에 자체 README가 필요합니다.

포함된 컬렉션

토픽

자주 묻는 질문

RAG-Retrieval은(는) 무엇인가요?
임베딩, ColBERT, 리랭커 모델을 아우르는 RAG 검색 모델의 학습, 추론 및 증류를 위한 엔드투엔드 코드입니다. RAG-Retrieval은 검색 증강 생성에 사용되는 검색 구성 요소를 파인튜닝하고 서빙하며 증류하는 코드베이스입니다. BERT 기반 및 LLM 기반 임베딩 모델, late-interaction 방식의 ColBERT 모델, BERT 기반 및 LLM 기반 리랭커 모델의 파인튜닝을 지원하며, bge, bce, gte 계열과 같은 오픈소스 모델과 호환됩니다.
RAG-Retrieval은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
RAG-Retrieval은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
RAG-Retrieval은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. RAG-Retrieval의 마지막 커밋은 2026년 8월 28일입니다.
RAG-Retrieval은(는) 어디에 사용할 수 있나요?
도메인별 검색 데이터로 오픈소스 임베딩 모델을 파인튜닝합니다. 단일 Python 인터페이스를 통해 RAG 파이프라인에 리랭커 단계를 추가합니다. 대규모 LLM 리랭커를 더 작은 BERT 모델로 증류해 지연 시간이 짧은 서빙을 구현합니다. 사용자 지정 데이터셋에서 ColBERT 방식의 late-interaction 검색을 실험합니다.
RAG-Retrieval는 어떻게 설치하나요?
Python 3.8로 conda 환경을 만듭니다: conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval reranker 추론용 PyPI 패키지를 설치합니다: pip install rag-retrieval
RAG-Retrieval은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/NovaSearch-Team/RAG-Retrieval

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트