概要
ベクトルデータベースなるものの存在を知り、
どんなものがあるのかを少しだけ調べてみました。
使用目的
機械学習モデル例えば画像認識モデルは、
基本的にバックボーンに通したデータから特徴量ベクトル(512次元とか)を抜き取り、
それらに対して何かしらの回帰やクラシフィケーションを行います。
もしくは類似画像を検索するのであれば、その特徴量ベクトルに対して類似検索をかけていきます。
そのときに、それらの大量のベクトルの中から類似したベクトルをとってくるためのデータベースを用意する必要があり、
その検索のためにベクトルデータベースは使われます。
2015年あたりからこのようなデータベースについて特化したプロダクトなどがいくつか生まれました。
ChatGPTが誕生し、OpenAIのAPIを使って彼らのLLMからEmbeddingベクトルを取得するようなシーンが増え、
結果としてこのベクトルデータベースについても需要が大きくなっている様です。
主要なベクトルデータベースたち
他にもたくさんありますが、一旦4つのみピックアップしました。
PineCorn (SaaS, API)
https://www.pinecone.io/
https://dev.classmethod.jp/articles/pinecone-overview/
Weaviate (OSS, can run locallly)
https://weaviate.io/
https://dev.classmethod.jp/articles/weaviate-overview/
Chroma (Locally, on memory)
RediSearch Module (Locally, on memory)
まとめ
今回はベクトルデータベースについて少しだけ調べて備忘録として残しました。
今回はこの辺で。