1万個のベクトルであれば、埋め込み検索は容易です。しかし、1億個のベクトルで100ミリ秒未満のP99を達成しようとすると、それはインフラストラクチャの問題となり、このパターンがそれを解決します。

RAGパイプラインやレコメンデーションシステムは、開発段階では数千のベクトルで問題なく動作します。しかし、埋め込みが5000万個になり、クエリに100ミリ秒未満のレイテンシが必要で、インデックスが継続的に増大し、メモリを大量に消費している場合、問題が生じます。水平方向にスケールし、メモリを効率的に管理し(すべてがRAMに常駐する必要はない)、取り込み中の同時書き込みがクエリパフォーマンスを低下させず、本質的には検索インデックスであるものに対し、インフラストラクチャ費用が月額1万ドルもかからないベクトルデータベースアーキテクチャが必要です。
Explore more design patterns and system architectures
MicrocosmWorksは、チームが既にPostgreSQLを使用しており、500万から1000万未満のベクトルを扱うプロジェクトでは、pgvectorを一般的に推奨しています。これは、新しいインフラコンポーネントの導入を避けられ、ハイブリッドなSQLとベクトルのクエリをネイティブにサポートするためです。1000万ベクトルを超える場合や、高並行性で50ミリ秒未満のp99レイテンシが必要な場合は、Qdrant、Weaviate、Milvusのような専用のベクトルデータベースが、最適化されたインデックスアルゴリズムとGPUアクセラレーションによる検索を通じて、著しく優れたパフォーマンスを提供します。私たちは、クライアントの実際のクエリパターンと成長予測をベンチマークすることで、アーキテクチャレビュー中にこの決定を支援します。
MicrocosmWorks は、効率的な検索のために意味的に関連するデータを共存させながら、ベクトルをノード全体に分散させる hash-based または metadata-based の sharding 戦略を用いて vector database クラスターを設計しています。当社は、関連するシャードに検索リクエストをファンアウトし、グローバルな top-K aggregation を使用して結果をマージするクエリルーティングレイヤーを実装しており、数十のシャードにわたっても sub-100ms のレイテンシを維持しています。当社の監視ダッシュボードは、データセットの規模が拡大するにつれてホットスポットを防止するために、シャードのバランス、クエリの分布、および replication lag を追跡します。
MicrocosmWorks は、scalar quantization(float32 を int8 に削減)と product quantization を適用し、vector storage を4〜8倍に圧縮します。これにより、通常、recall の劣化は2%未満に抑えられます。これは、production 環境にデプロイする前に、お客様の実際の query workload で A/B testing を通じて検証しています。さらに、quantized vectors が最初の candidate retrieval を行い、full-precision vectors は上位結果の最終的な re-ranking にのみ使用される、two-stage retrieval アプローチを実装しています。この hybrid strategy により、お客様は数億個の vector をはるかに低いコストで保存できると同時に、uncompressed operation と区別できない検索品質を維持できます。
MicrocosmWorks は、vector databases をマルチレプリカ構成でデプロイし、write durability のために synchronous replication を使用し、fault tolerance と load balancing のために availability zones 全体に read replicas を分散させています。当社は、health-check-driven leader election を用いた automated failover を設定しており、node failure が発生した場合でも、read unavailability が10秒未満に抑えられ、zero data loss になります。当社の infrastructure-as-code テンプレートには、事前設定されたバックアップスケジュール、point-in-time recovery、および disaster recovery runbooks が含まれており、各 vector database engine に合わせて調整されています。
MicrocosmWorksは、マルチコレクションのベクターデータベースデプロイメントを設計します。これにより、各アプリケーションまたはembeddingモデルは、適切なインデックス構成を持つ独自の独立したコレクションを取得し、コスト効率のために基盤となるクラスターインフラストラクチャを共有します。当社は、アプリケーションコンテキストに基づいてリクエストを正しいコレクションにルーティングし、一致するモデルによるクエリembeddingのような、コレクション固有の前処理を適用する統合されたクエリゲートウェイを実装しています。このマルチテナントベクターデータベースのアプローチは、アプリケーションごとに個別のクラスターを運用する場合と比較して、通常、インフラストラクチャコストを40〜60%削減します。
スケーラブルなベクトルデータベースアーキテクチャは、プロダクション規模でベクトル検索を運用する際の課題に対処します。これには、ノード間でのインデックス分割(シャーディング)、階層型ストレージ(ホットセグメントはメモリ、ウォームセグメントはSSD、コールドセグメントはS3)、ロードバランシングによるクエリルーティング、クエリ負荷とインデックスサイズに基づくオートスケーリングが含まれます。このパターンは、デプロイメントトポロジ、キャパシティプランニング、書き込み/読み込み分離、コスト最適化を網羅しています。これは、RAGとレコメンデーションシステムを大規模で実現可能にするインフラストラクチャ層です。
このアーキテクチャでは、クエリノード(読み込みパス)とデータノード(書き込みパス)を分離したクラスタートポロジでベクトルデータベースノードをデプロイします。インジェスチョンパイプラインは、クエリレイテンシへの影響を避けるために書き込みバッファリングを使用して、埋め込みの生成とバッチアップサートを処理します。クエリルーターは、シャードレベルの並列処理で読み込みレプリカ全体に検索を分散します。階層型ストレージは、アクセス頻度の低いセグメントをメモリからSSD、そしてS3へと移動させ、クエリ時に透過的にロードします。オートスケーリングは、クエリQPSとP99レイテンシに基づいてレプリカ数を調整します。
| レイヤー | テクノロジー |
|---|---|
| ベクトルデータベース | Milvus(分散型), Qdrant(シングルノード/小規模クラスター), Pinecone(マネージド) |
| ストレージバックエンド | MinIO / S3(セグメントストレージ), SSD(ウォームティア), RAM(ホットティア) |
| 連携 | etcd(Milvusメタデータ), Pulsar/Kafka(書き込み先ログ) |
| 埋め込みモデル | OpenAI text-embedding-3-large, Cohere embed-v4, BGE-M3, E5-large-v2 |
| インフラストラクチャ | Kubernetes(EKS/GKE)と、埋め込み用GPUノード、クエリ用メモリ最適化ノード |
| モニタリング | Grafana + Milvus metrics exporter, カスタムP99/再現率ダッシュボード |
| 使用すべきケース | 避けるべきケース |
|---|---|
| ベクトル数が500万を超え、増加しており、水平スケーリングが必要な場合 | ベクトル数が100万未満の場合 — 既存のPostgreSQL上のpgvectorで十分です |
| 100ミリ秒未満のP99クエリレイテンシが必須要件である場合 | 500ミリ秒以上のクエリレイテンシが許容できる場合 — よりシンプルな選択肢が機能します |
| 複数のアプリケーション/テナントがベクトルインフラストラクチャを共有している場合 | 単一のコレクションを持つ単一のアプリケーションの場合 — マネージドサービスを使用してください |
| コスト最適化のために階層型ストレージ(すべてをRAMに置かない)が必要な場合 | 予算がフルマネージドサービスを許容し、ベンダーの料金がその規模で機能する場合 |
MWは、「初日から適切なサイズで、測定に基づいてスケールする」アプローチでベクトルデータベースインフラストラクチャを設計しています。私たちは、推測ではなく、ベクトル数、次元数、インデックスタイプ、目標レイテンシに基づいてキャパシティプランニングを開始します。当社のKubernetes上でのMilvusデプロイメントには、セグメント数、メモリ使用率、クエリレイテンシパーセンタイル、再現率推定値を追跡するGrafanaダッシュボードが含まれています。ビジネス時間中に10倍のトラフィックスパイクを処理し、夜間にはスケールダウンするオートスケーリングMilvusクラスターを実装し、静的プロビジョニングと比較してインフラストラクチャコストを40-60%削減しています。
ファインチューニングなしでLLMにデータへのアクセスを可能にします。RAGは、汎用言語モデルとドメイン固有の知識との間のギャップを埋めます。