ホーム

Topics

ベクトル・データベース

ベクトル・データベースとは
IBM のベクトル データベース ソリューションを探索する Thinkニュースレターの購読
雲、円グラフ、グラフのピクトグラムをコラージュしたイラスト

更新日: 2024年7月29日
寄稿者:Jim Holdsworth、Matthew Kosinski

ベクトル・データベースとは

ベクトル・データベースは、高次元のベクトル・データを保存、管理、インデックス付けするものです。データ・ポイントが「ベクトル」と呼ばれる数値の配列として保存され、類似性に基づいてクラスター化されます。この設計にするとクエリの待ち時間が短縮されるので、AIアプリケーションに最適です。

ベクトル・データベースは、生成人工知能(AI)のユースケースとアプリケーションを推進するために必要な速度と性能を提供するので、人気が高まっています。Gartner社によると、2026年までに企業の30%以上がベクトル・データベースを採用し、関連ビジネスデータで基盤モデルを構築するようになります。

ベクトル・データベースと従来型データベースの比較

行と列からなる従来のリレーショナル・データベースとは異なり、ベクトル・データベースのデータ・ポイントは、一定の次元を持つベクトルで表されます。ベクトル・データベースには高次元のベクトルが埋め込まれているため、非構造化データ・セットに適しています。

データの性質は大きく変わりました。もはや、従来のデータベースに簡単に保存できるような構造化された情報だけにとどまらないのです。ソーシャル・メディアの投稿、画像、動画、音声クリップなどを含む非構造化データは、前年比で30%~60%増加しています。2

リレーショナル・データベースは、構造化データ・セットおよび半構造化データ・セットを特定の形式で管理する際に優れた力を発揮します。従来のリレーショナル・データベースに非構造化データ・ソースをロードして人工知能(AI)用にデータを保存、管理、準備することは、特に類似検索などの新しい生成ユースケースでは、手間のかかるプロセスです。

従来の検索では通常、キーワード、タグ、メタデータなど個別のトークンまたは機能を使用してデータが表現されます。従来の検索では、完全一致を利用して関連結果を取得します。たとえば、「スマートフォン」を検索すると、「スマートフォン」という単語を含む結果が返されます。

これとは反対に、ベクトル検索ではデータを密なベクトルと表現します。密なベクトルとは、ほとんど、あるいはすべての要素がゼロでないベクトルのことです。ベクトルは、データをベクトルとして表現する数学的空間である連続ベクトル空間内で表現されます。

ベクトル表現により、類似検索が可能になります。たとえば、「スマートフォン」をベクトル検索すると、「携帯電話」や「モバイル・デバイス」の結果も返される場合があります。

密なベクトルの各次元は、データの潜在的な特徴または側面に対応しています。潜在的な特徴とは、直接観察されるのではなく、数学モデルやアルゴリズムによってデータから推論される基礎的な特性または属性です。

潜在的な特徴はデータ内の隠れたパターンと関係性を捉え、高次元空間におけるベクトルとしての物について、より意味のある正確な表現を可能にします。

適切なAI基盤モデルの選択方法

このモデル選択フレームワークを使用して、パフォーマンス要件とコスト、リスク、導入ニーズのバランスをとりながら、最も適切なモデルを選択してください。

関連コンテンツ AIデータストアに関する電子ブックに登録する
ベクトルとは

ベクトルはテンソルの一部であり、機械学習(ML)ではn次元空間内の数値グループ、または数値グループのグループ化に対する総称です。テンソルは、データの数学的な記帳装置として機能します。最も小さい要素から解説していきます。

  • スカラーは、1つの数値を含む0次元のテンソルです。たとえば、気象データをモデリングするシステムは、1日の最高気温(華氏)をスカラー形式で85と表す場合があります。

  • 次に、ベクトルは1次元(または1次1階)のテンソルであり、同じタイプを持つデータのスカラーが複数含まれています。たとえば、天気モデルである日の最低気温、平均気温、最高気温をベクトル形式で表すと、62、77、85となります。スカラーの各要素はベクトルの特徴、つまり次元であり、その日の天気の特徴を表しています。

