ニュース
モデル
製品
keyboard_arrow_down
ディープサーチ
最善の答えが見つかるまで、検索し、読み、推論してください。
読者
URL を読み取ったり検索したりすると、大規模なモデルのサポートが向上します。
ベクトルモデル
世界クラスのマルチモーダル、多言語埋め込み。
並べ替え者
検索の関連性を最大化する世界クラスのニューラルレトリーバー。
もっと
keyboard_arrow_down
分類子
画像とテキストのゼロショットおよび少数ショットの分類。
スライサー
長いテキストをチャンクまたはトークンに分割します。

APIドキュメント
AIプログラミングアシスタントIDEまたは大規模モデル用のコードを自動生成
open_in_new


会社
keyboard_arrow_down
私たちについて
営業担当者に問い合わせる
インターンプログラム
参加しませんか
open_in_new
ロゴをダウンロード
open_in_new
利用規約


ログイン
login
検索方式に依存しないニューラルリランキング
なぜ Jina Reranker なのか?
既存のワークフローに Jina Reranker を追加する:
実際の動作:Jina Reranker を使用した e コマース検索の強化
パイプライン #1:BM25 のみ
パイプライン #2:BM25 + Jina Reranker
Jina Reranker と BM25 の統合の影響
検索体験を向上させる準備はできていますか?
技術記事
4月 24, 2024

BM25 と AI リランキングの併用:両方の良いとこ取り

レキシカル検索エンジンを完全なベクトル検索インフラに移行するデメリットを避けながら、優れた意味理解の利点を活かすために、Jina Reranker をレキシカル検索エンジンと統合する方法を学びましょう。
Black background embellished with binary code, featuring a central tech-inspired emblem with multicolored dots, BM25 tag, con
Yuting Zhang
Francesco Kruk
Yuting Zhang, Francesco Kruk • 6 読む時間

新しい情報検索技術に対応することは重要ですが、すでに実績があり、ビジネス価値を実証済みのコンポーネントを壊さないことも同様に重要です。

AI 駆動のベクトル検索が成長しているにもかかわらず、実際には多くの企業が従来の検索技術に依存しており、多くの場合 BM25 アルゴリズムの変種を使用しています。これは信頼性が高く、実績のある技術です。完全に新しいシステムへの移行は大きなステップであるだけでなく、多くの場合、相当なリソースと運用の全面的な見直しを必要とするため、実用的ではありません。さらに、BM25 は Elasticsearch や Solr などの広く普及している検索エンジンプラットフォームで一般的に使用される字句検索エンジンの基礎となっています。多くのユースケースですでに強力な結果を提供しています。

そのため、AI ベースの検索がユーザー満足度と結果の品質を大幅に向上させるという説得力のある証拠があるにもかかわらず、多くの企業はニューラル検索への完全な移行をためらっています。

tag検索方式に依存しないニューラルリランキング

Reranker は検索システムの画期的な追加機能です。Elasticsearch などの既存の検索エンジンを強化するように設計されており、提供される検索品質を改善するアドオンのように機能する追加レイヤーとして機能します。接続されている検索技術の種類を知る必要はなく、単にマッチのリストを受け取り、より良い順序に並べ替えます。

Jina Reranker は従来の検索技術にさらに深い理解を加えます。BM25 のようなアルゴリズムは用語の頻度に基づいてドキュメントを検索する点では優れていますが、ユーザーの意図に照らして検索したテキストの意味を評価することは苦手です。これは AI が得意とする分野です:Reranker はユーザーが探しているものにより合致した結果を生み出すのに役立ちます。

したがって、AI モデルの強力な利点を検索フレームワークにもたらしたい企業にとって、Jina Reranker を追加することは賢明な選択であり、既存の検索インフラを置き換える負担を伴いません。これは検索結果を単に許容可能なものではなく、より関連性が高く正確な、優れたものにする改善です。

tagなぜ Jina Reranker なのか?

リランカーモデルの中で、Jina Reranker モデルは最先端として、パフォーマンスベンチマークでトップクラスのスコアを記録しています。

