huangjia2019/rag-in-action

End-to-end RAG system design, evaluation, and optimization. 极客时间RAG训练营,RAG 10大组件全面拆解,4个实操项目吃透 RAG 全流程。RAG的落地,往往是面向业务做RAG,而不是反过来面向RAG做业务。这就是为什么我们需要针对不同场景、不同问题做针对性的调整、优化和定制化。魔鬼全在细节中,我们深入进去探究。

プロジェクト概要

これはコードリポジトリであり、オンライン実践コース(極客時間の『RAGシステム開発実践』)に対応しています。ゼロからDeepSeekベースのRAGシステム、つまり検索拡張生成システムを構築する方法を教えます。簡単に言うと、RAGはAI大規模モデルが外部知識ベースを参照して質問に回答できるようにする技術であり、このリポジトリは完全な実装コードと教育モジュールを提供します。

中核内容:モジュール設計

リポジトリは11のモジュールに分かれており、各モジュールはRAGパイプラインの1つのステップに対応しています。順番に学習してください:

モジュール 機能 主な技術(概略)
00-単純RAG 最も基本的なRAG例 LangChain/LlamaIndex
01-データインポート ドキュメントの読み込みと処理 pandas, PyPDF2
02-テキスト分割 長文を小さなチャンクに分割 LangChain Splitters
03-ベクトル埋め込み テキストをベクトルに変換 HuggingFace, BGE
04-ベクトルストア ベクトルの保存と検索 Milvus, Chroma
05-検索前処理 検索クエリの品質を最適化 Query Expansion
06-インデックス最適化 より良いインデックスを構築 階層インデックス、キーワードインデックス
07-検索後処理 検索結果の再ランク付けとフィルタリング 再ランクモデルなど
08-応答生成 検索結果に基づいて回答を生成 LLM統合(DeepSeekなど)
09-システム評価 システム効果の評価 RAGAS, TruLens
10-高度なRAG より複雑なRAG変種 Graph RAG, Multi-Agent

各モジュールには独立した例と説明ドキュメントがあり、番号順に段階的に実践することをお勧めします。

実行環境と依存関係

  • ハードウェア:
    • GPU版:NVIDIA GPU(推奨:8GB以上のVRAM)、CUDA 11.8+、cuDNN 8+。
    • CPU版:推奨:16GB以上のメモリ、4コア以上のプロセッサ。
  • オペレーティングシステム:Ubuntu 22.04、macOS(Intel / Apple Silicon)、Windows(WSL2+Ubuntuを推奨)。
  • Python:3.10以上。
  • フレームワーク:LangChainとLlamaIndexの2つの主要フレームワークをサポートし、対応するrequirementsファイルを提供し、GPU/CPUに応じてインストールします。

環境設定の例

LangChain + GPU(Ubuntu)を例に:

# 仮想環境の作成(推奨)
python -m venv venv-rag-langchain
source venv-rag-langchain/bin/activate
# またはcondaを使用
conda create -n venv-rag-langchain python=3.10.12
conda activate venv-rag-langchain

# 依存関係のインストール
pip install -r 91-環境-Environment/requirements_langchain_20250413_Ubuntu-with-GPU.txt

READMEには、すべての組み合わせ(CPU/GPU × LangChain/LlamaIndex × 異なるOS)の完全なインストールコマンドが記載されています。

特別な依存関係

  • PDF処理:追加でrequirements_camelotとシステムレベルの依存関係をインストールする必要があります(Ubuntuではghostscriptとpython3-tkが必要;macOSではbrew install ghostscript tcl-tkが必要;Windowsでは手動でGhostscriptをインストール)。
  • アノテーションツール:requirements_markerを使用してインストールします。

使用手順

  1. 環境に一致するrequirementsファイルを選択し、仮想環境を作成して依存関係をインストールします。
  2. 00-単純RAGから始めて、モジュールの順序に従って学習します。
  3. 各モジュールには独立したサンプルスクリプトと説明があります。

注意事項

  • GPU版ではCUDAドライバが正しいことを確認してください。
  • システムによっては追加のシステムライブラリが必要な場合があります。
  • 依存関係の競合を避けるため、仮想環境の使用を強くお勧めします。
  • 一部のモジュールでは、モデルの追加ダウンロードやAPIキーの設定が必要な場合があります。

よくある質問(READMEに記載)

  • CUDAエラー:NVIDIAドライバとCUDAバージョンを確認してください。
  • メモリ不足:バッチサイズを減らすか、CPU版を使用してください。
  • 依存関係の競合:requirementsファイルに厳密に従い、仮想環境で分離してください。

オープンソースとライセンス

プロジェクトはMITライセンスを採用しており、IssueやPull Requestを歓迎します。


上記の内容はREADMEの原文に完全に基づいており、言及されていない情報は追加されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト