目次
ソフトウェアやサーバーによって用語って変わりますよね? ベクトルデータベースのWeaviateも、私がこれまで触ってきたものとは違う用語が使われているので、いくつかの用語を紹介しようと思います。
データオブジェクト
1件のデータのことをデータオブジェクトと呼びます。 データオブジェクトはプロパティ(名前とデータ型)を持っており、コレクション(クラスと呼ばれることもある)と呼ばれるデータの集合(RDBでいうテーブルのようなもの)に属します。 データオブジェクトはJSONドキュメントとして表現されます。 データオブジェクトを登録する場合は、コレクションに対して登録します。
ベクトルデータベースなので、データオブジェクトに直接自分で作成したベクトルを含めて登録することもできますが、Weaviateでは、ベクトライザーと呼ばれるベクトルエンベディングをWeaviateのモジュールが生成してくれる機能があります(OpenAIのAPIを利用したエンベディングなど、さまざまなエンベディングのAPIを呼ぶ設定ができるようになっている)。 コレクションの作成時にこのベクトライザーを定義しておくと、コレクションにデータを登録するとベクトルを生成して検索できるようにしてくれます。
コレクション
RDBでいうテーブルのようなものです。 コレクションに対してデータオブジェクトを登録、更新などを行えます。 コレクションにはスキーマが定義されており、コレクションに属するデータオブジェクトがどのようなプロパティを持っているのかがわかります。
コレクション作成時にスキーマを定義することもできますが、チュートリアルなどでは、自動生成されるスキーマを利用している場合があります。 また、上記でも説明したようにベクトライザーと呼ばれるベクトル生成のためのモジュールの設定などもこちらで定義できます。
コレクションごとにベクトル空間があり、その中でベクトル検索ができるようになっています。 また、バージョン1.24からは、名前付きベクトルと呼ばれる機能が追加され、1つのコレクションに対して複数のベクトル空間を作ることもできるようになっています。
ベクトル以外にも、転置インデックスの設定もできるようになっており、いわゆるハイブリッド検索(転置インデックスを利用した検索+ベクトル検索)も可能になっています。
Weaviateの公式ドキュメント
今回紹介したデータの概念などに関するWeaviateのドキュメントはData structure | Weaviateにあります。
図などもありますので、参考にしていただければと。
最後に
日本のコミュニティとしてConnpassにグループを作りました。
どうやってイベントをやるかはまだ考え中ですが、興味がある方は登録しておいていただければと。
どんな情報、どんなイベントがあれば興味をもっていただけるか?Weaviateを使ってみようと思うけど何から始めよう?など疑問に思うことがあればXやブログのコメントなどをいただければと思います。
comments powered by Disqus
See Also by Hugo
- Weaviate入門(ベクトルデータベース、ベクトル)
- Weaviateで日本語を利用した検索という話をしました
- ElasticsearchのアーキテクチャとStateless / Serverless
- 検索対象のデータとデータソース(検索システムに関する妄想その3)
- Elasticsearch 1.6.0リリース(日本語訳)