Maximizing Search Relevance and RAG Accuracy with Jina Reranker
Boost your search and RAG accuracy with Jina Reranker. Our new model improves the accuracy and relevance by 20% over simple vector search. Try it now for free!

この記事では、e コマースプラットフォーム向けのレコメンデーションシステムの実装方法をご紹介します。まず、BM25 リトリーバー単体のパフォーマンスを分析します。次に、検索パイプラインに Jina Reranker を追加し、結果がより関連性が高く効果的になる様子を見ていきます。

💡
Colab で実践するか、ノートブックをダウンロードして試すことができます。

tag既存のワークフローに Jina Reranker を追加する:

Screenshot 2024-04-08 at 11.44.21

Jina Reranker を統合した更新されたワークフローの内訳は以下の通りです:

  • 初期検索:クエリが入力されると、BM25 検索エンジンはクエリ用語とドキュメントのマッチングに基づいて関連ドキュメントを検索します。
  • リランキング:jina-reranker-v1-base-en はこれらの初期結果を受け取り、最先端の AI を使用してユーザーのクエリに照らして各検索ドキュメントの関連性を評価します。
  • 結果の返却:Jina Reranker は検索結果を並べ替え、最も関連性の高いドキュメントが上位に表示されるようにします。

私たちの使いやすい API と包括的なドキュメントが、システムへの最小限の変更だけで、プロセス全体をガイドします。

Reranker API
Maximize the search relevancy and RAG accuracy at ease

tag実際の動作:Jina Reranker を使用した e コマース検索の強化

BM25+Rerank dark (1)
クエリが BM25 を通過し、検索されたドキュメントは Jina Reranker によって改善されます。

実際の応用例として、e コマースの例を通じて Jina Reranker の効果を実証してみましょう。ここでの目標は、ユーザーのクエリに基づいて商品リストを検索することです。

これを示すために、人気のある AI 検索・オーケストレーションフレームワークである Haystack by deepset を使用して 2 つの検索パイプラインを設定します。最初のパイプラインは BM25 単独で使用します。2 つ目は BM25 システムに jina-reranker-v1-base-en を統合します。既存の Elasticsearch クラスターがある場合は、Haystack の InMemoryDocumentStore コンポーネントを ElasticsearchDocumentStore に簡単に置き換えて同じ実験を行うことができます。

Kaggle のサンプルデータセットを使用します。CSV はここから直接ダウンロードできます。この比較は、検索ワークフローに Jina Reranker を組み込むことによる改善を示しています。

まず、必要なコンポーネントをすべてインストールします:

pip install --q haystack-ai jina-haystack

Jina API キーを環境変数として設定します。ここで生成できます。

import os
import getpass

os.environ["JINA_API_KEY"] = getpass.getpass()

商品名に基づいて商品を検索します。例:

short_query = "Nightwear for Women"

各 CSV の行を Document に変換します:

import csv
from haystack import Document

documents = []
with open("fashion_data.csv") as f:
    data = csv.reader(f, delimiter=";")
    for row in data:
      row_text = ''.join(row)
      row_doc = Document(content=row_text, meta={"prod_id": row[0], "prod_image": row[1]})
      documents.append(row_doc)

tagパイプライン #1:BM25 のみ

from haystack import Pipeline
from haystack.document_stores.types import DuplicatePolicy
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.retrievers.in_memory import InMemoryBM25Retriever

document_store=InMemoryDocumentStore()
document_store.write_documents(documents=documents, policy=DuplicatePolicy.OVERWRITE)

retriever = InMemoryBM25Retriever(document_store=document_store)

rag_pipeline = Pipeline()
rag_pipeline.add_component("retriever", retriever)
result = rag_pipeline.run(
            {
                "retriever": {"query": query, "top_k": 50},
            }
        )

for doc in result["retriever"]["documents"]:
    print("Product ID:", doc.meta["prod_id"])
    print("Product Image:", doc.meta["prod_image"])
    print("Score:", doc.score)
    print("-"*100)

