NetEase Youdaoが提供する、中国語・英語の検索に対応したRAG向けEmbeddingモデルとRerankerモデル。
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
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 は今もメンテナンスされていますか?
- 半年以内に更新あり。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がそのツリーをたどって回答を検索する、ベクトルDB不要のRAGエンジン。
生の文書を相互リンク付きのLLM管理Markdown Wikiに変換するCLI・Webワークベンチ。長いファイルにはPageIndexのツリー検索を利用します。
チャットボット、RAG、エージェントなどのLLMワークフローを構築し、プロンプトを自動最適化できるPyTorchスタイルのPythonライブラリです。
AIエージェント向けのローカルで証拠を重視したメモリランタイム。書き込みをフィルタリングし、事実の変化を追跡して、検索結果ごとに根拠を示します。