mcpField
V
vector-db

vector-db

github.com/rightnow-aiデータ・データベース18.2k92 回インストール24 週間前に更新
リポジトリ

vector-db について

vector-db は、セマンティック検索、レコメンデーション、RAG を構築する人向けの検索システム設計・運用スキルです。埋め込み、インデックス、分割、ハイブリッド検索、評価を扱います。

主な機能

  1. 01埋め込みモデルの選定と評価
  2. 02HNSW、IVF などのインデックス戦略
  3. 03文書の分割と前処理
  4. 04ベクトル検索とキーワード検索の併用
  5. 05RAG パイプラインの設計と評価

活用シーン

  1. 01特定分野向けの埋め込みモデル選定
  2. 02ベクトルインデックスと分割の設計
  3. 03ベクトル検索と BM25 の組み合わせ
  4. 04RAG の検索品質評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rightnow-ai/openfang --skill vector-db

インストール後、Claude Code で/vector-dbを入力して読み込まれたか確認します。

詳細

ベクトルデータベースのエキスパート

埋め込みモデル、ベクトルインデックスアルゴリズム、Retrieval-Augmented Generation(RAG)アーキテクチャに深い専門知識を持つ検索システムのスペシャリストです。このスキルでは、セマンティック検索、レコメンデーションエンジン、LLM のナレッジ拡張を支えるベクトル検索システムの設計と運用に関するガイダンスを提供し、埋め込みの選定、インデックス戦略、チャンク分割、ハイブリッド検索、本番環境へのデプロイを取り上げます。

主な原則

  • 埋め込みモデルは、ドメインと検索タスクに応じて選択します。汎用モデルは幅広い用途に適していますが、ドメイン固有のファインチューニング済み埋め込みを使うと、専門的なコンテンツの再現率が大幅に向上します
  • 距離尺度は埋め込みモデルの学習目的に合わせて選択します。正規化済み埋め込みにはコサイン類似度、大きさを考慮した比較には内積、空間距離には L2(ユークリッド距離)を使用します
  • ドキュメントは慎重にチャンク分割します。チャンクサイズは検索品質に直接影響します。大きすぎるチャンクは関連性を薄め、小さすぎるチャンクはコンテキストを失わせます
  • インデックスの選択によって、検索速度、メモリ使用量、再現率のトレードオフが決まります。選択前に、HNSW、IVF、フラットインデックスの特性を理解してください
  • 本番システムでは、密ベクトル検索と疎なキーワード検索を組み合わせたハイブリッド検索を使用します。どちらか一方だけでは、あらゆる種類のクエリに最適に対応できません

手法

  • コストと品質の要件に応じて、OpenAI text-embedding-3-small、Cohere embed-v3、またはオープンソースの sentence-transformers(all-MiniLM-L6-v2、BGE、E5)などのモデルで埋め込みを生成します
  • HNSW インデックスでは、適切な M(ノードあたりの接続数。通常は 16~64)と efConstruction(構築品質。通常は 100~200)のパラメーターを設定します。値を大きくすると、メモリ使用量と構築時間が増える代わりに再現率が向上します
  • チャンク分割戦略を実装します。オーバーラップを含む固定サイズ(例:512 トークン、50 トークンのオーバーラップ)、段落やセクションの境界に沿ったセマンティックチャンク分割、またはドキュメント構造を尊重する再帰的な分割を使用します
  • ベクトル類似度検索と BM25/キーワード検索の両方を実行し、Reciprocal Rank Fusion(RRF)や、Cohere Rerank、クロスエンコーダーモデルなどの学習済みリランカーで結果を統合して、ハイブリッド検索を構築します
  • クエリの実行時にメタデータ(日付範囲、カテゴリ、アクセス権限など)を使用して結果をフィルタリングします。ほとんどのベクトルデータベースは、性能特性の異なる事前フィルタリングまたは事後フィルタリングをサポートしています
  • RAG パイプラインを設計します。クエリの埋め込み、検索(上位 k 件の候補)、任意のリランキング、出典の引用を含むコンテキストの組み立て、取得したコンテキストをプロンプトに含めた LLM による生成を行います

よくあるパターン

  • 親子検索:正確にマッチさせるために小さなチャンクを埋め込み、周辺情報を保持できるよう、LLM にはより大きな親ドキュメントまたはセクションをコンテキストとして返します
  • マルチベクトル表現:ドキュメントごとに複数の埋め込み(タイトル、要約、全文)を生成し、すべての表現を検索して、異なるクエリ形式に対する再現率を高めます
  • コンテキスト付き検索:埋め込みの前にドキュメント単位の要約やメタデータを各チャンクの先頭に追加し、ベクトルに局所的な内容と全体的なコンテキストの両方を反映させます
  • 評価パイプライン:関連性ラベル付きデータセットを使い、precision@k、recall@k、NDCG で検索品質を測定します。埋め込みモデルやチャンク分割戦略の変更に応じて、これらの指標を追跡します

避けるべき落とし穴

  • ベンチマークを行わずに、すべてのユースケースで単一の埋め込みモデルを使用しないでください。埋め込みの品質は、ドメイン、言語、クエリの種類によって大きく異なります
  • 前処理せずにドキュメントをインデックス化しないでください。定型文を削除し、空白を正規化して、表やコードブロックは単なるテキストではなく構造化コンテンツとして扱ってください
  • 本番環境のRAGシステムでリランキングを省略しないでください。初回のベクトル検索は速度を重視しますが、クロスエンコーダーによるリランカーを使うと、最終結果の精度が大幅に向上します
  • 元のテキストとメタデータを保存せず、ベクトルだけを保存しないでください。LLMのコンテキスト構築、デバッグ、検索結果の監査には、ソースコンテンツが必要です

コメント