NetEase Youdao가 개발한 중국어·영어 임베딩 및 리랭커 모델로, RAG 애플리케이션의 검색에 적합합니다.
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
Python 3.8로 conda 환경을 만듭니다
conda create -n rag-retrieval python=3.8 && conda activate rag-retrieval - 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 통계는 매일 갱신됩니다.
관련 프로젝트
BAAI의 검색 툴킷으로, BGE 임베딩 및 리랭커 모델과 검색·RAG를 위한 학습, 평가, 튜토리얼을 제공합니다.
긴 문서의 계층형 트리 인덱스를 구축하고, LLM이 트리를 탐색해 답을 찾는 벡터리스 RAG 엔진입니다.
원문을 상호 연결된 LLM 관리 Markdown 위키로 구성하는 CLI 및 웹 워크벤치로, 긴 파일에는 PageIndex 트리 검색을 사용합니다.
자동 프롬프트 최적화를 지원하며 챗봇, RAG, 에이전트 같은 LLM 워크플로를 구축하는 PyTorch 스타일의 Python 라이브러리입니다.
AI 에이전트를 위한 로컬 증거 우선 메모리 런타임으로, 쓰기를 필터링하고 사실의 시간에 따른 변경을 추적하며 회수된 결과의 근거를 설명합니다.