ベクトルデータベースとは
ベクトルデータベースとは、データを「意味を表す数字の並び(ベクトル)」として保存し、意味の近さで検索できる専用のデータベースです。文字の完全一致ではなく、内容が似ているものを探せるのが特徴で、生成AIと社内データを結びつける土台としてよく使われます。
普通のデータベースとの違い
従来のデータベースは、入力した言葉と文字がぴったり一致するものを探します。一方ベクトルデータベースは、文章や画像をAIが「埋め込み」という数値の並びに変換し、その数字どうしの近さ、つまり意味の近さで探すのが特徴です。だから「車」で調べたときに「自動車」「クルマ」のように、言葉が違っても意味が近ければ見つけられます。これを意味検索と呼びます。
何の役に立つのか
いちばんの活躍どころが、RAG(検索拡張生成)です。これは、社内文書などから質問に関係する部分を探し出し、それをAIに渡して答えさせる仕組みのこと。その「関係する部分を意味で探す」役割を、ベクトルデータベースが担います。PineconeやWeaviate、Chromaなど多くの製品があり、自社の資料を踏まえてAIに正確に答えさせたい場面で土台になります。
Topic言葉が違っても意味で探せる
ベクトルデータベースに関するよくある質問
- 専用の製品を導入しないと使えませんか?
- 必ずしも必要ではありません。たとえばPostgreSQLには「pgvector」という拡張があり、公式の説明では「ベクトルを、ほかのデータと一緒に保存できる」ものです。データの整合性を守る仕組みや、ある時点まで巻き戻す復旧、ほかの表との結合といった、ふだんのデータベースの機能をそのまま使えます。まず小さく試す段階では、いま使っているデータベースの拡張で足りることも少なくありません。扱う量や求める速さが問題になってから専用製品を検討する、という順序が取れます。
- 意味で探せるなら、必要な資料は必ず見つかりますか?
- 探し方によります。全部を厳密に照合する方法は取りこぼしがない代わりに遅く、データが増えるほど、近いものを手早く見つける「近似」のやり方に頼ることになります。pgvectorの説明では、既定は取りこぼしのない厳密な検索で、近似の索引を作ると「速度と引き換えに再現率をいくらか手放す」ことになり、しかも「ふつうの索引と違い、近似の索引を追加すると同じ問い合わせでも結果が変わる」と注意されています。つまり速さを優先するほど取りこぼしは起こりえます。AIの回答が的外れなときは、AIの賢さより先に、探す側の設定を疑ってみてください。