- 公開日:
Difyが対応しているベクトルデータベース
- Authors
- Name
- 代表取締役 宮永邦彦
- @miyanaga
画像軽量化とWebフロントエンドのスピード改善の専門家です。Web系のIT技術大好き。
このサイトではスピード改善のリアルや、日々の技術的な気づきを共有します。
Difyでナレッジを取り込むと、その内容はベクトルデータベースに格納される。
Difyは多種多様なベクトルデータベースに対応しているようで、環境設定ファイルを眺めているだけでも興味深い。
Difyが対応していると思われるベクトルデータベースを調べてみた。
ベクトルデータベースとは
LLMには、文章などを例えば1024次元のような高次元ベクトルに変換する機能がある(Embedding)。いわば文章を言語空間における意味的な位置にマッピングする機能で、意味の近い文章はその位置が近くなるため曖昧検索に利用できる。
そのような高次元ベクトルの方向や距離を計算できるデータベースが、ベクトルデータベースである。
Difyにおいては、Vector Storeという扱いになっている。要はベクトルをキーとしてコンテンツをインデックスできる構造だけあればよいので、複雑なデータベースというよりKVS(Key-Value Store)に近い。
Difyが対応するVector Store
ひとつずつ検証したわけではないが、Difyの環境設定ファイルを眺めていると、多種多様なデータベースへの対応が見て取れる。
この分野はまったく知見がないので、どんなデータベースに対応しているか調べてみた。
INFO
この記事の執筆時である2024年10月7日現在の状況。環境変数VECTOR_STORE
に指定できる値から調査した。
- weaviate
- Weaviate ベクトルデータベース | Weaviate
- オープンソース(修正BSD)
- デフォルトのVector Store
- qdrant
- milvus
- The High-Performance Vector Database Built for Scale | Milvus
- オープンソース(Aapche 2.0)
- myscale
- MyScale | Run Vector Search with SQL
- オープンソース(Apache 2.0)
- pgvector
- pgvector/pgvector: Open-source vector similarity search for Postgres
- PostgreSQLのベクトル拡張
- オープンソース(PostgreSQL?)
- pgvecto-rs
- PGVecto.rs
- pgvectorとは別のPostgreSQLのベクトル拡張
- オープンソース(Apache 2.0)
- analyticdb
- AnalyticDB
- Alibaba Cloudが推進するベクトルデータベース?
- MySQL版とPostgreSQL版があるらしい
- tidb
- TiDB, Powered by PingCAP
- 最近名前をよく目にするNewSQL
- オープンソース(Apache 2.0)
- Chroma
- Chroma
- オープンソース(Apache 2.0)
- Oracle
- Oracle DB?
- 情報が少なく詳細不明
- relyt
- 詳細不明
- LangChainでの紹介: Relyt | 🦜️🔗 LangChain
- opensearch
- OpenSearch
- AWSがフォークさせたElasticSearch起源のデータベース
- オープンソース(Apache 2.0)
- tencent
- Tencent Cloud VectorDB | Tencent Cloud
- Tencent Cloudのサービス?
- elasticsearch
生成AIブームの後押しで、どのクラウドサービスもベクトルデータベースに力を入れている。
しかし、AWSはOpenSearchのサポートは見られるが、AzureやGCPに合わせた対応は見られない。逆にAlibaba Cloud、Tencent Cloudへの対応が見られる。相対的に中国勢の強さが見られる対応状況だ。
本格利用に向けて
DifyのDocker ComposeプロジェクトにはWeaviateが含まれており、デフォルトでそれが使える状態になっている。
しかし本番運用ではスケーラビリティの点で不安がある。弾力性のあるクラウドサービスを選択するのが無難だろう。
Difyはストレージもいろいろと選択できる。その対応についても今後調査してみたい。