jolibrain/colette
Multimodal RAG to search and interact locally with technical documents of any kind
Colette – オンプレミス型ビジュアルRAGプラットフォーム
何であるか – Coletteはオープンソースでオンプレミス型の検索拡張生成(RAG)システムであり、外部APIにデータを送信せずに技術文書をインデックス化・検索できます。特徴的なのは「ビジュアルRAG(V-RAG)」:ドキュメントの各ページを画像として扱うため、表、図、図面、レイアウトが完全に保持され、ビジュアル埋め込みで検索可能になります。
主な機能
- ビジュアルRAG(V-RAG) –
gme-Qwen2-VLなどのビジョン埋め込みモデルと、Qwen3-VLなどのマルチモーダルLLMを使用して、ページ単位の画像を埋め込み、検索します。 - ハイブリッド検索 – ChromaDB/ColDBのベクトル検索エンジンとTantivyのBM25語彙検索エンジンを並列で実行し、製品コードや部品番号などに有効です。
- HyDE(仮想文書埋め込み) – LLMで短い「仮想的な回答」を生成し、元の質問ではなくその回答を埋め込みます。これにより、技術的な質問でのリコール率が向上します。
- テキストのみRAG – 画像処理が不要な文書向けに、
unstructured+langchainを使用した従来のパイプライン。 - 複数バックエンドLLM対応 – HuggingFace、vLLM、Ollama、およびカスタム
vllm_clientに対応。 - 画像生成 –
diffusersを介してStable Diffusionと統合し、視覚的出力を可能にします。 - レイアウト検出 – ページを自動的に
text、figure、table、full_pageの領域に切り分け、結果の細かいフィルタリングを可能にします。 - Docker化デプロイ –
colette_gpu、colette_gpu_server、colette_uiの実行可能イメージと、ビルド・公開用のCIパイプラインを提供。
アーキテクチャの概要 – READMEには、3つの主要コンポーネントを示す図があります:(1) インジェスト(PDF → 画像切り取り → ビジョン/テキスト埋め込み)、(2) ストレージ(ベクトルDB + BM25インデックス)、(3) 推論(LLMが取得したコンテキストを使って回答を生成)。すべてのコンポーネントはJSONファイルで構成可能です。
一般的なワークフロー
- インストール – Docker(推奨)またはPython仮想環境。Python ≥ 3.12、CUDA ≥ 12.1、24GB VRAM以上のGPU(または設定で軽量モデルを使用可能)が必要。
- インデックス作成 –
colette_cli index …でPDFフォルダを指定。システムは画像切り取りを行い、ビジョン/テキストエンコーダーを実行し、埋め込みを保存します。 - クエリ –
colette_cli chat …またはPython API(JSONApi、APIData)で質問を送信。システムは関連する画像/テキストチャンク(埋め込み、BM25、またはハイブリッド)を取得し、LLMに渡してテキスト回答とソース画像を返します。
技術スタック
- 言語:Python(コアロジック、CLI、API)、Bash(Dockerラッパー)
- ビジョンモデル:Qwenスタイルのマルチモーダルエンコーダー
- LLMバックエンド:HuggingFace Transformers、vLLM、Ollama
- ベクトルストア:ChromaDBまたはカスタム
coldb - 語彙検索:Tantivy(RustベースのBM25)
- コンテナ化:Docker + Docker-Compose;CIはJenkinsで実行
- オプションのGPU加速画像生成:Diffusers(Stable Diffusion)
セットアップのしやすさ – 中程度から高め。Dockerイメージが大部分の依存関係を抽象化していますが、デフォルト設定では高スペックGPUが必要です。x86、ARM、DGXマシン向けの仮想環境セットアップ用ヘルパー スクリプト、詳細なCLI例、デバッグ用Jupyterノートブックも提供されています。
誰が使うべきか
- 自社の技術マニュアル、航空宇宙文書、図面など、視覚的レイアウトが重要で、データを外部に漏らしてはならない企業や研究グループ。
- 極めて厳格な機密性を守らなければならない社内知識ベースアシスタントを開発するチーム。
- マルチモーダルRAGパイプラインを実験したい開発者で、すぐに使えるカスタマイズ可能なスタックを求める人。
成熟度 – Jolibrain、CNES、Airbusが支援するプロジェクトで、CIパイプライン、Dockerイメージ、比較的充実したドキュメントサイトを備えています。オンプレミス利用にはプロダクションレベルで使用可能ですが、ハードウェア要件(24GB VRAM以上)により、ワークステーションクラスまたはサーバークラスのGPUに限定されます。
クイックスタート(Docker)
# イメージを取得
docker pull docker.jolibrain.com/colette_gpu:latest
# フォルダを作成
mkdir -p models app_colette docs/pdf
# PDFをインデックス化
docker run --gpus all -v $(pwd):/rag -v $(pwd)/docs/pdf:/data -v $(pwd)/models:/app/models \
docker.jolibrain.com/colette_gpu \
bash -c "colette_cli index --app-dir /rag/app_colette --data-dir /data --config-file src/colette/config/vrag_default_lite.json --models-dir /app/models"
# 質問を投げる
docker run --gpus all -v $(pwd):/rag -v $(pwd)/app_colette:/app/app_colette -v $(pwd)/models:/models \
docker.jolibrain.com/colette_gpu \
bash -c "colette_cli chat --app-dir app_colette --models-dir /models --msg \"What are the identified sources of errors of a RAG?\""
リソース
関連
- プロジェクト
- プロジェクト