Re Reference AI

インフラ

Weaviateとは

スキーマ定義とハイブリッド検索(ベクトル+キーワード)を備えたオープンソースのベクトルデータベース

ベクトルデータベース検索

ひとことで言うと

ベクトル検索とキーワード検索を組み合わせて使える、オープンソースのデータベース。

概要

Weaviateは、オープンソースで提供されるベクトルデータベース。 ベクトル同士の類似検索に加え、キーワードベースの検索を組み合わせたハイブリッド検索や、オブジェクト間の関連を扱うスキーマ定義の仕組みを備える。セルフホストとマネージドクラウドの両方の形態で利用できる。

背景

ベクトル検索とキーワード検索を併用したいニーズや、オブジェクト間の関係を扱いたいニーズに応えるため、Weaviateはスキーマ定義とハイブリッド検索機能を備えたオープンソースのベクトルデータベースとして開発された。

歴史

2019年: SeMI Technologies(後のWeaviate)が、オープンソースのベクトルデータベース「Weaviate」を公開。

コード例

Weaviate Python Clientによるベクトル検索(概念例)

import weaviate

client = weaviate.connect_to_local()
collection = client.collections.get("Article")

collection.data.insert({"title": "Example", "body": "example body"})

response = collection.query.near_text(query="example query", limit=3)
print(response.objects)

client.close()

利点

  • ベクトル検索とキーワード検索を組み合わせたハイブリッド検索に対応する
  • セルフホストとマネージドサービスの両方を選択できる
  • GraphQL/REST APIを通じてオブジェクト間の関連(クロスリファレンス)を扱える

欠点

  • スキーマ設計等、導入時に検討すべき設定項目が比較的多い
  • 大規模運用時にはクラスタ構成の設計・運用知識が求められる
  • モジュール(ベクトル化手法等)の選択肢が多く、初期構成の検討に時間を要することがある

比較

  • ベクトルデータベースWeaviateはハイブリッド検索やスキーマ定義を備えるオープンソースのベクトルデータベースの1つ
  • PineconeWeaviateがセルフホストとマネージドの両方を選べるのに対し、Pineconeはフルマネージドのみで提供される
  • Milvusいずれも大規模なベクトルデータを扱えるオープンソース製品だが、Weaviateはハイブリッド検索とスキーマ定義を、Milvusは分散処理によるスケールを重視する

関連用語

ベクトルデータベースHNSWEmbeddingPineconeMilvus

よくある質問

ハイブリッド検索とは何か?

ベクトルによる意味的な類似検索と、キーワードによる全文検索(BM25等)を組み合わせて検索結果を算出する方式のことで、Weaviateはこれを標準機能として提供している。

Weaviateはセルフホストとマネージドのどちらを選べる?

どちらも選択できる。オープンソース版を自社インフラで運用する形と、マネージドクラウドサービスを利用する形の両方が用意されている。

参考文献