ベクトルの数値は、機械学習(ML)モデルによって生成された単語や画像、ビデオ、オーディオといった複雑なオブジェクトを表すことができます。複数の特徴を含む高次元のベクトル・データは、機械学習、自然言語処理(NLP) 、その他AIタスクに不可欠です。ベクトル・データの例としては、次のようなものがあります。

  • テキスト:チャットボットは自然言語を理解する必要があります。これは、単語、段落、文書全体を表現するベクトルに依存することで実現します。

  • 画像:画像のピクセルを数値データで記述し、結合してその画像の高次元ベクトルを構成できます。

  • 音声/オーディオ:画像と同様に、音波も数値データに分解してベクトルとして表すことができるため、音声認識などのAIアプリケーションが可能になります。
ベクトル埋め込みとは何ですか?

ベクトル埋め込みはデータ・ポイントの数値表現で、単語、音声、画像などの非数学的データを含むさまざまな種類のデータをMLモデルが処理できる数値配列に変換します。

人工知能(AI)モデルは、単純な線形回帰アルゴリズムからディープラーニングに使用される複雑なニューラル・ネットワークまで、数学的ロジックで動作します。

非構造化データを含め、AIモデルに使用するデータはすべて数値的に記録する必要があります。ベクトル埋め込みとは、非構造化データ・ポイントを、そのデータ本来の意味を表す数値の配列に変換する方法です。

以下は、非常に小さなコーパス(2語)の単語埋め込みを簡略化した例です。各単語は3次元ベクトルとして表されています。

  • cat          [0.2, -0.4, 0.7]
  • dog         [0.6, 0.1, 0.5]

この例では、各単語(「cat」)が固有のベクトル([0.2, -0.4, 0.7])で構成されています。ベクトル内の値は、連続した3次元ベクトル空間内の単語の位置を表します。

同様の意味またはコンテキストを持つ単語は、同様のベクトル表現を持つことが期待されます。 例えば、「ネコ」と「イヌ」のベクトルは互いに近く、それらの意味関係を反映しています。

埋め込みモデルはデータ・ポイントをベクトルに変換するようにトレーニングされます。ベクトル・データベースは、これらの埋め込みモデルの出力を保存してインデックスを作成します。データベース内では、事実上あらゆるデータ型にわたり語義上の意味や特徴に基づいてベクトルをグループ化したり、反対のものとして識別したりできます。

ベクトル埋め込みは、レコメンデーション、チャットボット、ChatGPTなどの生成アプリの土台です。

たとえば「car」と「vehicle」という単語を考えてみましょう。意味は似ていますが、綴りは異なります。AIアプリケーションが効果的なセマンティック検索を可能にするには、「car」と「vehicle」のベクトル表現で単語が持つ意味の類似性を捉える必要があります。機械学習において、埋め込みとは意味情報をエンコードする高次元のベクトルを表します。

チュートリアル:IBM watsonxプラットフォームでインテリジェントなワークフロー自動化に生成AIを実装する
ベクトル・データベースの使用方法

ベクトル・データベースは、AIおよびMLアプリケーションで 3つの主要な機能を果たします。

  • ベクトルストレージ
  • ベクトルのインデックス作成
  • クエリまたはプロンプトに基づく類似性検索

動作中、ベクトル・データベースは複数のアルゴリズムを利用して近似最近傍(ANN)検索を実行します。するとアルゴリズムがパイプラインに集められ、クエリされたベクトルに隣接するデータを迅速かつ正確に取得して配信します。

ANN検索を利用すると、たとえばeコマースのカタログで見た目が似ている製品を探すことができます。その他の用途としては異常検知、分類、セマンティック検索などがあります。データ・セットがモデルに入力されるのは1回だけなので、ミリ秒単位で結果が返されます。

ベクトルストレージ

ベクトル・データベースには、埋め込みモデル・アルゴリズムの出力、つまりベクトル埋め込みが保存されています。また、タイトル、説明、データ・タイプなど各ベクトルのメタデータも保存されているので、メタデータのフィルターを使用してクエリすることができます。

この埋め込みを取り込んで保存することにより、データベースでユーザーのプロンプトと類似のベクトル埋め込みを照合して高速の類似検索を実現します。

ベクトルのインデックス作成

高次元のデータ空間における検索を高速化するには、ベクトルにインデックスを付ける必要があります。ベクトル・データベースは、検索機能のためにベクトル埋め込みのインデックスを作成します。

