このドキュメントでは、ベクトルデータベースとベクトル検索のコアコンセプトについて説明します。
OceanBase データベースは、最大16,000次元のFloat型の密ベクトルをサポートし、疎ベクトルもサポートしています。マンハッタン距離、ユークリッド距離、内積、コサイン距離など、さまざまな種類のベクトル距離計算をサポートしており、HNSW/IVF ベクトルインデックスの作成、増分更新・削除をサポートしています。また、これらの操作は再現率に影響を与えません。
OceanBase のベクトル検索はハイブリッド検索機能を備えています。柔軟なアクセスインターフェースを提供しており、MySQLプロトコルを介した各言語クライアントからのSQLアクセスだけでなく、Python/Java SDK によるアクセスも可能です。さらに、OceanBase データベースは AI アプリケーション開発フレームワーク LlamaIndex、DB-GPT、および AI アプリケーション開発プラットフォーム Dify への対応を完了しており、AI アプリケーション開発をより効果的に支援します。
重要な概念
非構造化データ
非構造化データとは、明確に定義されたデータ形式や組織構造を持たないデータのことです。非構造化データには通常、テキスト、画像、音声、動画などの形式のデータ、およびソーシャルメディアコンテンツ、電子メール、ログファイルなどが含まれます。非構造化データの複雑さと多様性から、これらのデータを処理するには、自然言語処理、画像認識、機械学習などの特定のツールや技術を用いる必要があります。
ベクトル
ベクトルは本質的には、高次元空間におけるオブジェクトの投影です。数学的には、ベクトルは浮動小数点数の配列であり、以下の2つの特徴があります:
配列の各要素はベクトルの次元を表し、各要素は浮動小数点数です。
ベクトル配列のサイズ(要素数)は、ベクトル空間全体の次元を表します。
ベクトル埋め込み (Embedding)
ベクトル埋め込み (Embedding) とは、深層学習ニューラルネットワークを用いて非構造化データから内容と意味を抽出し、画像や動画などを特徴ベクトルに変換するプロセスです。Embedding 技術は、元のデータを高次元空間から低次元空間へマッピングし、豊富な特徴を持つマルチモーダルデータを多次元ベクトルデータに変換します。
ベクトル最近傍探索
情報が溢れる現代では、ユーザーは膨大なデータの中から必要な情報を迅速に検索する必要があります。例えば、オンライン文献データベース、eコマースプラットフォームの商品カタログ、そして増え続けるマルチメディアコンテンツライブラリなど、効率的な検索システムが求められています。データ量が急増する中、従来のキーワードベースの検索手法では、ユーザーの検索精度と速度に対する要求を満たせなくなり、ベクトル検索技術が登場しました。ベクトル最近傍探索は、特徴抽出とベクトル化技術を用いて、テキスト、画像、音声など異なる種類の非構造化データをベクトルに変換し、類似性測定手法を用いてそれらの類似性を比較することで、データの深層的な意味情報を捉え、より正確で効率的な検索結果を提供します。
「検索」と「クエリ」の主な違いは結果の正確性にあります。検索は近似結果を返し、結果の100%の正確性を保証するものではありません。クエリは厳密な結果を返し、結果の100%の正確性を保証します。
その他の関連用語については、OceanBase 用語集を参照してください。
なぜ OceanBase のベクトル検索を選ぶのか?
OceanBase のベクトル検索機能は、OceanBase のマルチモーダル統合機能を基盤として構築されており、融合検索、拡張性、高性能、高可用性、低コスト、マルチテナント、データセキュリティなど、あらゆる面で優れた性能を発揮します。
ハイブリッド検索
OceanBase は2つの側面からのハイブリッド検索をサポートしており、単一のデータベースでアプリケーションの多様なストレージ検索要件を実現します:
- ベクトルデータとスカラーデータのハイブリッド検索。
- ベクトルインデックスと全文インデックスのハイブリッド検索。
ベクトルインデックスと全文インデックスのハイブリッド検索では、スカラーフィルター条件を同時に適用することも可能です。
分散スケーラビリティ
OceanBase はネイティブ分散データベースとして、水平スケーラビリティとマルチパーティション機能を備えており、大量のベクトルデータをサポートします。
高性能
OceanBase のベクトル検索機能は、VSAG インデックスアルゴリズムライブラリを統合しています。VSAG アルゴリズムライブラリは、960 次元の GIST データセットで優れた性能を示し、ANN-Benchmarks テストでは他のアルゴリズムを大きく上回りました。
高可用性
Paxos プロトコルに基づくデータ同期による災害復旧ソリューションにより、OceanBase のベクトル検索は、プライマリ/スタンバイ構成、データセンター間、地域間の災害復旧をサポートします。メモリベースの HNSW インデックスの場合でも、災害復旧切り替え後はリアルタイムでアクセス可能です。
トランザクション性
OceanBase データベースの Multi-Paxos プロトコルに基づく分散トランザクション機能は、ベクトルデータの一貫性と完全性を保証するだけでなく、効果的な並行制御と障害回復メカニズムも提供します。
低コスト
OceanBase のストレージエンコーディング圧縮機能により、ベクトルストレージ容量を大幅に削減でき、アプリケーションのストレージコストを節約できます。
データセキュリティ
OceanBase データベースは、認証と認可、アクセス制御、データ暗号化、監視・アラート、セキュリティ監査を含む、比較的完全なエンタープライズレベルのセキュリティ機能をサポートしており、ベクトル検索シナリオにおけるデータセキュリティを効果的に保証します。
シンプルで使いやすい
OceanBase のベクトル検索は、柔軟なアクセスインターフェースを提供しており、MySQL プロトコルを介した各種言語クライアントからの SQL アクセスだけでなく、Python SDK によるアクセスもサポートしています。また、OceanBase は AI アプリケーション開発フレームワークである LangChain と Llamaindex の対応を完了しており、AI アプリケーション開発をより効果的に支援します。
完備したツール体系
OceanBase は完備したデータベースツール体系を備えており、データ開発、移行、運用保守、診断など、データのライフサイクル全体の管理をサポートし、AI アプリケーションの開発と保守を支えます。
適用シナリオ
RAG(Retrieval Augmented Generation)検索拡張生成:RAGは、外部のナレッジベースから事実を検索し、大規模言語モデル(LLM)に最も正確で最新の情報を提供するためのAIフレームワークです。また、ユーザーがLLMの生成プロセスを深く理解できるようにし、インテリジェントQ&Aやナレッジベースなどに応用されます。
パーソナライズドレコメンデーション:レコメンデーションシステムは、ユーザーの過去の行動と嗜好に基づいて、ユーザーが興味を持つ可能性のあるアイテムを推薦します。推薦リクエストが送信されると、システムはユーザー特性に基づいて類似度を計算し、ユーザーが興味を持ちそうなアイテムを推薦結果として返します。レストラン推薦や観光スポット推薦などが例として挙げられます。
画像検索/テキスト検索:画像/テキスト検索タスクとは、大規模な画像/テキストデータベースから、指定された画像に最も類似する結果を検索することです。検索時に使用されるテキスト/画像の特徴はベクトルデータベースに格納でき、高性能なインデックスストレージにより効率的な類似度計算が実現され、検索内容に一致する画像/テキスト結果が返されます。顔認識などが例として挙げられます。