ホーム
Topics
ベクトル・データベース
更新日: 2024年7月29日
寄稿者:Jim Holdsworth、Matthew Kosinski
ベクトル・データベースは、生成人工知能(AI)のユースケースとアプリケーションを推進するために必要な速度と性能を提供するので、人気が高まっています。Gartner社によると、2026年までに企業の30%以上がベクトル・データベースを採用し、関連ビジネスデータで基盤モデルを構築するようになります。
行と列からなる従来のリレーショナル・データベースとは異なり、ベクトル・データベースのデータ・ポイントは、一定の次元を持つベクトルで表されます。ベクトル・データベースには高次元のベクトルが埋め込まれているため、非構造化データ・セットに適しています。
データの性質は大きく変わりました。もはや、従来のデータベースに簡単に保存できるような構造化された情報だけにとどまらないのです。ソーシャル・メディアの投稿、画像、動画、音声クリップなどを含む非構造化データは、前年比で30%~60%増加しています。2
リレーショナル・データベースは、構造化データ・セットおよび半構造化データ・セットを特定の形式で管理する際に優れた力を発揮します。従来のリレーショナル・データベースに非構造化データ・ソースをロードして人工知能(AI)用にデータを保存、管理、準備することは、特に類似検索などの新しい生成ユースケースでは、手間のかかるプロセスです。
従来の検索では通常、キーワード、タグ、メタデータなど個別のトークンまたは機能を使用してデータが表現されます。従来の検索では、完全一致を利用して関連結果を取得します。たとえば、「スマートフォン」を検索すると、「スマートフォン」という単語を含む結果が返されます。
これとは反対に、ベクトル検索ではデータを密なベクトルと表現します。密なベクトルとは、ほとんど、あるいはすべての要素がゼロでないベクトルのことです。ベクトルは、データをベクトルとして表現する数学的空間である連続ベクトル空間内で表現されます。
ベクトル表現により、類似検索が可能になります。たとえば、「スマートフォン」をベクトル検索すると、「携帯電話」や「モバイル・デバイス」の結果も返される場合があります。
密なベクトルの各次元は、データの潜在的な特徴または側面に対応しています。潜在的な特徴とは、直接観察されるのではなく、数学モデルやアルゴリズムによってデータから推論される基礎的な特性または属性です。
潜在的な特徴はデータ内の隠れたパターンと関係性を捉え、高次元空間におけるベクトルとしての物について、より意味のある正確な表現を可能にします。
このモデル選択フレームワークを使用して、パフォーマンス要件とコスト、リスク、導入ニーズのバランスをとりながら、最も適切なモデルを選択してください。
ベクトルはテンソルの一部であり、機械学習(ML)ではn次元空間内の数値グループ、または数値グループのグループ化に対する総称です。テンソルは、データの数学的な記帳装置として機能します。最も小さい要素から解説していきます。
ベクトルの数値は、機械学習(ML)モデルによって生成された単語や画像、ビデオ、オーディオといった複雑なオブジェクトを表すことができます。複数の特徴を含む高次元のベクトル・データは、機械学習、自然言語処理(NLP) 、その他AIタスクに不可欠です。ベクトル・データの例としては、次のようなものがあります。
ベクトル埋め込みはデータ・ポイントの数値表現で、単語、音声、画像などの非数学的データを含むさまざまな種類のデータをMLモデルが処理できる数値配列に変換します。
人工知能(AI)モデルは、単純な線形回帰アルゴリズムからディープラーニングに使用される複雑なニューラル・ネットワークまで、数学的ロジックで動作します。
非構造化データを含め、AIモデルに使用するデータはすべて数値的に記録する必要があります。ベクトル埋め込みとは、非構造化データ・ポイントを、そのデータ本来の意味を表す数値の配列に変換する方法です。
以下は、非常に小さなコーパス(2語)の単語埋め込みを簡略化した例です。各単語は3次元ベクトルとして表されています。
この例では、各単語(「cat」)が固有のベクトル([0.2, -0.4, 0.7])で構成されています。ベクトル内の値は、連続した3次元ベクトル空間内の単語の位置を表します。
同様の意味またはコンテキストを持つ単語は、同様のベクトル表現を持つことが期待されます。 例えば、「ネコ」と「イヌ」のベクトルは互いに近く、それらの意味関係を反映しています。
埋め込みモデルはデータ・ポイントをベクトルに変換するようにトレーニングされます。ベクトル・データベースは、これらの埋め込みモデルの出力を保存してインデックスを作成します。データベース内では、事実上あらゆるデータ型にわたり語義上の意味や特徴に基づいてベクトルをグループ化したり、反対のものとして識別したりできます。
ベクトル埋め込みは、レコメンデーション、チャットボット、ChatGPTなどの生成アプリの土台です。
たとえば「car」と「vehicle」という単語を考えてみましょう。意味は似ていますが、綴りは異なります。AIアプリケーションが効果的なセマンティック検索を可能にするには、「car」と「vehicle」のベクトル表現で単語が持つ意味の類似性を捉える必要があります。機械学習において、埋め込みとは意味情報をエンコードする高次元のベクトルを表します。
ベクトル・データベースは、AIおよびMLアプリケーションで 3つの主要な機能を果たします。
動作中、ベクトル・データベースは複数のアルゴリズムを利用して近似最近傍(ANN)検索を実行します。するとアルゴリズムがパイプラインに集められ、クエリされたベクトルに隣接するデータを迅速かつ正確に取得して配信します。
ANN検索を利用すると、たとえばeコマースのカタログで見た目が似ている製品を探すことができます。その他の用途としては異常検知、分類、セマンティック検索などがあります。データ・セットがモデルに入力されるのは1回だけなので、ミリ秒単位で結果が返されます。
ベクトル・データベースには、埋め込みモデル・アルゴリズムの出力、つまりベクトル埋め込みが保存されています。また、タイトル、説明、データ・タイプなど各ベクトルのメタデータも保存されているので、メタデータのフィルターを使用してクエリすることができます。
この埋め込みを取り込んで保存することにより、データベースでユーザーのプロンプトと類似のベクトル埋め込みを照合して高速の類似検索を実現します。
高次元のデータ空間における検索を高速化するには、ベクトルにインデックスを付ける必要があります。ベクトル・データベースは、検索機能のためにベクトル埋め込みのインデックスを作成します。
ベクトル・データベースはMLアルゴリズムでベクトルにインデックスを付けます。ベクトルにインデックスを付けると新しいデータ構造にマッピングされ、最近傍検索など、ベクトル間の類似検索や距離検索を迅速に行うことができます。
ベクトルにインデックスを付けるには、HNSW(hierarchical navigable small world)、局所性鋭敏ハッシュ(LSH)、または直積量子化(PQ)などのアルゴリズムを利用できます。
クエリ・ベクトルは検索クエリのベクトル表現です。ユーザーがAIモデルにクエリまたはプロンプトを送信すると、モデルはクエリまたはプロンプトの埋め込みを計算します。次に、データベースでクエリのベクトルとインデックスに保存されているベクトルの距離を計算し、類似結果を返します。
データベースでは、最近傍検索などのさまざまなアルゴリズムを利用してベクトル間の距離を測定できます。コサイン類似度など、さまざまな類似性メトリクスに基づいた測定法もあります。
データベースは類似性ランキングに従って、クエリのベクトルに最も類似したベクトルまたは最近傍のベクトルを返します。こうした計算により、レコメンデーション・システム、セマンティック検索、画像認識、その他の自然言語処理タスクといった多様な機械学習タスクに対応します。
ベクトル・データベースには以下のような多くのメリットがあるため、エンタープライズ向けのAIベース・アプリケーションを強化する上で一般的な方法となっています。
ベクトル・データベースでは、検索を高速化するさまざまなインデックス手法を用いています。ベクトルのインデックス付けと最近傍探索のような距離計算アルゴリズムは、数百万、数十億ものデータ・ポイントを持つ大規模なデータ・セットから関連結果を検索する際のパフォーマンスを最適化するのに役立ちます。
考慮すべき点は、ベクトル・データベースは近似的な結果を返すということです。より高い精度が必要なアプリケーションでは、処理速度が遅くなっても別の種類のデータベースを使用すべき場合があります。
ベクトル・データベースは、クエリ要求やデータ量が増加してもノードを追加してパフォーマンスを維持しながら水平方向に拡張することで、大量の非構造化データを保存・管理することができます。
ベクトル・データベースはデータ検索を高速化できるため、基盤モデルのトレーニングをスピードアップできます。
ベクトル・データベースには通常、新しい非構造化データを簡単に更新および挿入するための埋め込み機能が備わっています。
ベクトル・データベースは、画像、動画、その他の多次元データを利用する際の複雑さに対処できるよう構築されています。
セマンティック検索から対話型AIアプリケーションに至るまでの複数のユースケースに基づいて、ビジネスとAIの要件を満たすようにベクター・データベースをカスタマイズできます。組織は、IBM® Graniteシリーズ・モデル、MetaのLlama-2、GoogleのFlanモデルなどの汎用モデルから始めて、独自のデータをベクター・データベースに提供し、モデルとAIアプリケーションの出力を強化できます。
ベクトル・データベース機能を選択する際、組織には幅広い選択肢があります。データとAIのニーズを満たすデータベースを見極めるために、多くの組織が検討する事項を挙げます。
いくつかの選択肢から選択できます。
ベクトル・データベースはスタンドアロンの機能としてではなく、より広範なデータ・AIエコシステムの一部として考慮すべきです。
多くはAPIやネイティブ拡張機能を備えているか、データベースと統合できるようになっています。ベクトル・データベースは企業データを使用してモデルを強化するように構築されているため、組織は適切なデータ・ガバナンスとセキュリティーを導入して、大規模言語モデル(LLM)のトレーニングに使用されるデータが信頼できることを確認する必要もあります。
多くのベクトル・データベースでは、API以外にも、APIをラップできる特定プログラミング言語に対応したソフトウェア開発キット(SDK)を使用しています。開発者は、SDKを使用するとアプリ内のデータ操作が容易になる場合がよくあります。
ベクトル・ストアとインデックスは、複雑なドキュメントから特定の情報を抽出するなど、ファクトまたはファクト・ベースのクエリに基づくアプリケーションでの利用に適しています。
ただし、トピックの概要を取得したい場合、ベクトル・インデックスでは対応できません。この場合、LLMはそのトピックに関して考えられるデータ内のさまざまなコンテキストをすべて調べます。
より高速なオプションとしては、ベクトル・インデックスではなく、リスト・インデックスなど別の種類のインデックスを使用することが挙げられます。リスト・インデックスは各リストの最初の要素をすぐにフェッチするためです。
LangChainは、LLMを使用したアプリケーションの開発に適した、オープンソースのオーケストレーション・フレームワークです。ベクトル・データベースの開発を最適化できます。
PythonベースとJavascriptベースの両方のライブラリで利用できるLangChainのツールとAPIは、チャットボットや仮想エージェントなどのLLM駆動型アプリケーションの構築プロセスを簡素化します。LangChainを使うと、25種類以上のエンベッディング(埋め込み)手法の統合と、50種類以上のベクトル・ストア(クラウドホストおよびローカル)の統合を行うことができます。
データレイクハウスを統合ベクトル・データベースと組み合わせて、エンタープライズ・グレードのAIを強化することができます。組織は信頼性のある管理対象データ全体にわたって、生成AIアプリケーション用にベクトル化された埋め込みを大規模に統合、キュレート、準備できます。これにより、チャットボットやパーソナライズされたレコメンデーション・システム、画像類似検索アプリケーションなど、AIワークロードの関連性と精度が向上します。
ベクトル・データベースのアプリケーションは膨大にあり、成長を続けています。主なユースケースには次のものがあります。
検索拡張生成(RAG)は、大規模言語モデル(LLM)が外部の知識ベースからファクトを取得できるようにするAIフレームワークです。ベクトル・データベースはRAGの実装をサポートする上で鍵となります。
企業は、市場投入までの時間短縮、効率的な推論、信頼性の高い出力がかなうことから、生成AIワークフローにおいてますますRAGを支持しています。このフレームワークは、カスタマー・ケア、人事、人材管理といったユースケースで特に役立ちます。
RAGは、モデルが最新の信頼できるファクトにリンクされること、またユーザーがモデルのソースにアクセスしてその主張を検証できることを保証します。LLMを信頼できるデータに固定すると、モデルのハルシネーション(幻覚)を軽減できます。
RAGは高次元のベクトル・データを使用して、基盤モデルによるコンテキスト内学習のための意味的に関連した情報でプロンプトを充実させます。RAGには、最も大量にデータを処理する推論段階で効果的なストレージと取得が必要です。
ベクトル・データベースは、こうした高次元ベクトルの効率的なインデックス作成、保存、取得に優れており、レコメンデーション・エンジンやチャットボットなどのアプリケーションに必要な速度、精度、スケールを提供します。
ベクトル・データベースは、特にRAGフレームワークの実装に使用される場合、土台となる関連知識を効率的かつ正確に解析する仮想エージェントの能力を強化することでエージェントのやり取りを改善するのに役立ちます。エージェントはユーザーのクエリに対し、リアルタイムの状況に応じた回答に参照資料と該当ページ番号を添えて提供することができます。
たとえばeコマースのサイトでは、ベクトルを利用して顧客の好みや製品の属性を表すことができます。すると、ベクトルの類似性に基づいて過去に購入したものと似た商品を提案できるようになり、ユーザー・エクスペリエンスが向上し、定着率が高まります。
この検索手法は、大規模なコレクションから類似アイテムまたはデータ・ポイント(通常はベクトルとして表される)を見つけるために使用されます。ベクトル検索は要素間の意味関係を捉えることができるため、機械学習モデルや人工知能アプリケーションの処理効率を向上させます。
これらの検索にはいくつかの形式があります。
IBM watsonxは、ビジネス向けに構築されたAIとデータのプラットフォームです。たった1つのプラットフォームで、ビジネス向けのカスタムAIアプリケーションの構築、あらゆるデータ・ソースの管理、責任あるAIワークフローの迅速化を簡単に実現します。
IBM Cloud Databases for Elasticsearchは、全文検索エンジンの柔軟性とJSON文書データベースのインデックス付け機能を兼ね備えています。IBM Cloud Databases for Elasticsearchは、統合型の機械学習(ML)モデル、特殊なMLノード、データ・タイプ、検索アルゴリズムの組み合わせで企業を強化します。
IBM Cloud Databases for PostgreSQLはサービスとしてのPostgreSQLデータベースです。高可用性、バックアップ・オーケストレーション、ポイントインタイム・リカバリー(PITR)、リード・レプリカを簡単に手にできるため、チームは構築に時間をかけることができます。
生成AIモデルを正しく利用する組織は、業務効率の向上や意思決定の改善から、マーケティング用コンテンツの迅速な作成まで、無数のメリットを得ることができます。
本ガイドでは、IBMのAIアシスタントの最も得意とする機能とその対象者、他社製アシスタントとの比較方法、開始方法をご理解いただけます。
RAG は、外部のナレッジ ベースから事実を取得して、最も正確な最新情報に基づいて LLM を確立し、ユーザーに LLM の生成プロセスに関する洞察を提供する AI フレームワークです。
すべてのリンク先は、ibm.comの外部にあります。
1 Gartner Innovation Insight: Vector Databases、Gartner社、2023年9月4日。
2 2024 Strategic Roadmap for Storage、Gartner社、2024年5月27日。