目次
Weaviateって聞いたことありますか?
Goで書かれたOSSのベクトルデータベースです(GitHubリポジトリはこちら)。 昨年、Kagomeを使えるようにPRを送って、発表をしてきました。
改めて、Weaviateはどんなものなのか?というのを少しずつアウトプットしていこうかと思いブログを書き始めたところです(日本で広めていく手伝いもすることになったので)。 まずは、用語などの説明から少しずつ始めていこうと思います。
ベクトルデータベース?
最近では、RAG(Retrieval-Augmented Generation)などで利用されるものというイメージが多いかもしれないです。
ベクトルデータベースとは、データオブジェクトとそれを表現するベクトルを保存してベクトルの近いものを検索することができるものです。 データオブジェクトはベクトルのもととなるテキストなどに加えて、メタデータを含んだ情報です。
検索する際に、クエリをベクトルに変換したものに近いベクトルを持ったデータオブジェクトを探してくることができます。 近いベクトルというのは、類似のベクトルを探してくると言い換えることもできます。 これにより、ベクトルとして似ているものを検索して並べることが可能となります。
ベクトルデータベースは、大量のベクトルデータに対してさまざまな技術を用いて素早く検索をする仕組みを提供します。
ベクトル?
RAGという観点だとテキストの検索のイメージがありますが、ベクトルにできるものはテキストだけではありません。 画像、動画、音声、何かしらの特徴量をベクトルにするといったことも可能です。 LLMの流行の前から画像の検索などにベクトルが用いられてきました。
また、LLMの活用によってテキスト情報をベクトル埋め込みと呼ばれる手法でベクトルにすることで、これまでのキーワードによるテキストや単語の完全一致ではなく、意味的な類似によって情報を検索できるようになってきています。 このため、ベクトル検索はセマンティック検索(意味的な検索)とも呼ばれています。
ベクトル空間に異なるデータのベクトルを統合することで、マルチモーダルなベクトル検索をかのうにすることなどもできます(昨年やったデモはキーワードで画像を検索してみました)。
Weaviateの公式ブログ
Weaviateの公式ブログにはさらっと私が書いたこと以上にベクトルデータベースに関する記事( A Gentle Introduction to Vector Databases | Weaviate)やベクトル検索に関する記事(Bring your own vectors | Weaviate)が公開されています。 こちらも参考になるかと。
これ以外にもWeaviateのブログではLLMやRAGにまつわる技術の紹介などがされているので興味がある方はご覧いただければと(たとえば、Late Interactionの話とか)。
最後に
ということで?、日本のコミュニティとしてConnpassにグループを作りました。
どうやってイベントをやるかはまだ考え中ですが、興味がある方は登録しておいていただければと。
どんな情報、どんなイベントがあれば興味をもっていただけるか?Weaviateを使ってみようと思うけど何から始めよう?など疑問に思うことがあればXやブログのコメントなどをいただければと思います。
comments powered by Disqus
See Also by Hugo
- Weaviateで日本語を利用した検索という話をしました
- 今年の振り返りと来年の抱負(2023)
- Oramaという検索エンジンでブログ検索を作ってみた
- 今年もオンラインでBerlin Buzzwordsに参加した
- システムの特徴と検索機能について(検索システムに関する妄想その1)