Repolode
NovaSearch-Team

NovaSearch-Team/RAG-Retrieval

埋め込み、ColBERT、リランカーモデルを対象に、RAG検索モデルの学習・推論・蒸留を一貫して行うコードベースです。

スター
1,137
フォーク
88
未解決の Issue
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 lossを実装しています。
  • 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 は今もメンテナンスされていますか?
半年以内に更新あり。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 の数値は毎日更新されます。

関連プロジェクト