ベクトル・データベースはMLアルゴリズムでベクトルにインデックスを付けます。ベクトルにインデックスを付けると新しいデータ構造にマッピングされ、最近傍検索など、ベクトル間の類似検索や距離検索を迅速に行うことができます。

ベクトルにインデックスを付けるには、HNSW(hierarchical navigable small world)、局所性鋭敏ハッシュ(LSH)、または直積量子化(PQ)などのアルゴリズムを利用できます。

  • HNSWは木のような構造を作ることから、よく使われています。ツリーの各ノードには、その階層を含む一連のベクトルが表示されます。ベクトル間の類似点がノード間のエッジに表示されます。

  • LSHでは、近似最近傍探索を使用してコンテンツをインデックス化します。速度をさらに高めるために、網羅的ではないものの近似的な結果を返すことによってインデックスを最適化できます。

  • PQは、各データ・セットを短くてメモリ効率の良い表現に変換します。すべてのベクトルではなく、短い表現のみが保存されます。
クエリまたはプロンプトに基づく類似性検索

クエリ・ベクトルは検索クエリのベクトル表現です。ユーザーがAIモデルにクエリまたはプロンプトを送信すると、モデルはクエリまたはプロンプトの埋め込みを計算します。次に、データベースでクエリのベクトルとインデックスに保存されているベクトルの距離を計算し、類似結果を返します。

データベースでは、最近傍検索などのさまざまなアルゴリズムを利用してベクトル間の距離を測定できます。コサイン類似度など、さまざまな類似性メトリクスに基づいた測定法もあります。

データベースは類似性ランキングに従って、クエリのベクトルに最も類似したベクトルまたは最近傍のベクトルを返します。こうした計算により、レコメンデーション・システム、セマンティック検索、画像認識、その他の自然言語処理タスクといった多様な機械学習タスクに対応します。

ベクトル・データベースの利点

ベクトル・データベースには以下のような多くのメリットがあるため、エンタープライズ向けのAIベース・アプリケーションを強化する上で一般的な方法となっています。

  • 速度と性能
  • 拡張性
  • 所有コストの削減
  • データ管理
  • 柔軟性
速度と性能

ベクトル・データベースでは、検索を高速化するさまざまなインデックス手法を用いています。ベクトルのインデックス付けと最近傍探索のような距離計算アルゴリズムは、数百万、数十億ものデータ・ポイントを持つ大規模なデータ・セットから関連結果を検索する際のパフォーマンスを最適化するのに役立ちます。

考慮すべき点は、ベクトル・データベースは近似的な結果を返すということです。より高い精度が必要なアプリケーションでは、処理速度が遅くなっても別の種類のデータベースを使用すべき場合があります。

拡張性

ベクトル・データベースは、クエリ要求やデータ量が増加してもノードを追加してパフォーマンスを維持しながら水平方向に拡張することで、大量の非構造化データを保存・管理することができます。

所有コストの削減

ベクトル・データベースはデータ検索を高速化できるため、基盤モデルのトレーニングをスピードアップできます。

データ管理

ベクトル・データベースには通常、新しい非構造化データを簡単に更新および挿入するための埋め込み機能が備わっています。

柔軟性

ベクトル・データベースは、画像、動画、その他の多次元データを利用する際の複雑さに対処できるよう構築されています。

セマンティック検索から対話型AIアプリケーションに至るまでの複数のユースケースに基づいて、ビジネスとAIの要件を満たすようにベクター・データベースをカスタマイズできます。組織は、IBM® Graniteシリーズ・モデル、MetaのLlama-2、GoogleのFlanモデルなどの汎用モデルから始めて、独自のデータをベクター・データベースに提供し、モデルとAIアプリケーションの出力を強化できます。

ベクトル・データベースとデータ戦略に関して考慮すべき点

ベクトル・データベース機能を選択する際、組織には幅広い選択肢があります。データとAIのニーズを満たすデータベースを見極めるために、多くの組織が検討する事項を挙げます。

  • ベクトルデータベースの種類
  • データ・エコシステムとの統合
  • ベクトルインデックスが最適ではない場合
  • ベクトル・データベースを作成およびデプロイするためのツール
ベクトルデータベースの種類

