0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ベクトルデータベース備忘録

Posted at

噂には聞くベクトルデータベース。なかなか使う機会がないのですが、なにやらとてもよさそうなのでちょっと調べたり試したりしてみました。

なおおためしのコードは Milvus を使いましたが、 ほとんどClineに書いてもらいました^^

わかったこと

  • ベクトルデータベースは「ベクトルで管理しているデータの検索を容易にする」ことを主な目的として使用するもの
  • ベクトル検索できる主なメリットは(ベクトル化の基準による)近傍検索。つまり(ベクトル化の基準による)似たデータ探し
  • ということは、大量のデータの、ベクトル化した値を、永続的に保持して活用したい場合に使用するとよさそう
  • ベクトル化をデータベース側がやってくれるわけではない。格納データのベクトル化はアプリケーション側で行う
  • 似たデータを探すのが得意、といえばOpenSearchだが、それとの差別化は?→OpenSearchにもベクトル検索機能はある(らしい)が、ベクトル検索だけを使うならベクトルデータベースのほうが早い(らしい)
  • ベクトルデータベースで一番有名なのは Milvus のようだが、データベースの特性に応じて得意分野がありそう。

製品比較

製品名 OSS ホスティング形態 特徴
Milvus Yes 自前ホスティング / マネージド(Zilliz Cloud) 分散型で水平スケーリングが可能。IVF、PQ、HNSWなど複数のインデックスタイプをサポートし、非構造化データに最適。
Qdrant Yes 自前ホスティング / SaaS(Qdrant Cloud) Rust製の高速な類似度検索エンジン。Docker対応で迅速な展開が可能。
Weaviate Yes 自前ホスティング / マネージド(Weaviate Cloud) グラフベースのアプローチとGraphQLインターフェースを採用。メタデータ統合が容易で柔軟なデータ管理が可能。
Pinecone No マネージドサービスのみ 完全管理型サービス。インフラ管理の負担がなく、シンプルなAPI統合と高いスケーラビリティを実現。
ChromaDB Yes 自前ホスティング LangChainやLlamaIndexとの統合が容易。シンプルなAPIにより迅速なプロトタイピングや小~中規模プロジェクト向け。

※この内容の調査と表化はChatGPTにやってもらいました。Dockerで使えるのは Qdrant だけであるかのような記述になっていますが、オープンソースのものはすべてDocker上で動かそうと思えば動かせると思います。なおサンプルコードでは Milvus をDocker上で動かしています。

参考サイト

所感

  • 現時点ではベクトル検索をやるなら「ベクトルデータベース」を名乗るものに1日の長がありそうです。ただなんでもできるというのは強いので、今後OpenSearchがベクトル検索機能を強化していった場合はどうなるかわからないですね。実際に使うタイミングでその時の状況を改めて調べるのがよさそうです
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?