ベクトルデータベースの基本

RAGの検索を支えるベクトルデータベース。類似度検索の仕組みと代表的なサービスを解説します。

編集・検証: AIパスポートスタディ編集部 公式情報: GUGA 生成AIパスポート公式ページ 制作・検証方針
香月 リサ 先生(笑顔) 香月 リサ 先生

前回 RAG の流れを見たけれど、その中核を支える技術がベクトルDB(ベクトルデータベース)よ。
今日はそれをじっくり見ていきましょう。

戸倉 ジャスミン(あせる) 戸倉 ジャスミン

普通のデータベースとどう違うんですか?

香月 リサ 先生(普段) 香月 リサ 先生

従来のデータベース(RDB)はキーワードの完全一致や部分一致で検索するわよね。
ベクトルデータベースは、テキストを埋め込みベクトルに変換して格納し、意味的な類似度で検索するの。

深見 つむぎ(普段) 深見 つむぎ

たとえば「車のトラブル」で検索したら、「自動車の故障」や「クルマの調子が悪い」という文書もヒットする、ということですよね。
キーワードが一致しなくても、意味が近ければ検索できるのが強みです。

雪村 ましろ(普段) 雪村 ましろ

どうやって「意味が近い」って判断するの?

香月 リサ 先生(普段) 香月 リサ 先生

テキストを埋め込みモデル(Sentence-BERT、OpenAI text-embedding、Cohere Embed など)でベクトルに変換して、ベクトル間のコサイン類似度や距離を計算するの。
値が近いほど意味が似ているわ。

戸倉 ジャスミン(笑い) 戸倉 ジャスミン

すご〜い、方向が似てるベクトル=意味が似てる、って発想か!

香月 リサ 先生(普段) 香月 リサ 先生

そう。
そして数百万・数十億の文書を高速に検索するために、近似最近傍探索(ANN: Approximate Nearest Neighbor)という技法が使われているの。
HNSW や IVF などのアルゴリズムね。

深見 つむぎ(普段) 深見 つむぎ

補足: ANN は完全一致ではなく近似解を返す代わりに、速度を大幅に向上させます。
数ミリ秒で1億件の中から類似候補を見つけられる、という性能です。
代表的なベクトル DB サービスにはPinecone、Weaviate、ChromaDB、Milvus、Qdrant などがあります。
PostgreSQL の pgvector 拡張、Elasticsearch のベクトル検索機能など、既存 DB の拡張としても使えますね。

戸倉 ジャスミン(普段) 戸倉 ジャスミン

じゃあ自由研究で部活規則集を RAG 化するとき、どれ使えばいいですか?

香月 リサ 先生(普段) 香月 リサ 先生

初学者なら Chroma か Qdrant のセルフホスト版がオススメ。
数十〜数百ファイルなら無料で動かせるわ。
業務用途で数千万件超なら Pinecone 等のマネージドサービスが楽ね。

雪村 ましろ(笑顔) 雪村 ましろ

1億件からミリ秒?
すげー、魔法だよ…。
料理のレシピ検索アプリも、これ使えば「玉ねぎ余ってて簡単にできる中華」みたいな自然文でヒットするようになるってこと?

香月 リサ 先生(普段) 香月 リサ 先生

ましろちゃん、いい応用アイデアね。
実際、食材入力から意味的にレシピを検索するサービスや、類似画像で商品検索する EC サイトで、ベクトル DB がフル活用されているわ。

深見 つむぎ(普段) 深見 つむぎ

補足として、ベクトル DB のデータ移行や、複数モデルの埋め込みをどう統合するか、という運用課題もあります。
異なる埋め込みモデルのベクトル空間は直接比較できないので、設計時に選ぶ埋め込みモデルは慎重に決める必要があります。

香月 リサ 先生(普段) 香月 リサ 先生

そう、埋め込みモデルの選択が実務では大きな設計判断。
文の長さ・多言語対応・コスト・精度のバランスで選ぶ、というのが現場ノウハウね。
試験では「ベクトル DB=意味で検索」「コサイン類似度」「代表例の名前」を覚えれば十分よ。

確認クイズ

ベクトルデータベースの特徴として最も適切なものはどれか。

  1. キーワードの完全一致でのみ検索できる
  2. 意味的な類似度に基づいて検索できる
  3. 画像のみを格納できる
  4. リレーショナルデータのみを扱う
こたえを見る

正解: 2. 意味的な類似度に基づいて検索できる

ベクトルデータベースはテキストを埋め込みベクトルに変換し、意味的な類似度(コサイン類似度など)に基づいて検索できるのが特徴です。完全一致・画像限定・RDBのみはいずれも不正確です。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。