NovaSearch-Team/RAG-Retrieval

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

What it solves

RAG-Retrievalは、検索拡張生成 (RAG) パイプラインの検索段階を最適化するための包括的なツールキットを提供します。埋め込みモデル、Late Interactionモデル、Rerankerを含む、異なる種類の検索モデルのトレーニング、微調整、およびデプロイメントを統一-フレームワークで実現することの難しさを解決します。

How it works

本プロジェクトは、主に以下の3つの機能を通じて、検索モデルのライフサイクル全体を実装しています:

  • Training and Fine-tuning: BERT-basedおよびLLM-basedの埋め込みモデル、ColBERT-styleのLate Interactionモデル、およびRerankerのエンドツーエンドの微調整をサポートします。BGE、BCE、GTEなどの人気のあるオープンソースモデルと互換性があります。
  • Distillation: ユーザーが、より大規模で高性能なモデル (例:大規模なLLM-based Reranker) から、より小規模で効率的なモデル (例:BERT-base or 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戦略の統合サポート。