「ベクトルデータベースWeaviate試してみた」まとめ
Weaviateは、ベクトルデータベースの1つで、個人的に興味深い機能が多くいろいろ試して記事にまとめているが、記事が多くなってきたので、多分個々の記事を見てもよくわからないという場合もあると思うので、インデックスとしてまとめる。
新しい記事ができたら追記する予定。
WeaviateのQuick Startを試してみた記事。モジュールの基本的な説明も含めて。
Weaviateは、クラウドもセルフホストなど、複数のデプロイ方法を提供している。それぞれのデプロイ方法や違いなど。
Weaviateが柔軟に使える最も重要な要素、かつ、そのせいで学習コストを高くしてしまっていると個人的に感じた「スキーマ」について。
Weaviate使うならばモジュールを使ってベクトル化も行いたいところではあるが、ベクトル化は自分でやりたいという場合に。
Weaviateのモジュールを使って、RAGそのものもWeaviateだけでやっちゃう。
Weaviateはリランキングモジュールもあるので、RAGの精度向上とかをお手軽にやりたいならば。
自分はWeaviateに興味を持った一番の理由は、当時ハイブリッド検索をやりたいと思っていたため。キーワード検索に必要な日本語のトークナイザーにもちゃんと対応している。(ただし、デプロイ方式により異なるので注意。)
Multiple vectors/Named vectorsを使うと、1つのデータの複数のプロパティをそれぞれベクトル化できる。個人的にこれはかなり強い機能だと思う。
検索時に条件フィルタをかけたり、あと商用サービス利用時のマルチテナントも。
データの登録・更新・削除などのCRUD操作。ここもモジュールと組み合わせるとアトミックに処理ができて強力だと思う。
運用で気になるところ
セルフホストする場合の認証について
Multiple vectors/Named vectorsで、1つのデータの複数プロパティを個別にベクトル化できるのは便利なんだけど、それぞれ検索は個別に行って結果を自分で集約するなりしないといけなかった。
Multiple target vectorsを使うと、1回のクエリで結果を集約して返してくれる。これもかなり強力だと思う。