いくつかの選択肢から選択できます。

  • Pineconeのような、スタンドアロンで独自の完全ベクトル化されたデータベース。

  • 埋め込みのRESTful APIを提供し、PythonJavaなどのプログラミング言語に対応したWeaviateやMilvusなどのオープンソース・ソリューション。

  • IBM® watsonx.dataなど、ベクトル・データベース機能が統合されたプラットフォーム。

  • PostgreSQLのオープンソース拡張機能であるpgvectorなど、ベクトル類似検索を利用できるベクトル・データベースおよびデータベース検索の拡張機能。SQLベクトル・データベースは、従来のSQLデータベースが持つ利点とベクトル・データベースの力を組み合わせることができます。
データ・エコシステムとの統合

ベクトル・データベースはスタンドアロンの機能としてではなく、より広範なデータ・AIエコシステムの一部として考慮すべきです。

多くはAPIやネイティブ拡張機能を備えているか、データベースと統合できるようになっています。ベクトル・データベースは企業データを使用してモデルを強化するように構築されているため、組織は適切なデータ・ガバナンスとセキュリティーを導入して、大規模言語モデル(LLM)のトレーニングに使用されるデータが信頼できることを確認する必要もあります。

多くのベクトル・データベースでは、API以外にも、APIをラップできる特定プログラミング言語に対応したソフトウェア開発キット(SDK)を使用しています。開発者は、SDKを使用するとアプリ内のデータ操作が容易になる場合がよくあります。

ベクトルインデックスが最適ではない場合

ベクトル・ストアとインデックスは、複雑なドキュメントから特定の情報を抽出するなど、ファクトまたはファクト・ベースのクエリに基づくアプリケーションでの利用に適しています。

ただし、トピックの概要を取得したい場合、ベクトル・インデックスでは対応できません。この場合、LLMはそのトピックに関して考えられるデータ内のさまざまなコンテキストをすべて調べます。

より高速なオプションとしては、ベクトル・インデックスではなく、リスト・インデックスなど別の種類のインデックスを使用することが挙げられます。リスト・インデックスは各リストの最初の要素をすぐにフェッチするためです。

ベクトル・データベースを作成およびデプロイするためのツール

LangChainは、LLMを使用したアプリケーションの開発に適した、オープンソースのオーケストレーション・フレームワークです。ベクトル・データベースの開発を最適化できます。

PythonベースとJavascriptベースの両方のライブラリで利用できるLangChainのツールとAPIは、チャットボットや仮想エージェントなどのLLM駆動型アプリケーションの構築プロセスを簡素化します。LangChainを使うと、25種類以上のエンベッディング(埋め込み)手法の統合と、50種類以上のベクトル・ストア(クラウドホストおよびローカル)の統合を行うことができます。

データレイクハウスを統合ベクトル・データベースと組み合わせて、エンタープライズ・グレードのAIを強化することができます。組織は信頼性のある管理対象データ全体にわたって、生成AIアプリケーション用にベクトル化された埋め込みを大規模に統合、キュレート、準備できます。これにより、チャットボットやパーソナライズされたレコメンデーション・システム、画像類似検索アプリケーションなど、AIワークロードの関連性と精度が向上します。

ベクトル・データベースのユースケース

ベクトル・データベースのアプリケーションは膨大にあり、成長を続けています。主なユースケースには次のものがあります。

  • 検索拡張生成(RAG)
  • 対話型AI
  • レコメンデーション・エンジン
  • ベクトル検索
検索拡張生成(RAG)

検索拡張生成(RAG)は、大規模言語モデル(LLM)が外部の知識ベースからファクトを取得できるようにするAIフレームワークです。ベクトル・データベースはRAGの実装をサポートする上で鍵となります。

企業は、市場投入までの時間短縮、効率的な推論、信頼性の高い出力がかなうことから、生成AIワークフローにおいてますますRAGを支持しています。このフレームワークは、カスタマー・ケア、人事、人材管理といったユースケースで特に役立ちます。

RAGは、モデルが最新の信頼できるファクトにリンクされること、またユーザーがモデルのソースにアクセスしてその主張を検証できることを保証します。LLMを信頼できるデータに固定すると、モデルのハルシネーション(幻覚)を軽減できます。

RAGは高次元のベクトル・データを使用して、基盤モデルによるコンテキスト内学習のための意味的に関連した情報でプロンプトを充実させます。RAGには、最も大量にデータを処理する推論段階で効果的なストレージと取得が必要です。

