Zilliz Cloudでベクトルを使ったテキスト類似検索をマスターする
我々は、ベクトル埋込みの基礎を探求し、Zilliz CloudとOpenAIの埋込みモデルを使用した実用的な書籍タイトル検索でその適用を実証した。コサイン類似度などの主要な類似度メトリクスを掘り下げ、これらのメトリクスが検索結果の関連性と精度を高める上でどのように重要な役割を果たすかを議論します。さらに、テキスト類似検索のパフォーマンスを最大化するために不可欠なベストプラクティスと最適化戦略を強調します。
シリーズ全体を読む
- 画像ベースの商標類似検索システム:知的財産権保護のよりスマートなソリューション
- HM-ANN 効率的なヘテロジニアスメモリ上の10億点最近傍探索
- ベクトル類似度検索でワードローブを持続可能にする方法
- 近接グラフに基づく近似最近傍探索
- 画像類似性検索でオンラインショッピングをよりインテリジェントにするには?
- グラフィカル・デザイナーのための知的類似性検索システム
- ベクトル類似性検索にフィルタリングをベストフィットさせるには?
- ベクトル類似性検索によるインテリジェントなビデオ重複排除システムの構築
- 最先端の埋め込みを用いたコンピュータビジョンにおける意味的類似性検索の強化
- プロダクションにおける超高速意味的類似性検索
- ベクトル・インデックスによるビッグデータ上の類似検索の高速化(後編)
- ニューラルネットワークの埋め込みを理解する
- 機械学習をアプリケーション開発者により身近なものに
- ベクターデータベースによる対話型AIチャットボットの構築
- 2024年のプレイブックベクトル検索のトップユースケース
- ベクター・データベースの活用による競合他社のインテリジェンス強化
- ベクターデータベースでIoT分析とデバイスデータに革命を起こす
- 推薦システムとベクターデータベース技術の利用について知っておくべきすべて
- ベクターデータベースでスケーラブルなAIを構築する:2024年の戦略
- アプリの機能強化:ベクターデータベースによる検索の最適化
- リスクと不正分析のための金融におけるベクトル・データベースの応用
- ベクターデータベースによる顧客体験の向上:戦略的アプローチ
- PDFをインサイトに変換:Zilliz Cloud Pipelinesによるベクトル化と取り込み
- データの保護ベクターデータベースシステムにおけるセキュリティとプライバシー
- ベクターデータベースを既存のITインフラと統合する
- 医療を変える:患者ケアにおけるベクター・データベースの役割
- ベクターデータベースによるパーソナライズされたユーザー体験の創造
- 予測分析におけるベクトル・データベースの役割
- ベクターデータベースでコンテンツ発見の可能性を引き出す
- ベクターデータベースを活用した次世代Eコマース・パーソナライゼーション
- Zilliz Cloudでベクトルを使ったテキスト類似検索をマスターする
- ベクターデータベースによる顧客体験の向上:戦略的アプローチ
オンライン書店でベクトル・データベースに関する本を探すことを想像してほしい。検索バーに「ベクター・データベース」と入力します。従来の検索方法では、主にタイトルや説明文に "vector "や "database "といったキーワードが含まれている書籍が検索結果に表示されます。このキーワードベースのアプローチは、通常、単純なクエリには十分です。しかし、"advanced techniques for managing large-scale vector databases "のような複雑なクエリを考えてみましょう。このような場合、キーワード検索では、"Scalable Vector Storage Solutions "や "High-Performance Vector Data Handling "といったタイトルの書籍は、クエリとの関連性が高いにもかかわらず、見落とされてしまうかもしれません。このような制限が発生するのは、検索で使用したキーワードと書籍が完全に一致しないためです。
そこで登場するのがセマンティック検索です。従来の検索方法とは異なり、セマンティック検索はクエリの深い意味を理解します。キーワードの完全一致だけでなく、関連する概念、類義語、文脈的に類似した用語まで特定します。このような幅広い理解により、たとえ用語が同じでなくても、あなたのニーズに最も関連するリソースを見つけることができます。このブログポストでは、特にZilliz Cloudのレンズを通して、テキストの類似検索について掘り下げます。テキストクエリをdense vectorsに変換し、Pymilvus(MilvusのPython SDK)を使用してZilliz Cloudに接続する方法を紹介します。また、OpenAIの埋め込みモデルを活用して、効果的な類似検索を行う方法を探ります。
まず、テキスト埋め込みとは何かを理解しましょう。
Zilliz Cloudは、何十億もの埋め込みベクトルを扱うことができるエンタープライズグレードの類似検索のために設計されたクラウドネイティブのベクトルデータベースです。埋め込みベクトルとは、テキスト、画像、その他のデータタイプを幾何学的空間の点に変換した高次元データ表現です。この変換は、複雑な項目を、文字通りの内容だけでなく、意味的な類似性に基づいて定量化し、比較することを可能にするため、非常に重要である。例えば、テキスト・アプリケーションでは、似たような意味を持つ単語やフレーズがこの空間内で近くにマッピングされるため、システムは完全な一致ではなく、概念的な類似性に基づいて情報を理解し、検索することができます。この機能により、Zilliz Cloudは、推薦システム、不正検出、類似検索など、クエリ内のより深い文脈的関係を理解することが鍵となるアプリケーションで特に威力を発揮します。
Zilliz CloudとOpenAIのエンベッディングAPIを使って、本のタイトルを検索してみましょう。
このプロセスは、ドキュメントがZilliz Cloudに取り込まれるところから始まる。組み込みのIngestion Pipelineは、これらのドキュメントをベクトル埋め込みに変換し、指定のコレクションに保存する。ユーザがクエリを送信すると、Zilliz CloudのSearch Pipelineがクエリをベクトル埋め込みに変換し、類似アイテムの検索を開始する。システムは、ユーザーのクエリベクトルとデータベースに格納されたドキュメントベクトル間の空間距離を測定することにより、最も関連性の高い結果を取得します。最後に、Zilliz Cloudは最も関連性の高い上位の結果をユーザーに配信し、類似検索を効率的にスケールアップする。このプロセスを図1に示す。
図1.テキスト類似検索のフローチャート](https://assets.zilliz.com/Fig_1_Flowchart_of_a_text_similarity_af650bf635.png)
このチュートリアルでは、Zilliztech demosにあるコード例を実装することで、仮定の書籍検索シナリオを実現します。ここでは、Zilliz CloudとOpenAIの統合に焦点を当て、テキストの類似検索をセットアップします。これには、図2で詳しく説明されているように、Kaggleから本のタイトルのデータセットをインジェストすることから、クエリを実行することまでが含まれます。
図2 Zilliz CloudとOpenAIの連携による書籍タイトルの検索](https://assets.zilliz.com/Fig_2_Integrating_Zilliz_Cloud_and_Open_AI_to_search_for_book_titles_f5f2f1d2b5.png)
データはまずベクトル表現に変換される。Zilliz Cloudには、データをベクトル埋め込みに変換するための2つのオプションがあります。最初のオプションは、あなたのモデルを使用するか、OpenAI、Cohere、Hugging Faceなどのモデルとの統合のいずれかを選択することです。もう一つの選択肢は、Zilliz Cloud Pipelines機能を選択することで、6つの利用可能なモデルから選択し、エンドツーエンドのパイプラインを作成することができます。このケースでは、OpenAIのembedding APIを使用して、人気のあるオープンソースのベクトルデータベースであるMilvusのマネージドバージョンであるZilliz Cloudにベクトル表現を保存します。データベースに保存された表現により、アプリケーションは類似検索を実行するように設計することができる。ユーザーが自己啓発のような特定のテーマについて問い合わせると、最も関連性の高い書籍のタイトルを得ることができる。
Zilliz Cloudは、ユークリッド距離、コサイン類似度、内積などの類似度メトリクスを実行するためのいくつかの技術を提供している。コラボノート](https://colab.research.google.com/drive/1pI2OtlKdk3P5SzqPwOEjzks93m9zPFKz#scrollTo=tG2SiGm9mPiw)で見たように、本のタイトルの類似検索の例では、コサイン類似度メトリックを使った。コサイン類似度は、多次元空間における2つのベクトル間の角度のコサインを測定する能力により、テキストベクトルを比較するための重要なメトリックです。このアプローチは、ベクトルの大きさではなく向きを捉えるため、テキストの関連性と類似性を判断するのに不可欠です。ベクトルの長さではなく、ベクトルが指す方向に注目することで、余弦類似度は文書の長さのばらつきの影響を効果的に中和する。これは、テキスト文書の長さが大きく変化し、従来のサイズ依存のメトリクスが有効でなくなるようなコンテキストでは特に重要です。コサイン類似度の値は-1から1の範囲で、1はベクトルが比例していること、したがって方向が完全に一致していることを示し、0は直交性(類似性がないこと)を示し、-1は反対方向を示します。
パフォーマンスと精度の最適化
先ほどの書籍検索の例を発展させ、今度はそれに付随する書籍要約ライブラリがあるとします。そのライブラリは、ユーザーエンゲージメントを向上させ、書籍の売上を増やすために、書籍要約記事のレコメンデーションシステムを改善したいと考えています。Zilliz Cloudを使って、この図書館はテキスト類似性検索を実装し、ユーザーが現在読んでいるものと意味的に関連する記事を動的に推薦します。Zillizの推奨するベストプラクティスと考慮事項によると、トークン化やストップワードの除去など、要約のクリーニングと前処理を行い、高品質なデータの準備に注力する。インデックス戦略では、クエリー速度、データサイズ、精度、インデックス時間、コストのトレードオフを考慮し、適切なインデックスタイプを選択し、パラメータを調整することが重要である。さらに、ベクトルモデルを微調整し、最適な最近傍数を選択するなどのクエリパラメータを最適化することで、検索結果の関連性を向上させ、精度とパフォーマンスのバランスをとることができる。バッチクエリやマルチベクタクエリを使うことで、呼び出し回数を減らすことでシステムをさらに最適化し、推薦システムの全体的な効率と効果を高めることができる。類似検索を加速する](https://zilliz.com/blog/Accelerating-Similarity-Search-on-Really-Big-Data-with-Vector-Indexing)他の方法は、このZillizブログで詳しく説明されているように、ベクトルインデックスとしても知られているデータを効果的に整理することを含む。
ベクターデータベースのオープンソースベンチマークツールであるVectorDBBenchによると、Zilliz Cloudは、いくつかのパフォーマンス指標で優れている。1秒あたりのクエリー数(QPS)とp99レイテンシー(リクエストの99%がより速く処理される時間を測定する)でリードしている。さらに、Zilliz Cloudは、100万クエリーあたりのコストという点で、経済的なオプションを提供し、そのコストパフォーマンスの高さでも際立っています。これらのベンチマークは、Zilliz Cloudがベクトル・データベース技術のトップ・パフォーマーであることを強調しています。
結論
Zilliz CloudとOpenAIのエンベッディングモデルを使い、ベクトルエンベッディングの基礎を探求し、実用的な書籍タイトル検索への応用を実証しました。コサイン類似度などの主要な類似度メトリクスを掘り下げ、これらのメトリクスが検索結果の関連性と精度を高める上でいかに重要な役割を果たすかを議論した。さらに、テキスト類似検索のパフォーマンスを最大化するために不可欠なベストプラクティスと最適化戦略を強調しました。
将来を見据えて、ベクトル検索技術の分野が進化し続ける中、Zilliz Cloudのようなツールは、洗練されたセマンティックな検索システムの開発において、さらに重要な役割を果たすことになるでしょう。スタートアップ・インキュベーターであるY Combinatorが主催するHacker Newsでの議論は、すべてのデータベースが必然的にベクトル・データベースに進化することを示唆している。この議論は、異なるニーズやコンテクストによって特殊な技術が採用されるという、データベース技術におけるより広範な傾向を反映している。従来のデータベースとベクトル・データベースのどちらを選択するかは、特定のユースケース、スケーラビリティのニーズ、既存のインフラに大きく依存することは明らかだ。常に最新情報を入手し、これらの進歩に貢献するために、今すぐZilliz on GitHubをフォローすることを検討しよう。
リソース
ハイブリッド検索:テキストと画像を組み合わせて検索機能を強化 - Zillizブログ](https://zilliz.com/learn/hybrid-search-combining-text-and-image)
類似度メトリクスの説明|Zilliz Cloud Developer Hub](https://docs.zilliz.com/docs/search-metrics-explained)
エンベッディング - OpenAI API](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings)
ベクトル類似検索入門](https://zilliz.com/learn/vector-similarity-search)
Milvusベクトルデータベース入門](https://zilliz.com/learn/introduction-to-milvus-vector-database)
クラスタ、コレクション、エンティティ|Zilliz Cloud Developer Hub](https://docs.zilliz.com/docs/manage-collections#collection)
ベクトル埋め込みとは](https://zilliz.com/glossary/vector-embeddings)
ベクトルインデックスでビッグデータの類似検索を高速化 - Zillizブログ](https://zilliz.com/blog/Accelerating-Similarity-Search-on-Really-Big-Data-with-Vector-Indexing)
GitHub - zilliztech/VectorDBBench: A Benchmark Tool for VectorDB](https://github.com/zilliztech/VectorDBBench)
あらゆるデータベースは遅かれ早かれベクトルデータベースになる|ハッカーニュース](https://news.ycombinator.com/item?id=37747534)
セマンティック検索とは](https://zilliz.com/glossary/semantic-search)
AIにおける高密度ベクトル:MLにおけるデータの可能性の最大化 - Zilliz blog](https://zilliz.com/learn/dense-vector-in-ai-maximize-data-potential-in-machine-learning)