RAGシステム(Retrieval-Augmented Generation)の構築において、ベクトルデータベースの選定は性能とコストに大きく影響する重要な決定です。本記事では、代表的な3つのソリューション(Pinecone、Weaviate、pgvector)の特徴・性能・コストを実践的な観点から比較し、用途別の最適な選択肢について解説します。特に、プロトタイプから本格運用まで、各フェーズでの選定ポイントを具体例とともに紹介します。

ベクトルデータベースとは

ベクトルデータベースは、埋め込みベクトル(embedding vectors)を効率的に保存・検索するために設計されたデータベースです。従来のRDBMSとは異なり、高次元ベクトル間の類似度計算(コサイン類似度、ユークリッド距離など)に特化しており、RAGシステムにおける知識検索の中核を担います。

主要ベクトルデータベースの比較

Pinecone

Pineconeは専用のマネージドベクトルデータベースサービスです。

特徴:

適用場面:

料金例:

// Starter プラン例
- 1M ベクトル(1536次元): 約 $70/月
- 10M ベクトル: 約 $700/月

Weaviate

Weaviateはオープンソースのグラフベースベクトルデータベースです。

特徴:

適用場面:

デプロイメント例:

// Docker での起動
docker run -p 8080:8080 \
  -e AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true \
  -e PERSISTENCE_DATA_PATH='/var/lib/weaviate' \
  semitechnologies/weaviate:latest

pgvector

pgvectorはPostgreSQLの拡張機能として実装されたベクトル検索ソリューションです。

特徴:

適用場面:

実装例:

-- テーブル作成
CREATE TABLE documents (
  id bigserial PRIMARY KEY,
  content text,
  embedding vector(1536)
);

-- インデックス作成
CREATE INDEX ON documents 
USING ivfflat (embedding vector_cosine_ops) 
WITH (lists = 100);

-- 類似検索
SELECT content FROM documents 
ORDER BY embedding <-> '[0.1,0.2,...]' 
LIMIT 5;

性能とコストの比較

検索性能

10M ベクトル(1536次元)での検索パフォーマンス目安:

運用コスト

1M ベクトルを想定した月額コスト比較:

用途別選定ガイド

プロトタイプ・MVP開発

推奨:pgvector

開発速度とコストのバランスが最適。PostgreSQLの豊富なドキュメントとコミュニティサポートにより、迅速な実装が可能です。

中規模本格運用

推奨:Weaviate

柔軟性と性能のバランスが良く、カスタム要件への対応力が高い。オンプレミス運用も可能で、データガバナンス要件を満たしやすいです。

大規模・高負荷運用

推奨:Pinecone

スケーラビリティと安定性に優れ、インフラ運用の負荷を大幅に削減できます。数十億ベクトル規模でも安定した性能を維持します。

まとめ

ベクトルデータベースの選定は、データ規模・性能要件・コスト・運用体制を総合的に評価して決定する必要があります。まずは小規模でpgvectorを試し、要件の明確化とともにWeaviateやPineconeへの移行を検討するアプローチが実用的です。特にRAGシステムでは検索精度と応答速度が直接ユーザー体験に影響するため、十分な検証期間を設けることをお勧めします。