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

ベクトルデータベースとは、データを「意味を表す数字の並び(ベクトル)」として保存し、意味の近さで検索できる専用のデータベースです。文字の完全一致ではなく、内容が似ているものを探せるのが特徴で、生成AIと社内データを結びつける土台としてよく使われます。

普通のデータベースとの違い

従来のデータベースは、入力した言葉と文字がぴったり一致するものを探します。一方ベクトルデータベースは、文章や画像をAIが「埋め込み」という数値の並びに変換し、その数字どうしの近さ、つまり意味の近さで探すのが特徴です。だから「車」で調べたときに「自動車」「クルマ」のように、言葉が違っても意味が近ければ見つけられます。これを意味検索と呼びます。

何の役に立つのか

いちばんの活躍どころが、RAG(検索拡張生成)です。これは、社内文書などから質問に関係する部分を探し出し、それをAIに渡して答えさせる仕組みのこと。その「関係する部分を意味で探す」役割を、ベクトルデータベースが担います。PineconeやWeaviate、Chromaなど多くの製品があり、自社の資料を踏まえてAIに正確に答えさせたい場面で土台になります。

Topic言葉が違っても意味で探せる

普通の検索は「文字が一致するもの」しか見つけられません。ベクトルデータベースのすごいところは、「意味が近いもの」を探せる点です。たとえば「犬」で調べると「子犬」「ワンちゃん」「ペット」のように、表記が違っても意味の近いものまで拾えます。AIが社内文書を踏まえて的確に答えられるのは、この「意味で探す」仕組みが裏で働いているからです。

ベクトルデータベースに関するよくある質問

専用の製品を導入しないと使えませんか?
必ずしも必要ではありません。たとえばPostgreSQLには「pgvector」という拡張があり、公式の説明では「ベクトルを、ほかのデータと一緒に保存できる」ものです。データの整合性を守る仕組みや、ある時点まで巻き戻す復旧、ほかの表との結合といった、ふだんのデータベースの機能をそのまま使えます。まず小さく試す段階では、いま使っているデータベースの拡張で足りることも少なくありません。扱う量や求める速さが問題になってから専用製品を検討する、という順序が取れます。
意味で探せるなら、必要な資料は必ず見つかりますか?
探し方によります。全部を厳密に照合する方法は取りこぼしがない代わりに遅く、データが増えるほど、近いものを手早く見つける「近似」のやり方に頼ることになります。pgvectorの説明では、既定は取りこぼしのない厳密な検索で、近似の索引を作ると「速度と引き換えに再現率をいくらか手放す」ことになり、しかも「ふつうの索引と違い、近似の索引を追加すると同じ問い合わせでも結果が変わる」と注意されています。つまり速さを優先するほど取りこぼしは起こりえます。AIの回答が的外れなときは、AIの賢さより先に、探す側の設定を疑ってみてください。

あわせて読みたい記事