Weaviateは、データオブジェクトとそのベクトル埋め込みを保存するオープンソースのベクトルデータベースであり、高速な類似性検索を可能にします。これは、人工知能および機械学習に基づいて構築されたアプリケーション、特に大規模言語モデルおよび生成AIを含むものをサポートするように設計されています。Weaviateは柔軟なデータスキーマを提供し、ベクトル検索、キーワード検索、およびハイブリッド検索を含む複数の検索方法をサポートし、埋め込み生成のために外部のAIモデルと統合できます。
このプロジェクトは2019年にBob van LuijtとSeMI Technologies(オランダの企業)によって開始されました。これはBSD-3-Clauseライセンスの下でリリースされ、商用および研究目的で自由に利用可能となっています。Weaviateは、検索拡張生成(RAG)システム、セマンティック検索エンジン、およびレコメンデーションエンジンを構築する開発者の間で採用を獲得しており、OpenAIおよび他のモデルプロバイダーと並行して展開されることがよくあります。
アーキテクチャとコア機能
WeaviateはGoで構築され、効率的なベクトルインデックスのために転置インデックスとHNSW(階層的ナビゲート可能小世界)グラフの組み合わせを使用しています。HNSWアルゴリズムは、低レイテンシで大規模データセットを処理するために重要な近似最近傍検索を可能にします。このデータベースは、密ベクトル(text-embedding-ada-002などのモデルから)と疎ベクトル(BM25ベース)の両方をサポートし、セマンティックおよび語彙的関連性を組み合わせたハイブリッド検索を可能にします。
主要な機能は、そのスキーマベースのアプローチであり、ユーザーはグラフデータベースと同様にクラスとプロパティを定義できます。これにより、類似性クエリを実行する前にメタデータでフィルタリングするなど、ベクトル検索と組み合わせた構造化フィルタリングが可能になります。Weaviateはまた、水平スケーリングのためのマルチテナンシー、レプリケーション、およびシャーディングをサポートし、本番ワークロードに適しています。
AIエコシステムとの統合
Weaviateは、より広範なAIエコシステムとシームレスに連携するように設計されています。これは、OpenAI、Anthropic、Google DeepMind、およびCohereなどのプロバイダーのモデル、ならびにHugging Face Transformersなどのライブラリを介したローカルモデルを使用してデータをベクトル化するためのモジュールを提供します。これにより、開発者は別個のインフラストラクチャを管理することなく埋め込みを生成できます。
生成AIアプリケーションの場合、Weaviateには、関連オブジェクトを取得して大規模言語モデルに渡し、回答や要約を生成できる生成検索モジュールが含まれています。この機能は、データベースが知識ベースとして機能する多くのRAGパイプラインの基盤となっています。Weaviateはまた、クラウド展開のためにAmazon Web Services、Azure、およびGoogle Cloudとの統合をサポートし、高性能ワークロードのためにCoreWeaveおよび他のGPUアクセラレーションプラットフォーム上で実行できます。
展開と管理
Weaviateは、DockerやKubernetesを使用したセルフホストサービス、マネージドクラウドサービス(Weaviate Cloud Services、WCS)、またはPythonやGoアプリケーションへの組み込みライブラリとして、いくつかの方法で展開できます。マネージドサービスは自動バックアップ、スケーリング、およびモニタリングを提供しますが、セルフホスティングはインフラストラクチャに対する完全な制御を提供します。
このデータベースには、単一のリクエストでベクトル検索とキーワード検索の両方をサポートするクエリ用のGraphQL APIが含まれています。また、スキーマ管理とデータ操作のためのRESTful APIも提供します。Weaviateは、Python、JavaScript、Java、Go、および他の言語用のクライアントライブラリを提供し、既存アプリケーションへの統合を簡素化します。
ユースケースとパフォーマンス
一般的なユースケースには、eコマース向けセマンティック検索、エンタープライズ知識ベース向けドキュメント検索、サイバーセキュリティにおける異常検知、およびパーソナライズされたレコメンデーションシステムが含まれます。Weaviateのハイブリッド検索機能は、法的または医療文書検索など、正確なキーワード一致が重要となるシナリオで特に価値があります。パフォーマンスベンチマークは、Weaviateが一般的なハードウェア上で、サブ100msのクエリレイテンシで数百万のオブジェクトを処理できることを示していますが、正確な数値はベクトル次元、インデックス設定、およびハードウェアに依存します。このデータベースは、ベクトル検索の前にインデックス化されたプロパティでのフィルタリングをサポートし、検索空間を大幅に削減して速度を向上させることができます。
##コミュニティと開発
Weaviateは、SeMI Technologiesのコアチームによって積極的に開発されており、グローバルコミュニティからの貢献があります。このプロジェクトは公開ロードマップを維持し、2021年にリリースされたバージョン1.0を含む定期的なアップデートをリリースしています。2024年現在、WeaviateはLinux FoundationのAI & Dataランドスケープの一部であり、オープンソースAIインフラストラクチャスタックにおけるその役割を反映しています。
コミュニティは、広範なドキュメント、チュートリアル、および例を提供し、プロジェクトには開発者サポート用の専用Slackチャンネルがあります。WeaviateのソースコードはGitHubで利用可能であり、Samsung ElectronicsやIntelなどの企業のエンジニアからの貢献を受けており、その業界横断的な関連性を示しています。
他のベクトルデータベースとの比較
Weaviateは、Pinecone、Milvus、およびQdrantなどの他のベクトルデータベースと競合しています。Pineconeとは異なり、これはプロプライエタリですが、Weaviateは完全にオープンソースです。Milvusと比較すると、Weaviateはより統合されたスキーマとGraphQLインターフェースを提供しますが、Milvusは高性能な分散インデックスに焦点を当てています。Qdrantもオープンソースである点で類似していますが、異なるインデックスアプローチを使用し、Rustベースのコアを持っています。Weaviateの強みは、その使いやすさ、AI統合用の組み込みモジュール、およびハイブリッド検索機能にあります。これは、強力なコミュニティサポートを備えた柔軟でセルフホスト可能なソリューションを必要とするスタートアップやエンタープライズによってしばしば選択されます。
将来の方向性
開発ロードマップには、インデックスアルゴリズムの改善、マルチモーダルデータ(画像、音声、ビデオ)のサポート強化、および深層学習フレームワークとのより緊密な統合が含まれています。チームはまた、自動スキーマ推論とストリーミングデータのより良い処理のための機能を探求しています。ニューラルネットワークベースの検索への需要が高まるにつれて、Weaviateはベクトルデータベース空間における主要なオープンソースオプションであり続けることを目指しています。