この記事では、ベクトルデータベースとベクトル検索のコア概念について説明します。
OceanBaseデータベースは、最大16000次元のFloat型の密ベクトルをサポートしており、疎ベクトルにも対応しています。また、マンハッタン距離、ユークリッド距離、内積、コサイン距離など、さまざまな種類のベクトル距離計算をサポートしています。さらに、HNSW/IVFベクトルインデックス の作成が可能で、増分更新や削除もサポートしており、これらの操作は検索結果のリコール率に影響を与えません。
OceanBaseのベクトル検索は、スカラーフィルタリングを伴うハイブリッド検索機能を備えています。同時に、柔軟なアクセスインターフェースを提供し、MySQLプロトコルを利用した各種言語クライアントによるSQLアクセスに加え、Python SDKからのアクセスも可能です。同時に、OceanBaseデータベースは、AIアプリケーション開発フレームワークLlamaIndex、DB-GPTおよびAIアプリケーション開発プラットフォームDifyへの対応を完了しており、AIアプリケーション開発をより効果的に支援します。
重要な概念
非構造化データ
非構造化データとは、明確に定義されたデータ形式や構造を持たないデータのことです。非構造化データは、一般的にテキスト、画像、音声、動画などの形式のデータ、およびソーシャルメディアコンテンツ、電子メール、ログファイルなどを含みます。非構造化データは複雑かつ多様であるため、自然言語処理、画像認識、機械学習などの特定のツールや技術を用いて処理する必要があります。
ベクトル
ベクトルは本質的に、高次元空間におけるオブジェクトの投影です。数学的な意味でのベクトルは、ベクトルは浮動小数点の配列であり、以下の2つの特徴があります:
配列の各要素はベクトルの各次元を表し、各要素は浮動小数点数です。
ベクトル配列のサイズ(要素数)は、ベクトル空間全体の次元を表します。
ベクトル埋め込み(Embedding)
ベクトル埋め込み(Embedding)とは、深層学習ニューラルネットワークを使用して非構造化データから内容とセマンティクスを抽出し、画像や動画などを特徴ベクトルに変換するプロセスです。Embedding技術は、元のデータを高次元空間から低次元空間にマッピングし、豊富な特徴を持つマルチモーダルデータを多次元ベクトルデータに変換します。
ベクトル類似性検索
さまざまな情報があふれる現代では、ユーザーは膨大なデータの中から必要な情報をすばやく検索する必要があります。例えば、オンライン文献データベース、eコマースプラットフォームのプロダクトカタログ、そして増え続けるマルチメディアコンテンツライブラリなど、ユーザーが興味のあるコンテンツをすばやく見つけるためには、効率的な検索システムが必要です。データ量が飛躍的に増加し続けるにつれ、従来のキーワードベースの検索手法では、検索精度と速度に対するユーザーのニーズを満たすことができなくなり、ベクトル検索の技術が登場しました。ベクトル類似性検索は、特徴抽出とベクトル化技術を用いて、テキスト、画像、音声など異なるタイプの非構造化データをベクトルに変換し、類似度測定方法を用いてそれらの間の類似性を比較することで、データの深層的なセマンティクス情報を捉えることを可能にし、より正確で効率的な検索結果を提供します。
その他の関連用語については、OceanBase用語集を参照してください。
なぜOceanBaseのベクトル検索を選ぶのか?
OceanBaseのベクトル検索機能は、OceanBaseのマルチモーダル統合機能に基づいて構築されており、融合クエリ、拡張性、高性能、高可用性、低コスト、マルチテナント、データセキュリティなど、あらゆる面で優れたパフォーマンスを発揮します。
ハイブリッド検索
OceanBaseは、ベクトルデータ、空間データ、ドキュメントデータ、スカラーデータなどのタイプのハイブリッド検索をサポートしており、ベクトルインデックス、空間インデックス、全文インデックスなどのさまざまなインデックスのサポートに基づいて、極めて高いパフォーマンスのマルチモダール・ハイブリッド検索機能を提供します。OceanBaseは、1つのデータベースでアプリケーションの多様なストレージおよび検索ニーズを満たすことを実現しました。
分散スケーラビリティ
ネイティブな分散データベースとして、OceanBaseの水平方向のスケーラビリティとマルチパーティション能力は、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)に最も正確かつ最新の情報を提供します。また、ユーザーがLLMの生成プロセスを深く理解できるようにし、スマートQ&Aやナレッジベースなどに応用されます。
パーソナライズドレコメンド:レコメンドシステムは、ユーザーの過去の行動と好みを基に、ユーザーが興味を持ちそうなアイテムを推奨することができます。レコメンドのリクエストが発信されると、システムはユーザーの特徴に基づいて類似度を計算し、ユーザーが興味を持ちそうなアイテムをレコメンド結果として返します。例えば、レストランのレコメンドや観光スポットのレコメンドなどです。
画像検索/テキスト検索:画像/テキスト検索タスクとは、大規模な画像/テキストデータベースから指定された画像に最も類似する結果を検索することです。検索時に使用されるテキスト/画像の特徴は、ベクトルデータベースに保存できます。高性能なインデックスストレージにより、効率的な類似度計算を実現し、検索内容に一致する画像/テキスト結果を返します。例として、顔認識などが挙げられます。