ベクトル・データベースは、こうした高次元ベクトルの効率的なインデックス作成、保存、取得に優れており、レコメンデーション・エンジンやチャットボットなどのアプリケーションに必要な速度、精度、スケールを提供します。

対話型AI

ベクトル・データベースは、特にRAGフレームワークの実装に使用される場合、土台となる関連知識を効率的かつ正確に解析する仮想エージェントの能力を強化することでエージェントのやり取りを改善するのに役立ちます。エージェントはユーザーのクエリに対し、リアルタイムの状況に応じた回答に参照資料と該当ページ番号を添えて提供することができます。

レコメンデーション・エンジン

たとえばeコマースのサイトでは、ベクトルを利用して顧客の好みや製品の属性を表すことができます。すると、ベクトルの類似性に基づいて過去に購入したものと似た商品を提案できるようになり、ユーザー・エクスペリエンスが向上し、定着率が高まります。

ベクトル検索

この検索手法は、大規模なコレクションから類似アイテムまたはデータ・ポイント(通常はベクトルとして表される)を見つけるために使用されます。ベクトル検索は要素間の意味関係を捉えることができるため、機械学習モデルや人工知能アプリケーションの処理効率を向上させます。

これらの検索にはいくつかの形式があります。

  • セマンティック検索:クエリの意味やコンテキストに基づいて検索を行うので、より正確で関連性の高い結果を得ることができます。単語もフレーズもベクトルとして表現できるため、セマンティック・ベクトル検索の機能は一般的なキーワードよりもユーザーの意図を深く理解できます。

  • 類似検索とアプリケーション:類似した画像、音声、ビデオ、テキスト・データを検索し、高度な画像認識や音声認識、自然言語処理に対応します。類似性に基づいて画像とビデオのインデックスを作成し、取得できます。
ソリューション
watsonx

IBM watsonxは、ビジネス向けに構築されたAIとデータのプラットフォームです。たった1つのプラットフォームで、ビジネス向けのカスタムAIアプリケーションの構築、あらゆるデータ・ソースの管理、責任あるAIワークフローの迅速化を簡単に実現します。

watsonxの詳細情報

IBM Cloud Databases for Elasticsearch

IBM Cloud Databases for Elasticsearchは、全文検索エンジンの柔軟性とJSON文書データベースのインデックス付け機能を兼ね備えています。IBM Cloud Databases for Elasticsearchは、統合型の機械学習(ML)モデル、特殊なMLノード、データ・タイプ、検索アルゴリズムの組み合わせで企業を強化します。

IBM Cloud Databases for Elasticsearchの詳細はこちら
IBM Cloud Databases for PostgreSQL

IBM Cloud Databases for PostgreSQLはサービスとしてのPostgreSQLデータベースです。高可用性、バックアップ・オーケストレーション、ポイントインタイム・リカバリー(PITR)、リード・レプリカを簡単に手にできるため、チームは構築に時間をかけることができます。

IBM Cloud Databases for PostgreSQLの詳細はこちら
参考情報 ビジネスにおける生成AIの可能性を解き放つ基盤モデルとデータ・ストア

生成AIモデルを正しく利用する組織は、業務効率の向上や意思決定の改善から、マーケティング用コンテンツの迅速な作成まで、無数のメリットを得ることができます。

IBM生成AIアシスタント:2024年完全バイヤーズ・ガイド

本ガイドでは、IBMのAIアシスタントの最も得意とする機能とその対象者、他社製アシスタントとの比較方法、開始方法をご理解いただけます。

検索拡張生成とは何ですか?

RAG は、外部のナレッジ ベースから事実を取得して、最も正確な最新情報に基づいて LLM を確立し、ユーザーに LLM の生成プロセスに関する洞察を提供する AI フレームワークです。

次のステップ

オープンなデータレイクハウス・アーキテクチャー上に構築された、目的に合ったデータ・ストアであるIBM watsonx.dataを使用すれば、あらゆるデータのAIワークロードをどこにでも拡張できます。

watsonx.dataの詳細はこちら デモの予約
脚注

すべてのリンク先は、ibm.comの外部にあります。

1 Gartner Innovation Insight: Vector DatabasesGartner社、2023年9月4日。

2 2024 Strategic Roadmap for StorageGartner社、2024年5月27日。