BM25 によって返された 50 件の結果のサムネイルです:

image

結果はナイトウェアに関連しており、クエリと部分的に一致していますが、最も関連性の高い一致(グリッド内の太字の画像)が BM25 によって取得された多数の製品の中に埋もれてしまっているようです。実際には、BM25 のみを使用すると、ユーザーはページの上部で主に関連性のない結果を受け取ることになります。

tagパイプライン #2:BM25 + Jina Reranker

以下のスクリプトは、このパイプラインを段階的に構築する方法を示しています:

from haystack_integrations.components.rankers.jina import JinaRanker

ranker_retriever = InMemoryBM25Retriever(document_store=document_store)

ranker = JinaRanker()

ranker_pipeline = Pipeline()
ranker_pipeline.add_component("ranker_retriever", ranker_retriever)
ranker_pipeline.add_component("ranker", ranker)

ranker_pipeline.connect("ranker_retriever.documents", "ranker.documents")
result = ranker_pipeline.run(
            {
                "ranker_retriever": {"query": query, "top_k": 50},
                "ranker": {"query": query, "top_k": 10},
            }
        )

for doc in result["ranker"]["documents"]:
    print("Product ID:", doc.meta["prod_id"])
    print("Product Image:", doc.meta["prod_image"])
    print("Score:", doc.score)
    print("-"*100)

Jina Reranker が返した上位 10 件の結果です:

image

BM25 と比較して、Jina Reranker はより関連性の高い回答のコレクションを返します。私たちの e コマースの設定では、これはより良いユーザーエクスペリエンスと購入の可能性の向上につながります。

tagJina Reranker と BM25 の統合の影響

e コマース領域での事例研究を通じて、Jina Reranker と Elasticsearch などの従来の検索エンジンの統合が検索技術において大きな飛躍をもたらすことが明らかになりました。この統合が検索体験を改善する方法の概要は以下の通りです:

  • ヒット率の向上:Jina Reranker と従来の検索の融合により、関連性のある結果の頻度が著しく向上しました。これにより、検索プロセスの精度が高まり、ユーザーのクエリにより密接に適合するようになりました。
  • ユーザーエクスペリエンスの向上:検索結果の品質に明確な改善が見られます。これは、Jina Reranker と BM25 の組み合わせた機能が、ユーザーの特定のニーズにより適合し、全体的な検索体験を向上させていることを示しています。
  • 複雑なクエリに対する高精度:難しい検索に関しては、この相乗効果によりクエリと関連コンテンツの両方をより詳細に理解できます。これにより、より鋭く正確な結果が得られます。

tag検索体験を向上させる準備はできていますか?

Jina Reranker は、検索結果の関連性を高めるための理想的なソリューションです。既存の検索システムとシームレスに統合でき、最小限のコーディングで迅速に実装できます。

ここまでお読みいただいて興味を持たれた方、Jina Reranker がどのような違いをもたらすか確認したい方は、ぜひお試しください。Jina AI の Search Foundation モデルの変革力を、ご自身の環境で体験してみてください。

カテゴリー:
技術記事
rss_feed
オフィス
location_on
カリフォルニア州サニーベール
710 Lakeway Dr、Ste 200、サニーベール、CA 94085、アメリカ合衆国
location_on
ドイツ、ベルリン(本社)
Prinzessinnenstraße 19-20、10969 ベルリン、ドイツ
location_on
中国、北京
中国北京市海淀区西街48号ビル6号5階
location_on
深セン、中国
ルーム 402、4 階、福安テクノロジービル、深セン、中国
検索ベース
ディープサーチ
読者
ベクトルモデル
並べ替え者
分類子
スライサー
APIドキュメント
Jina APIキーを取得する
レート制限
APIステータス
会社
私たちについて
営業担当者に問い合わせる
ニュース
インターンプログラム
参加しませんか
open_in_new
ロゴをダウンロード
open_in_new
条項
安全性
利用規約
プライバシー
Cookieを管理する
email
Jina AI © 2020-2025.