異なる角度から検索に最適化された埋め込みモデル
最新のデータ検索システムでは、ユーザはしばしばクエリから1つ以上の結果を要求する。このような期待は、一般的に二項関係に注目する従来の埋め込みモデルにとって課題となる。最近、 SF Unstructured Data Meetup で、 Marqo のソリューションアーキテクトである Robertson Taylor は、一般化対照学習(GCL)を紹介した。このアプローチは、ランクとクエリ認識をモデル学習プロセスに統合することで、バイナリペアリングを超えるものである。
ロバートソン、8月のSFでの非構造化データ・ミートアップで講演](https://assets.zilliz.com/marqo_1_cb45427034.JPG)
このブログでは、Robertsonのプレゼンテーションから重要な洞察を探り、GCLを[ベクトルデータベース]のリーディングカンパニーである[Milvus]と統合し、最適化された[RAG(Retrieval-Augmented Generation)システムを構築する方法を紹介する。Marqoはベクトル・ストレージと検索ソリューションを提供していますが、このブログではMilvusのユーザーがMarqoのファインチューニング・プラットフォームであるMarqtuneでファインチューニングされたGCLモデルをどのように活用し、検索能力を強化できるかに焦点を当てます。
GCLがこれらの課題にどのように対処するのかをより良く理解するために、まずCLIPのような従来のエンベッディングモデルの限界を見てみましょう。
埋め込みモデルとその限界CLIP (Contrastive Language-Image Pretraining)](https://zilliz.com/learn/exploring-openai-clip-the-future-of-multimodal-ai-learning)のような伝統的な埋め込みモデルは、画像検索のようなタスクに広く使われています。これらのモデルは、キャプションと画像のような対になるアイテム間の距離を最小化するように設計されています。このアプローチは単純な二項関係に対してはうまく機能するが、ランク付けされたマルチモーダルな結果を必要とする検索システムのより複雑な要求を満たすのに苦労する。
Robertson氏はまず、既存のモデルに関連するいくつかの課題を取り上げた:
1.二項関係:CLIPのようなモデルは、テキストと画像のペアから学習するため、特定のタスクには効率的だが、ユーザーのクエリに基づいて複数の結果をランキングする場合には不十分である。
2.ランクとクエリ認識の欠如:多くの埋め込みモデルは、ユーザーの行動やインタラクションデータに基づいて結果を調整することなく、すべてのクエリを平等に扱います。
3.限られたマルチモーダル機能:ほとんどのモデルは、テキストか画像のいずれかを扱うことに優れていますが、これらのデータタイプを効果的に組み合わせることに苦労しています。
4.効果的でないクロスフィールドの組み合わせ:既存のモデルは、タイトル、説明、レビューなど複数のフィールドの情報を1つのベクトル表現に効果的に組み合わせることができないことが多い。
これらの限界は、従来のモデルが管理された環境では十分に機能するものの、ランキングやマルチモーダル機能が重要な実世界のシナリオではしばしば不足することを意味する。
CLIPモデルが一般的にどのように学習されるかを説明するために、以下の図を見てみよう:
図1:CLIPの学習方法](https://assets.zilliz.com/Figure_1_How_CLIP_is_trained_83837e93d8.png)
CLIPは、テキスト・エンコーダと画像エンコーダの2タワー・アーキテクチャを使用する。モデルは、正のペア(テキストと画像のマッチング)間の距離を最小化し、他のすべてのペア間の距離を最大化するように学習される。このアプローチは特定のタスクには効果的だが、実際の検索シナリオの複雑さを考慮していない。そこでGCLが登場する。
一般化対照学習(GCL):検索最適化のためのソリューション
従来のモデルの限界に対処するため、Marqoは一般化対照学習(GCL)を導入しました。このアプローチは、ランク認識とクエリ認識を学習プロセスに組み込むことで埋め込みモデルを強化し、検索結果の関連性とランキングを大幅に向上させます。
GCLは、いくつかの重要なイノベーションを通じてこれらの課題に取り組んでいます:
ランク認識**:GCLは、クリックやカートに追加するアクションなどのユーザーインタラクションデータを学習プロセスに組み込むことでこの課題を解決します。これにより、モデルはユーザーの好みに基づいて結果をランク付けする方法を学習することができます。
クエリ認識:GCLは、全てのクエリを同等に扱うのではなく、クエリのコンテキストを考慮して埋め込みを微調整します。例えば、ユーザーが一眼レフカメラを検索した場合、GCLはそのクエリがハイエンドのギアを探しているプロのフォトグラファーからのものなのか、エントリーレベルのモデルを探しているコンシューマーからのものなのかを考慮する。このクエリ認識により、システムはより適切な結果を返すことができる。
マルチモーダル機能:GCLは、システムがテキストと画像の両方を統一された方法で埋め込み、検索できるようにすることで、マルチモーダル検索をサポートします。例えば、電子商取引において、GCLは商品のタイトル、説明、レビュー、画像を1つのベクトルにまとめることができ、より関連性の高い検索結果を提供することができます。
クロスフィールド結合**:GCLは、複数のフィールドからの情報を1つのベクトル表現に効果的に組み合わせることを可能にし、検索結果の全体的な質を向上させます。
イントラモーダル理解**:学習時に様々なテキストフィールドを取り入れることで、GCLはテキストからテキストへのクエリをより効果的に処理するモデルの能力を向上させる。
GCLがどのように機能するかを説明するために、GCLを使ってマルチモーダル検索を最適化するプロセスを示した以下の図を見てみましょう:
図2:GCLを使ったマルチモーダル検索の最適化プロセス](https://assets.zilliz.com/Figure_2_Process_of_optimizing_multimodal_retrieval_using_GCL_4a86750064.png)
システムはまず、検索結果のクリックなど、ユーザーのインタラクションをキャプチャすることから始める。そして、これらのインタラクションは、各クエリと結果のペアのスコアを作成するために集約される。クエリはより良い検索パフォーマンスを得るためにモデルを訓練するために使用され、集約されたスコアは訓練中に異なる結果の重要性を重み付けするために使用される。そして、この重み付けされたデータを用いて、クエリ情報とユーザインタラクションスコアの両方を組み込んだモデルが学習される。最後に、学習されたモデルは新しいクエリとスコアを用いて評価され、その性能が評価される。
このプロセスにより、モデルは実際のユーザーの行動から学習し、事前に定義されたペア間の距離を最小化するのではなく、実際の検索シナリオに最適化することができる。さて、GCLが検索最適化における主要な課題をどのように解決するかを見てきたが、特定のタスクや実世界のアプリケーションのためにどのように微調整できるかを探ってみよう。
GCLによるタスクの微調整
GCLは汎用性があり、基本的な検索にとどまらず、様々な検索スタイルのタスクに対してモデルを微調整するために使用することができます。以下の画像は、これらのタスクのいくつかを示しています:
図3:GCLによる微調整タスクの例](https://assets.zilliz.com/Figure_3_Examples_of_fine_tuning_tasks_with_GCL_08f04c4563.png)
これらの微調整タスクのそれぞれについて、さらに詳しく調べてみよう:
**基本的なサーチの強化
GCLは、ユーザーとのインタラクションデータを取り入れることで、従来のクエリからドキュメントへの検索を改善する。つまり、ユーザーがある用語を検索する際、モデルは単にキーワードをマッチさせるだけでなく、ユーザーが過去に同じようなクエリや結果に対してどのようなインタラクションを行ったかを考慮する。例えば、軽量のノートパソコンを検索した多くのユーザーがウルトラブックをクリックした場合、ウルトラブックという用語が明示的に言及されていなくても、モデルはこのクエリに対してウルトラブックを上位にランク付けするように学習します。
**アドバンスド・レコメンデーション
GCLは、クエリからドキュメントへのレコメンデーションと、ドキュメントからドキュメントへのレコメンデーションの両方を可能にします。この二重のアプローチにより、より微妙で文脈に沿った商品提案が可能になります。クエリからドキュメントへのレコメンデーションでは、GCLはユーザーの検索クエリに基づいて、クエリの用語だけでなく、ユーザーの行動パターンも考慮して商品を提案することができます。ドキュメント間のレコメンデーションでは、GCLは、アイテムがあからさまに類似していなくても、機能の類似性、ユーザーとのインタラクションパターン、または文脈上の関連性に基づいて、関連する製品を特定することができる。
エンティティの解決と重複排除。
GCLの文書間マッチング機能は、エンティティ解決と重複排除タスクに威力を発揮します。GCLは、データセット全体の類似項目や同一項目を特定することができる。これは、重複する商品リストを特定する電子商取引や、同じエンティティが複数のデータソースで異なる表現になっている可能性があるデータ統合プロジェクトで特に役立ちます。
**条件検索
この機能により、GCLは文脈情報を検索プロセスに組み込むことができます。例えば、冬用ジャケットを検索すると、ユーザーの地域によって異なる検索結果が得られます(例:寒い地域には重いダウンジャケット、温暖な冬には軽いジャケット)。GCLはこのような条件要素に基づいて検索結果を調整するよう学習し、特定の文脈や市場に合わせた、より関連性の高い検索結果を提供する。
**パーソナライズされた検索
GCLは、閲覧履歴、現在のショッピングカート内のアイテム、過去の購買行動など、ユーザー固有のコンテキストを考慮することで、パーソナライズをさらに一歩進めます。これにより、ユーザーの現在の興味やニーズに沿った、高度にカスタマイズされた検索結果を得ることができます。例えば、あるユーザーがハイエンドのカメラ機材を閲覧していた場合、三脚を検索すると、格安の選択肢よりもプロ仕様の選択肢が優先されるかもしれません。
**分類と分類法のマッピング
GCLは、事前に定義された分類法に商品を自動的に分類するような、分類タスクに適用することができる。これは、手作業での分類に時間がかかり、ミスが発生しやすい大規模なeコマースプラットフォームやコンテンツ管理システムに特に有効です。GCLは、既存の分類やユーザーとのやり取りから学習し、新しいアイテムの分類方法をインテリジェントに決定することで、一貫性を確保し、大規模なデータセットの全体的な構成を改善することができます。
これらの微調整タスクにより、GCLは様々な検索課題に対して高い適応性を持つ。GCLが実際のシナリオでどのように適用されているかを見てみよう。
GCLの実世界での応用
ロバートソン氏は、GCLが現実世界の問題を解決するためにどのように使われているか、いくつかの例を紹介した。あるeコマース・プラットフォームでは、当初、既製のモデルを使った基本的なベクトル検索ソリューションを導入していた。しかし、このプラットフォームでは、システムが適切な結果を提供できていなかったため、カートへの追加率や全体的なエンゲージメントが急激に低下した。
GCLを統合した後、プラットフォームは大幅に改善されました。よりユーザーの嗜好に沿った商品が上位にランクされ、エンゲージメントの向上と売上の増加につながった。このプラットフォームは、ユーザーレビューや商品画像のような非構造化データを活用して、検索結果の関連性を向上させることができました。クリックや購買行動など、ユーザーとのインタラクションのデータを取り込むことで、このプラットフォームはパーソナライズされたランク付けされた検索結果を提供する能力を強化した。
学術研究の分野では、GCLは著者の詳細や引用などのメタデータを検索プロセスに組み込むことで、関連する研究論文の検索を改善した。これにより、検索プロセスが高速化されただけでなく、検索結果の関連性も向上し、大規模データベースをナビゲートする研究者にとってより効果的なシステムとなった。
次に、本番環境でのパフォーマンスをさらに向上させるために、GCLがどのように高度な技術を組み込んでいるかを見てみよう。
GCLの高度なテクニック
Robertson氏は、GCLモデルのパフォーマンスをさらに向上させるいくつかの高度なテクニックについて触れました。これには、切り捨てや 埋込みの2値化のような、生産性を考慮した学習方法が含まれる。
図4:埋め込み値の切り捨てと2値化](https://assets.zilliz.com/Figure_4_Truncation_and_binarization_of_embeddings_5cdedf4fa0.png)
切り捨てを考慮した学習により、マトリョーシカ埋め込みを作成することができます。マトリョーシカ埋め込みは、忠実度を損なうことなく埋め込みサイズを2-4倍に縮小することができます。このモデルは、単一のモデルから様々なサイズの意味のある表現を作成することを学習する。2値化学習は、0か1しかない埋め込みを学習することで、忠実度の損失を最小限に抑えながら、ストレージとレイテンシを大幅に削減することを可能にするもう1つのテクニックです。これらの技術は、ストレージコストと検索速度が重要な要素である生産環境において特に価値がある。
GCLはまた、検索結果をより微妙に制御することを可能にする、条件付き埋め込みもサポートしています。
図5:条件付き埋め込み](https://assets.zilliz.com/Figure_5_Conditional_Embeddings_98ab880cf7.png)
クエリに接頭辞や条件文を使うことで、モデルは特定の条件に基づいて検索結果を調整することを学習することができる。例えば、USA Marketplace:一眼レフカメラは、**UKマーケットプレイス:一眼レフカメラ条件埋め込みは、画像生成モデルでプロンプトがどのように機能するかと同様に、結果のスタイルや品質に影響を与えるために使用することもできます。
これらの高度なテクニックは、GCLの技術的側面を強化するだけでなく、実世界の検索タスクにおける性能向上にもつながります。GCLで訓練されたモデルが、従来のアプローチと比較してどのようなパフォーマンスを発揮するか見てみよう。
GCL によるパフォーマンスの向上
GCLを使用することで、いくつかの様々なシナリオにおいてパフォーマンスが向上する。Robertsonによって共有されたそれらのいくつかを見てみましょう:
図6:GCLで訓練された埋め込みモデルと他のモデルとの性能比較](https://assets.zilliz.com/Figure_6_Performance_comparison_between_GC_Ltrained_embedding_models_versus_others_94db2d3367.png)
ドメイン内性能は、事前に訓練されたモデルと比較して、NDCG(正規化割引累積利得)が6倍増加した。訓練中に見られなかった新しいクエリに対しても、GCLは訓練済みモデルを3倍近く上回った。訓練中に見られなかった新しいデータセットに適用した場合、GCLはその性能優位性を維持した。ゼロショットのシナリオにおいても、GCLは従来のモデルと比較してNDCGの改善を示した。これらの結果は、様々な検索シナリオにおけるGCLの頑健性と汎用性を示している。
検索効果、特に新規シナリオとゼロショット・シナリオにおけるこのような大幅な改善により、GCLは検索システムの性能を再定義する態勢が整った。では、GCLとMilvusを活用することで、これらの利点をどのようにお客様のRAGアプリケーションにもたらすことができるかを見てみましょう。
RAGアプリケーションにおけるGCLとMilvusの活用
Marqoは埋め込みベースの検索のための包括的なソリューションを提供していますが、多くの組織は既にベクターデータベースのニーズをMilvusに依存しています。Milvusを使用している、またはデータインフラに統合する予定がある場合でも、RAG(Retrieval-Augmented Generation)アプリケーションでGCLの微調整モデルを活用することができます。
ここでは、GCLとMilvusをRAGに統合する方法をご紹介します:
1.Marqtuneによるファインチューニング:Marqtune(Marqoのファインチューニングプラットフォーム)を使用して、事前にトレーニングされたモデルにGCLを適用します](https://www.marqo.ai/blog/getting-started-with-marqtune)。このプロセスにより、特定の検索タスクに対してモデルを最適化します。
2.ファインチューニング済みモデルのダウンロード:ファインチューニング後、最適化されたモデルを Marqtune からダウンロードします。
3.Milvusとの統合:ファインチューニングされたモデルを使ってエンベッディングを生成し、Milvusに保存・検索することができます。
4.効率的な検索:Milvusの最適化された大規模かつ高速なベクトル検索機能を活用。GCLのクエリを考慮した埋め込みと組み合わせることで、Milvusは複雑なマルチモーダルデータセットであっても、関連する結果を効率的にランク付けして返すことができます。
5.拡張性:データセットが大きくなるにつれ、Milvusは何十億もの埋込みデータの保存と検索という増大する要求に対応し、一貫したパフォーマンスを維持します。
GCLとMilvusを組み合わせることで、検索支援システムは素晴らしいスケーラビリティとパフォーマンスを達成することができます。しかし、なぜMilvusがこのようなアプリケーションに理想的なのでしょうか?
GCL拡張RAGシステムにMilvusを選ぶ理由とは?
一般化対比学習(GCL)で微調整されたモデルを使用して検索補強生成(RAG)システムを実装する場合、適切なベクトルデータベースを選択することが重要です。Milvusは、その堅牢な機能と高度な技術により、優れた選択肢として際立っています。ここでは、MilvusがGCLで生成された埋め込みデータを扱い、効率的なRAGアプリケーションを実現するのに適している理由を探ってみましょう。
Milvusの主な機能
1.マルチテナンシーサポート:Milvusでは、複数のユーザまたはアプリケーションが互いに干渉することなく同じシステム上で作業することができます。この機能は、セキュアで分離されたデータアクセスを提供するため、異なるチームやプロジェクトが同じMilvusインスタンスを使用する必要があるエンタープライズ環境に最適です。GCL 拡張 RAG システムのコンテキストでは、データの分離とセキュリティを維持したまま、1 つの Milvus デプロイメント上で異なる部署やユースケースに対して複数の検索タスクを実行することができます。
2.拡張性と弾力性のあるアーキテクチャ:増大するデータニーズに対応するために設計されたMilvusは、需要に応じて自動的に拡張します。これにより、データ量が増加しても最適なパフォーマンスを維持することができます。このスケーラビリティは、急速に拡大する文書コレクションを扱うことが多いRAGアプリケーションにとって非常に重要です。GCLでより多くのモデルを微調整し、より多くのエンベッディングを生成しても、Milvusは検索速度や効率を損なうことなく、容易にその増加に対応することができます。
3.**多様なインデックスをサポートMilvusは、 HNSW (Hierarchical Navigable Small World), PQ (Product Quantization), Binary, DiskANN]を含む複数のタイプのインデックスをサポートしています。この多様性により、検索速度、精度、ストレージ効率のバランスを取りながら、特定のユースケースに最も適したインデックスタイプを選択することができます。例えば、HNSWはGCLで生成された埋め込みを高速に検索するのに適しており、PQは大きな埋め込み集合をよりコンパクトに保存するのに適しています。
4.調整可能な一貫性:Milvusではデータの一貫性レベルを調整することができ、アプリケーションのニーズに応じてパフォーマンスとデータ精度のバランスをとることができます。RAGシステムにおいては、この機能は特に有用です。リアルタイムのアプリケーションでは検索速度を優先し、金融や医療アプリケーションのようにデータの正確性が最優先されるシナリオではより強力な一貫性を選択することができます。
5.ハードウェア・アクセラレーテッド・コンピュート:GPUのようなハードウェアを活用するように最適化されたMilvusは、リソース集約的なタスクに対してより高速で効率的な処理を提供します。これは、計算負荷の高いGCLモデルを扱う場合に特に有益です。ハードウェア・アクセラレーションにより、エンベッディング・データベースが大きくなっても、検索時間が短縮され、RAGシステムの応答性が維持されます。
Milvusを支える先進技術
1.柔軟なコンピュート・タイプ:Milvusは、AVX512(Advanced Vector Extensions)、SIMD(Single Instruction, Multiple Data)用のNeon、GPUアクセラレーションなど、さまざまなハードウェア環境に最適化されています。この柔軟性により、Milvusは高性能ハードウェアを効果的に活用し、高速処理とコスト効率の高いスケーラビリティを実現します。GCLで強化されたRAGシステムでは、利用可能なハードウェアと性能要件に基づいて最適なコンピュートタイプを選択できることを意味します。
2.多彩な検索機能:Milvusは、top-K ANN (Approximate Nearest Neighbors)、range ANN およびフィルタリング検索を含む幅広い検索方法をサポートしています。これらの多様な検索タイプにより、検索機能を特定のニーズに合わせることができる。例えば、top-K ANNは、与えられたクエリ埋め込みに対して最も関連性の高い文書を検索するために使用でき、フィルター検索は、より正確な検索のために、意味的類似性とメタデータフィルターを組み合わせることができる。
3.高度なインデックス作成技術:Milvusは15種類のインデックスをサポートしており、データの保存方法や検索方法に柔軟性があります。これには、高速検索のためのHNSWや膨大なデータセットを扱うためのDiskANNのような高度な技術が含まれます。インデックスを適切に選択することで、RAGシステムのパフォーマンスに大きな影響を与えることができ、優先順位に応じて検索速度またはメモリ効率のいずれかに最適化することができます。
4.言語とAPIの柔軟性:Milvusは、Python、Java、Go、Node.jsを含む複数のプログラミング言語をサポートしています。この多様性により、Milvusを既存の技術スタックに統合することが容易になり、開発者は好みの言語で作業することができます。RAGシステムの場合、Milvusが組み込まれている言語に関係なく、既存のコードベースにシームレスに組み込むことができることを意味します。
5.堅牢なデータ管理:Milvusは、コレクションとパーティション管理を含む洗練されたデータ管理機能を提供します。これにより、大規模なエンベッディングデータセットの効率的な整理と検索が可能になります。GCLで強化されたRAGシステムでは、埋め込みデータを論理的なコレクション(文書の種類やドメイン別など)やパーティションに構造化することができ、より的を絞った効率的な検索が可能になります。
堅牢なアーキテクチャと高度な機能を持つMilvusは、検索支援システムでGCLエンハンストモデルを活用するための理想的なインフラストラクチャを提供します。
結論
Robertson氏は、一般化対照学習(GCL)が、ランクとクエリを認識し、結果の関連性とランキングを向上させることで、検索をどのように強化するかを見事に示した。このアプローチは、従来のバイナリーモデルを超えるものであり、電子商取引や学術研究のようなアプリケーションに非常に効果的である。
また、Milvusがそのスケーラブルなアーキテクチャと効率的な埋め込み処理により、複雑なマルチモーダルデータセットに対する高速検索と最適化されたパフォーマンスを実現し、これらの進歩をさらにサポートしていることも確認しました。GCLとMilvusは共に、次世代の検索支援システムを構築するための堅牢なソリューションを提供します。
読み続けて

Why and How to Migrate from Self-Hosted Milvus to Zilliz Cloud
A simple, step-by-step guide to migrating from Milvus to Zilliz Cloud. Learn both endpoint and backup methods for a smooth, scalable vector database migration.
Milvus/Zilliz + Surveillance: How Vector Databases Transform Multi-Camera Tracking
See how Milvus vector database enhances multi-camera tracking with similarity-based matching for better surveillance in retail, warehouses and transport hubs.

DeepSeek vs. OpenAI: A Battle of Innovation in Modern AI
Compare OpenAI's o1 and o3-mini with DeepSeek R1's open-source alternative. Discover which AI model offers the best balance of reasoning capabilities and cost efficiency.
