Jeffrey Erickson | コンテンツ・ストラテジスト | 2024年10月29日
あまり知られていないベクトル・データ型が、生成AIを実現する重要な要素として最近注目されています。しかし、ベクトル(およびそれらを保存、分析できるデータベース)は、長年にわたり、注目されないままでした。これらは、都市計画や、輸送ロジスティクス、環境分析のための地理空間マッピングと分析に活用されていました。最近では、ベクトルは、小売製品の推奨エンジンや、音楽・動画のストリーミング・サイトにも使用されています。
生成AIは、これらのユースケースに基づいて構築され、検索拡張生成(RAG)を含む関連テクノロジーとともに、ベクトルおよびベクトル・データベースを使用して新しいイノベーションへの扉を開きます。
ベクトルは、オブジェクトの特徴を数式で表現する手法で、オブジェクトが単語、文、ドキュメント、イメージ、動画またはオーディオ・ファイルのいずれであるかを表します。このような非構造化コンテンツの比較や検索はコンピュータにとって困難であるため、ベクトルが必要になります。一方、ベクトルの比較や検索ははるかに簡単で、十分に理解されている数学に基づいています。
ベクトルは、その基となるデータ・オブジェクトとともに、またはデータ・オブジェクトへのリンクとともにデータベースに保存されます。数学的に互いに近いベクトルは、類似の特徴を持つオブジェクトを記述する傾向があるため、それらをすばやく比較または検索し、同じようなオブジェクトを返すことができます。特定の特徴のみが識別されるクエリ・ベクトルを形成することもできます。検索では、クエリ・ベクトルで指定された特徴に似た特徴を持つオブジェクトが返されます。
ベクトル・データベースは、埋込みベクトルをネイティブに格納・管理し、ドキュメント、イメージ、動画、オーディオなど、記述した非構造化データを処理できる任意のデータベースです。
生成AIのベクトル検索の重要性により、テクノロジー業界は多くの専門的なスタンドアロン・ベクトル・データベースを生成し、企業はデータ・インフラストラクチャに追加できます。一方、Oracle Databaseやオープン・ソースのMySQLデータベースなど、人気が確立された製品は、他の多くのデータ型とともにネイティブにベクトル・データ型が組み込まれています。これにより、ビジネス・データとセマンティク・データの両方のデータ型がシングル・データベースで利用できるようになるため、両方のデータの組み合わせに対する検索がより高速かつ正確になります。また、このアプローチでは、ビジネスのプライマリ・データベースに加えて、別の特殊なベクトル・データベースを使用するときに発生するデータの整合性の問題を回避できます。
ベクトル・インデックスとベクトル・データベースはどちらも、ベクトル(ドキュメント、イメージ、動画またはオーディオ・ファイルなど、オブジェクトの特徴を表す数値のセット)を効率的に格納および取得するように設計されています。ただし、特性やユースケースは異なります。ベクトル・インデックスは、主に「最近傍検索」に使用されます。この検索では、特定のクエリ・ベクトルに最も近いベクトルを見つけることが目的です。インデックスは、推奨エンジンなど、迅速かつ正確な類似性検索を必要とするアプリケーションに適しています。一方、ベクトル・データベースは、組織が取得および分析のためにベクトルを格納する場所です。エンタープライズ・クラスのベクトル・データベースは、メタデータ・ストレージ、データのバージョニング、その他のシステムとの統合など、「最近傍検索」以外にも便利な機能を提供します。
ベクトル・インデックスとベクトル・データベースの主な違いは、ベクトル・インデックスには、テキスト、イメージ、オーディオ・ファイルなどの非構造化データの属性に関する情報が格納されることです。この情報は、ベクトルと呼ばれる数値のセットで表されます。ベクトル・インデックスは、このデータを保持し、データベースがオブジェクトをすばやく識別して照合できるように索引付けします。
ベクトル・データベースには、これらのインデックスとそれらが記述するオブジェクトが格納されます。ただし、データベースがベクトル・インデックスとデータ・オブジェクトを配置する方法は異なります。Oracle Databaseなどのベクトル対応データベースは、データ・オブジェクトの記憶域と、データおよびベクトルの検索方法を分離します。これにより、メタデータや最新のビジネス・データに対するSQLの成熟したクエリ機能を使用しながら、ベクトル検索の速度とコンテキストに基づく適合性を組み合わせることができます。このアプローチは、たとえば、関連する小売製品のベクトル検索でも最新の価格と在庫を同時に提供できることを意味します。
主なポイント
企業は、生成AIモデルを微調整にコストと労力をかける代わりに、LLMが出力を生成するために使用するデータをキュレートしています。最新の企業情報を含むベクトル・データベースを使用しています。検索拡張生成(RAG)と呼ばれるこのアーキテクチャ・アプローチによって、大量の一般データでトレーニングされたLLMは、ベクトル・データベース内で検出されたプライベート・データを活用して、より優れた応答を生成します。
たとえば、LLMを活用したチャットボットが、一般的なメッセージではなく小売業者の顧客レコードやEメール通信にアクセスできれば、「注文した商品は出荷されましたか」などの問い合わせに対して、より有用でパーソナライズされた回答を提供できます。
RAGは、ベクトル・データベースのどのドキュメントがその出力を通知したかを引用して、生成AIモデルの信頼性と正確性を向上させることもできます。
当然のことながら、ベクトルの保存と分析に最適化されたデータベースの使用が増加しています。かつては主にマッピングとデータ分析に使用されていたベクトル・データベースは、主要な小売業者や音楽や動画ストリーミング・プロバイダーが一般的に使用する推奨エンジン、仮想アシスタント、生体認証パターン認識、異常検出などの重要な基盤技術となっています。現在では、ベクトル・データベースは新たに画期的な用途を見出しました。それは、生成AIモデルの出力に情報を提供するためにアクセスできる大量の非構造化データを格納することです。
MySQLやOracle Databaseなどの確立されたデータベースでは、ベクトル・データをネイティブ・データ型として、JSON、グラフ、空間、リレーショナルなどのその他の組織のデータとともに組み込む傾向が高まっています。この統合により、生成AI操作のためにデータを別のデータベースに移動する必要がなくなり、プロセスが簡素化され、貴重なデータが信頼できるリポジトリに残ります。
生成AIのユースケースの増加により、ベクトル・データ型の管理が追加された既存のNoSQLやリレーショナル・データベースに加えて、市場には多くの新しいベクトル・データベースが登場しています。
ベクトル・データベースは、データをベクトルとして格納・処理することにより機能します。ベクトル・データベースは、多次元空間におけるオブジェクトの特徴を数学的に表現したものです。これにより、イメージ、オーディオ、動画、センサー・データなどの複雑なデータ型を効率的に格納および問い合わせできるため、ベクトルは推奨システム、自然言語処理、イメージ認識などのユースケースに最適です。
操作は次のいくつかのステップで行われます。
ベクトル・データベースは、列型などの記憶域構造によって、またはインメモリ・データベースなどの実装に基づいて、さまざまなタイプに分類できます。各タイプにはそれぞれの利点があり、どのタイプを選択するかは、特定の要件とユースケースに基づいて決定する必要があります。
カラム型データベースは、データを列に格納し、ディスク上でグループ化します。この配置により、分析には通常、表の列からのデータのフィルタリングと結合が含まれるため、データ分析が高速化されます。データベースでは、レコードを行形式で格納することもできます。これは、レコードの単一アイテムを更新しているトランザクションに役立ちます。ただし、データ分析では、カラム型データベースを使用すると、アナリストは数千または数百万件のレコードのすべての列を非常に迅速にスキャンできます。
ドキュメント・ストア・データベース(ドキュメント指向型データベース)は、ドキュメント指向の情報を管理、取得、格納するプログラムおよびデータ・ストレージ・システムです。ドキュメント・データベースは、JSONのようなドキュメントにデータを柔軟に格納します。このドキュメントは、多様で動的なデータ構造に適しています。これらは、表を使用して固定スキーマでデータを編成するリレーショナル・データベースとは異なります。
グラフ分析は、データ・ポイントをノードとして、関係をエッジとして使用して、グラフ形式でデータを分析するプロセスです。データをこのように見ると、これまで明らかになっていなかったつながりや関係を発見するのに役立ちます。グラフ分析には、グラフ形式をサポートできるデータベースが必要です。これは、専用のグラフ・データベースである場合もあれば、グラフを含む複数のデータ・モデルをサポートする統合データベースである場合もあります。
インメモリ・データベースは、ストレージ・ディスクではなく、アプリケーションのメモリ層にデータを格納し、操作します。このタイプの構造は、分析クエリを高速化するために、列ストア機能やベクトル化されたクエリ・プランと組み合わせられることがよくあります。このタイプのデータ・ストアは、グローバルな通信や、リアルタイム・データに基づいて意思決定を行う必要がある企業での非常に高速な処理をサポートするのに適しています。
キー/値ストア(キー値データベースとも呼ばれる)は、オンライン・ストア内のアイテムなど、頻繁に変更されるデータをすばやく格納して問い合わせる方法です。キー/値ストアはNoSQLタイプのデータベースで、キー値を使用して特定のレコードを問い合わせまたは更新のために特定します。
空間データベースは、空間データを格納・管理します。空間データは、空間内のオブジェクトの物理的な場所およびジオメトリ・プロパティに関する情報を表します。これは、インデックス作成手法およびクエリ操作によって行われます。空間データベースは、オンライン・マッピング、分析、出荷ロジスティクス業務に使用されます。
時系列データベースは、タイムスタンプ付きデータを効率的に格納および分析するために使用され、各データ・ポイントは特定のタイムスタンプまたは時間間隔に関連付けられます。これらのデータベースは、一般的にログ分析や財務に依存するITモニタリング・システムで使用されます。
ベクトル・データベースは、ローカル組織またはビジネスから提供される最新情報へのアクセスを提供して、商用またはオープン・ソースの大規模言語モデルを強化します。これにより、LLMの出力の関連性が高まり、その組織に関係する人々にとってパーソナライズされたものになります。
ベクトル・データベースは、小売業や物流業界、自律型車両を操縦するシステムなど、大量の空間データやジオメトリ・データを扱うさまざまなアプリケーションや組織で使用されています。現在、高度なAIと機械学習を探求する企業もベクトル・データベースを採用しています。たとえば、生成AIモデルは、ローカルで最新のデータを使用して出力を改善するためにベクトル・データベースに依存します。
その他の具体的なユースケースには、次のものがあります。
ベクトル・データベースのユースケースは、それらに依存する組織やアプリケーションと同じくらい多様です。リアルタイムのデータ分析、財務システム、推奨エンジンに加えて、ベクトル・データベースは、画像認識や自然言語処理などのタスクに一般的に必要な複雑なデータ構造を処理するように最適化されています。
データを効率的に格納および処理し、ベクトル・データベースにより、企業は、次のような幅広いアプリケーションに複雑なデータ構造を活用できます。
ベクトル・データベースには、高速類似性検索を含む多くの利点があります。効率的な最近傍検索に最適化されており、大規模なデータセットでも類似アイテムをすばやく取得できます。このため、非構造化データのリアルタイム処理と分析を必要とするアプリケーションや業界、新しい生成AIのユースケースに最適です。
その他にも、次のような利点があります。
生成AIを使用する場合でも、ベクトルを活用するほぼすべての処理においても、Oracleはサポートを提供できます。
世界で最も人気のあるエンタープライズ・データベースであるOracle Databaseは、ベクトルを含むすべてのビジネス・データのためのシングル・データ・プラットフォームを提供します。さまざまなデータベースを監督および同期する必要なく、会社のデータに対する類似性検索の機能を簡単に活用できます。AIベクトル検索では、構造化データと非構造化データの両方に対して、そのセマンティクスや意味、値を理解して検索を実行できます。
リレーショナル・データやJSONドキュメント、グラフ、地理空間データ、テキスト、ベクトルを1つのデータベースに組み合わせることにより、アプリケーションの新機能を迅速に構築できます。Oracle DatabaseのAIベクトル検索は、任意のGenAIサービスとともにRAGパイプラインでも使用できます。また、OracleのHeatWave MySQLデータベース・サービスは、ベクトル検索やその他のユースケースをサポートするためにベクトルをネイティブに処理します。たとえば、Oracle Cloud Infrastructure(OCI)のRAGサービスと組み合わせて使用すると、生成AIインターフェイスを独自のドキュメントに持ち込み、組織の運用データのエキスパートであるAIを提供できます。
データ分析、地理空間アプリケーション、製品の推奨、または生成AIを実現するテクノロジーとしてベクトルを使用する場合でも、Oracleが役立ちます。OracleのフラグシップであるAutonomous DatabaseとOracle HeatWave MySQLはどちらも、開発エクスペリエンスを簡素化するために、他の多くのデータ型とともにベクトルをネイティブ・データ型として管理します。どちらのデータベースもOracle Cloud Infrastructureで実行されます。OCIは、生成AI、コンピュータ・ビジョン、予測分析など、最も要求の厳しいAIワークロードを効率的に処理するために、最新のプロセッサとスーパークラスタ・アーキテクチャで設計されています。Oracle Databaseまたはオープン・ソースのMySQLデータベースを使用して構築する場合でも、ベクトル検索を今すぐ活用できます。
生成AIの時代において、ベクトル・データベースはこれまで以上に企業にとって重要になっています。ベクトル・データ型の格納と管理を検討する開発チームが増えるにつれて、特殊な専用ベクトル・データベースを導入するか、ベクトルだけでなく他の多くのデータ型もサポートするOracle Databaseなどのマルチモデル・データベースを使用するかという決定が迫られることになります。
ベクトル・データベースは、カスタマー・サービスに革命をもたらすチャットボットや医療を変革するアルゴリズムなど、魅力的なAIユースケースにとってきわめて重要です。企業が現在どのようにベクトルの力を活用しているかをご覧ください。
ベクトル・データベースはどのような場合に使用しますか。
ベクトル・データベースは、出荷ロジスティクスや環境調査などの地理空間アプリケーション、小売やオンライン・エンターテインメント・オプションの推奨事項、または最近では個々の組織による生成AIをサポートするデータのプライマリ・ストアハウスなど、さまざまなユースケースに使用できます。
Netflixはベクトル・データベースを使用していますか。
Netflixは、ベクトル・データベースを使用して一般的な推奨エンジンをサポートすると発表しました。カタログ内のすべてのエンターテインメントにベクトル埋込みを適用し、ベクトル・データベースは同様のタイトルのリアルタイム検索を可能にします。