ベクトルデータベース

Vector Database

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

ベクトルデータベース(Vector Database)とは、高次元のベクトルデータを効率的に格納・検索するために設計された専用のデータベースシステムです。テキストや画像などのデータをEmbeddingモデルでベクトルに変換した後、類似度に基づく高速な検索を可能にします。RAG(検索拡張生成)システムの中核インフラとして不可欠な技術です。

表:ベクトルデータベースの要点まとめ
ひとことで言うと文章の意味を表すベクトルを保存し、意味が近いものを高速に探すDB。
どこで使うRAGの検索部分、類似文書・類似画像の検索、おすすめ表示。
注意点埋め込みモデルを変えると全件作り直し。更新の運用設計が必要。

ベクトルデータベースの仕組み

ベクトルデータベースは、ANN(近似最近傍探索)アルゴリズムを使用して高速な類似度検索を実現します。代表的なインデックス手法にはHNSW(Hierarchical Navigable Small World)、IVF(Inverted File Index)、PQ(Product Quantization)があります。これらにより、数百万〜数十億のベクトルの中から、ミリ秒単位で最も類似するベクトルを見つけることが可能です。

図:ベクトル検索のしくみ
1文書を分割チャンクという小片に
▶
2ベクトル化意味を数値の並びに
▶
3DBに保存索引を作って高速化
▶
4質問も数値化同じ方法で変換
▶
5近い順に返す上位N件を取り出す

主要なベクトルデータベースと選択基準

代表的なベクトルデータベースには、Pinecone(マネージドサービス)、Weaviate(オープンソース)、Qdrant(オープンソース)、Milvus(オープンソース)、Chroma(軽量)、pgvector(PostgreSQL拡張)などがあります。選択の際は、スケーラビリティ、クエリ性能、メタデータフィルタリング機能、運用の容易さ、コスト、ハイブリッド検索(ベクトル検索+全文検索)のサポートなどを考慮します。