ベクトルデータベースとは
情報にはさまざまな形があります。情報には、テキスト文書、リッチメディア、音声のように構造化されていないものもあれば、アプリケーションログ、表、グラフのように構造化されたものもあります。人工知能と機械学習 (AI/ML) のイノベーションにより、ML モデルの一種である埋め込みモデルを作成できるようになりました。埋め込みでは、あらゆる種類のデータが、アセットの意味とコンテキストを捉えたベクトルにエンコードされます。これにより、近傍のデータポイントを検索して類似のアセットを見つけることができます。ベクトル検索の方法を用いることで、スマートフォンで写真を撮影したり、類似画像を検索したりするなど、ユニークなエクスペリエンスを実現できます。
ベクトルデータベースは、ベクトルを高次元の点として保存および取得する機能を提供します。これらには、N 次元空間の最も近い近傍を効率的かつ高速に検索するための機能がさらに追加されています。これらは通常、k-最近傍 (k-NN) インデックスを使用しており、Hierarchical Navigable Small World (HNSW) や転置ファイルインデックス (IVF) などのアルゴリズムを使用して構築されています。ベクトルデータベースは、データ管理、耐障害性、認可とアクセスコントロール、クエリエンジンなどの追加機能を提供します。
ベクトルデータベースの使用方法
ベクトルデータベースは通常、ビジュアル検索、セマンティック検索、マルチモーダル検索などのベクトル検索ユースケースを強化するために使用されます。最近では、これらを生成系人工知能 (AI) のテキストモデルと組み合わせて、会話型の検索エクスペリエンスを提供するインテリジェントエージェントを作成しています。また、生成系 AI モデルが真実のような嘘を生成し、チャットボットが事実にそぐわないが信憑性のありそうな応答をするのを防ぐこともできます。
開発プロセスは、製品画像のようなコーパスをベクトルにエンコードするように設計された埋め込みモデルを構築することから始まります。データインポートプロセスはデータハイドレーションとも呼ばれます。アプリケーションデベロッパーは、データベースを使用して、製品画像をエンコードし、ベクトルを使用して類似の画像をクエリすることで、類似の製品を検索できるようになりました。
モデル内では、k-最近傍 (k-NN) インデックスによりベクトルを効率的に検索し、コサインなどの距離関数を適用して結果を類似度でランク付けします。
ベクトルデータベースが重要な理由
デベロッパーは、ベクトルデータベースへの埋め込みによって生成されたベクトルにインデックスを付けることができます。これにより、隣接するベクトルを検索して類似のアセットを見つけることができます。
ベクトルデータベースは、埋め込みモデルを操作する方法を提供します。リソース管理、セキュリティ制御、スケーラビリティ、フォールトトレランス、高度なクエリ言語による効率的な情報検索などのデータベース機能により、アプリケーション開発の生産性が向上します。
ベクトルデータベースは、究極的にはデベロッパーが独自のアプリケーション体験を生み出すことを可能にします。例えば、ユーザーはスマートフォンで写真を撮って、類似の画像を検索できます。
デベロッパーは他のタイプの機械学習モデルを使用して、画像やスキャンした文書などのコンテンツからのメタデータの抽出を自動化できます。ベクトルと一緒にメタデータをインデックス化して、キーワードとベクトルの両方でハイブリッド検索を行うことができます。また、セマンティックな理解を関連性ランキングに融合させて、検索結果を向上させることもできます。
生成人工知能 (AI) のイノベーションにより、テキストを生成して人間との複雑な会話を管理できる、ChatGPT のような新しいタイプのモデルが導入されました。複数のモダリティを操作できるものもあります。例えば、一部のモデルでは、ユーザーが風景を説明すると、その説明に合った画像を生成できます。
ただし、生成モデルはハルシネーションを生成する傾向があり、それによって、例えばチャットボットがユーザーを誤解させる可能性があります。 ベクトルデータベースは生成系 AI モデルを補完できます。生成系 AI チャットボットの外部知識ベースを提供し、信頼できる情報を確実に提供できるよう支援します。
ベクトルデータベースのユーザー
ベクトルデータベースは、ベクトル検索を活用したエクスペリエンスを作成したいデベロッパーを対象としています。アプリケーションデベロッパーは、オープンソースモデル、自動機械学習 (ML) ツール、および基本的なモデルサービスを使用して、埋め込みを生成し、ベクトルデータベースをハイドレートできます。これには、最低限の ML の専門知識が必要です。
データサイエンティストとエンジニアのチームは、専門的に調整された埋め込みを構築し、ベクトルデータベースを通じて運用できます。これにより、人工知能 (AI) ソリューションをより迅速に提供できます。
運用チームは、使い慣れたデータベースワークロードとしてソリューションを管理することでメリットが得られます。既存のツールやプレイブックを使用できます。
ベクトルデータベースの利点とは?
ベクトルデータベースにより、デベロッパーはベクトル検索を活用した革新的でユニークな体験を生み出すことができます。人工知能 (AI) アプリケーションの開発を加速し、AI を活用したアプリケーションワークロードの運用を簡素化できます。
ベクトルデータベースは、k-最近傍 (k-NN) ベアインデックスを基に構築する代替手段となります。この種のインデックスの使用、調整、運用には、さらに多くの専門知識とエンジニアリングが必要です。
優れたベクトルデータベースは、データ管理、フォールトトレランス、重要なセキュリティ機能、クエリエンジンなどの機能を通じてアプリケーションに基盤を提供します。これらの機能により、ユーザーはワークロードを運用可能にしてスケーリングを簡素化し、高いスケーラビリティを維持し、セキュリティ要件を満たすことができます。
クエリエンジンや SDK などの機能により、アプリケーション開発が簡単になります。また、デベロッパーは k-NN 検索の一部として、メタデータに対してより高度なクエリ (検索やフィルタリングなど) を実行できます。また、BM25 などの従来の用語頻度モデルとベクトルスコアをブレンドしたハイブリッド関連性スコアリングモデルを使用して、情報検索を強化することもできます。
ベクトルデータベースの課題とは?
ベクトルデータベースには、他のデータベーステクノロジーが直面しているのと同じ課題の多くがあります。スケーラビリティ、近似精度、レイテンシーパフォーマンス、経済性を引き続き向上させていくことになります。
比較的初期の技術として、多くのベクトルデータベースは、セキュリティ、レジリエンシー、運用サポート、ワークロードサポートの多様化などのコアデータベースコンピテンシーに基づいて成熟する必要があります。人工知能 (AI) アプリケーションが成熟し、単なるベクトル検索以上のものが必要となるにつれて、これは重要になります。
AWS はお客様のベクトルデータベース要件をどのようにサポートできるか?
Amazon Web Services (AWS) では、お客様のベクトルデータベース要件を満たす数多くのサービスを提供しています。
- Amazon OpenSearch Service を使用すると、インタラクティブなログ分析、リアルタイムのアプリケーションモニタリング、ウェブサイト検索などを簡単に実行できます。ベクトルデータベースの場合、OpenSearch Service の K 最近傍 (k-NN) 検索について読むことができます。
- Amazon Aurora PostgreSQL 互換エディションと Amazon Relational Database Service (Amazon RDS) for PostgreSQL は、pgvector 拡張機能に対応しました。これにより、機械学習 (ML) モデルの埋め込みをデータベースに保存し、効率的な類似検索を実行できます。
- Amazon Neptune ML は、Neptune の新機能であり、グラフ専用の機械学習手法であるグラフニューラルネットワーク (GNN) を使用して、グラフデータを用いて簡単かつ高速で、より正確な予測を行います。
- Amazon MemoryDB のベクトル検索では数百万のベクトルの保存をサポートしており、クエリと更新の応答時間は 1 桁ミリ秒単位、1 秒あたりのクエリ数 (QPS) は数万、再現率は 99% を超えます。
- Amazon DocumentDB (MongoDB 互換) は、ベクトル検索をサポートします。これは、ミリ秒の応答時間で何百万ものベクトルを保存、索引付け、検索できる新機能です。Amazon DocumentDB のベクトル検索を使用すると、ML アプリケーション用のデータベースを簡単にセットアップ、運用、スケーリングできます。
今すぐアカウントを作成して、AWS でベクトルデータベースの使用を開始しましょう。