ソフトウェア開発者としての私の最初のプロジェクトの 1 つは、遺伝子分析用のアルゴリズムを作成することでした。私たちは電気泳動サンプルをスキャンしてデータベース化するソフトウェアを開発し、私の仕事は DNA パターンの画像を表示可能なデータに変換することでした。これを行うために、それぞれの画像をベクトルに変換し、各点がサンプルのプロパティを表しました。このベクトル化の後、情報を効率的に保存し、DNA サンプル間の類似性を計算することができました。
非構造化情報をベクトルに変換することは、現在では一般的な方法です。これは、大規模言語モデル ( LLM )、 画像認識、 自然言語処理、 推奨エンジン、およびその他の機械学習 ( ML ) のユースケースで使用されます。
開発者は非構造化データをベクトルに変換します
ベクトル データベースとベクトル検索は、開発者が非構造化情報をベクトルに変換する 2 つの推奨プラットフォームです。今日、私たちは一般的にベクトル埋め込みまたは埋め込みについて話します。情報がこのような埋め込みとしてエンコードされると、より簡単かつ迅速に保存、検索、比較できるようになります。また、大規模なデータ セットに対する拡張性も大幅に向上します。
Charles Xie は、大企業が AI アプリケーションを構築するために利用しているベクトル データベース管理システムのプロバイダーであるZillizの CEO です。 「強い関心にもかかわらず、ベクター データベースの実際の可能性は依然として過小評価されていることがわかりました」と Xie 氏は言います。 「利点は、非常に大規模な非構造化データのプールに深く入り込み、その価値を引き出すことができることです。ベクトル データベースの役割は、LLM のデータを保存することに限定されません。彼らは、多くの人がまだ気づいていない、より広範な変革能力を持っています。」
ベクトルデータベースの仕組み
デジタル カメラを識別する検索エンジンを構築したいと想像してください。カメラには、サイズ、ブランド、価格、レンズの種類、センサーの種類、画像解像度など、多数の機能があります。 50 の属性を使用して 2,500 台のカメラのインベントリを検索可能にすると仮定します。検索関数と比較関数を実装するには多くの方法がありますが、1 つのアプローチは、 embedding を介して各特徴を 1 つ以上のデータ ポイントに変換することです。この方法で属性がベクトル化されると、ベクトル距離公式を使用して製品の類似性を計算できます。
カメラはかなり単純な例です。たとえば、問題により数十万の科学文書を検索したり、1 億曲を超える音楽の推奨を提供したりする必要がある場合、事態はさらに複雑になります。従来の検索メカニズムはこのような大量のデータでは機能しませんが、ベクトル検索は複雑さを軽減し、高速な計算を可能にします。
「ベクトル データベースは情報をエンコードし、機械の理解に最適な数学的表現に変換します」とBlueOrangeの CEO、Josh Miramant 氏は説明します。 「これらの数学的表現またはベクトルは、データ間の類似点と相違点をエンコードできます。距離や類似性は、モデルが質問に対する最善の答えか最悪の答えを決定するために使用するものです。」
ベクトルデータベースの使用例
ベクトル データベースの真の力は、複雑な自然言語クエリをサポートするアプリケーションの構築に使用できることです。システムはそれらを検索に使用できるように埋め込みに変換します。たとえば、「市場に新しく登場し、優れたビデオを撮影でき、暗い場所でもうまく機能する中価格帯の一眼レフを見つけてください」と言うかもしれません。トランスフォーマは、通常、 エンコーダ トランスフォーマを使用するベクトル データベースを使用して、この質問を埋め込みに変換します。
まず、開発者は質問をトークン化し、単語に分解します。次に、トランスフォーマーを使用して単語の位置をエンコードし、関連性の重みを追加し、フィードフォワード ニューラル ネットワークを使用して抽象表現を作成します。最後に、完成した質問の埋め込みを使用してベクトル データベースを検索します。
ベクトル データベースは、多くの属性と使用例を持つ複雑な情報ソースに対する幅広い検索オプションをサポートします。 LLM はベクトル データベースの多用途性を証明しており、開発者は現在、言語処理や、特に大量の情報を処理する必要があるその他の領域にも LLM を使用しています。
Rock setの CEO、Venkat Venkataramani 氏は、「音声アシスタント、 チャットボット、異常検出、レコメンデーション、パーソナライゼーション エンジンを強化するために機械学習と人工知能を使用するアプリケーションが増えたため、ベクトル検索が爆発的に増加しました。これらはすべて、中核にベクトル埋め込みに基づいています」と述べています。 「リアルタイム検索と新しい分析機能をベクトル検索に導入することで、開発者はメタデータとベクトル埋め込みをリアルタイムでインデックス付けおよび更新できます。これは、類似性検索、推奨エンジン、生成型 AI の質問と回答、 チャットボットに関して重要なコンポーネントです。」
LLM でのベクトル データベースの使用
ベクター データベースを使用すると、開発者は特殊な言語モデルを作成できます。また、情報のベクトル化方法を高度に制御することもできます。たとえば、開発者は、ユーザーが電子商取引 Web サイトでさまざまな種類の書籍を検索できるように、汎用の埋め込みを作成できます。あるいは、歴史、科学、その他の本のカテゴリに特定のベクトル埋め込みを作成できます。これを対象分野の専門家やパワー ユーザーが使用して、本の内容について詳細な質問をすることができます。
AnswerRocketの CTO である Mike Finley は、技術的な背景を次のように説明しています。「ベクター データベースを使用すると、大量の非構造化データを言語モデルに読み込むことが非常に簡単になります。」これは、キーの長いリスト (たとえば、「2023 年の消費者傾向」) と、これらのキーを使用して使用できるテキスト (たとえば、アナリスト会社による 2023 年の消費者傾向の分析や、消費財メーカーの社内調査)。
ベクトルデータベースの選択
情報をベクトル埋め込みに変換し、ベクトル検索、類似性比較、質問と回答の機能を作成する場合、開発者にはいくつかの技術的なオプションがあります。 「市場には専用のベクトル データベースと、ベクトル技術で強化された従来の汎用データベースの両方があります」とPerconaの創設者である Peter Zaitsev 氏は言います。開発者はこれら 2 つのオプションのどちらかを選択する必要があります。 「アプリケーションとチームの経験に応じて、どちらのアプローチにもそれぞれ利点があります。」
Persistent Systemsの Gen AI COE 責任者である Rajesh Abhyankar 氏は、「検索エンジン、 チャットボット、自然言語処理に一般的に使用されるベクター データベースには、 Pinecone 、 Faiss 、 Milvus などがあります。」と付け加えています。 Pinecone はレコメンデーション システムと不正行為の検出に、Faiss は画像検索と製品レコメンデーションに特に適しています。 Milvus は、高性能のリアルタイム検索と推奨に使用するのが最適です。
その他の特殊なベクトル データベースには、 Chroma 、 LanceDB 、 Marqo 、 Qdrant 、 Vespa 、 Weaviateなどがあります。ベクトル検索機能を提供する汎用データベースおよびエンジンには、 Cassandra 、 Coveo 、 Elasticsearch OpenSearch、 PostgreSQL 、 Redis 、 Rockset 、 Zilliz などがあります。さらに、ベクトル検索はAzure Cognitive Searchの機能です。 Microsoft のソリューションは、他の多くのベクトル データベース用のコネクタを提供します。 AWS は複数のベクトル データベース オプションもサポートしており、Google Cloud にはVertex AI Vector Searchと他のベクトル データベース テクノロジーへのコネクタがあります。
ベクターデータベースとGenAIのリスク
ベクトル データベースと検索の使用には、データ品質への依存やモデリングの問題など、生成 AI で知られているリスクが伴います。幻覚や作話も含まれます。後者は、トレーニング データの品質を向上させ、リアルタイム情報にアクセスすることで管理できます。
Immutaの研究責任者である Joe Regensburger 氏は、モデルの不正確さを軽減するための推奨事項を次のように述べています。「LLM で有益な結果を達成するには、データの保存場所に関係なく、厳選され、管理された適切なデータが必要です。」彼は、ベクトルの埋め込みが解決すべき最も重要なタスクであると指摘しています。最も重要な情報を含み、柔軟な検索をサポートする埋め込みを作成するには、実際の科学があります。
Couchbaseの製品および戦略担当副社長である Rahul Pradhan 氏は、ベクトル データベースが幻覚の問題を完全に解決できるとさえ信じています。 「LLM のコンテキストでは、LLM は AI の幻覚を軽減し、モデルの知識が一貫性と健全性を保つための長期ストレージを提供します。これにより、不正確な回答のリスクが最小限に抑えられます」とプラダン氏は言います。
結論: ベクター データベースなしでは GenAI なし
長年にわたり、SQL データベースは技術開発の最前線にありました。何十年もの間、企業は構造化された情報を表に整理してきました。現在、開発者は、NoSQL、列指向データベース、ドキュメント データベース、オブジェクト データ ストアを使用して、半構造化データ セットおよび非構造化データ セットを保存およびクエリできるようになりました。現在、私たちは生成型 AI の時代を迎えており、そのためにも同様にベクトル技術が基礎となります。ベクトル化を理解し、ベクトル データベースに精通することが、開発者にとって重要なスキルになりつつあります。 (hv)