新聞
模型
產品
keyboard_arrow_down
讀取器
讀取URL或搜索為大模型提供更好的依據。
向量模型
世界一流的多模態多語言向量模型。
重排器
世界一流的重排器,最大限度地提高搜索相關性。
深度搜索
搜索、讀取並推理直到找到最佳答案。
更多的
keyboard_arrow_down
分類器
圖片和文本的零樣本和少樣本分類。
切分器
將長文本切分成塊或詞元。

API 文檔
為您的AI 編程助手 IDE 或大模型自動生成代碼
open_in_new


公司
keyboard_arrow_down
關於我們
聯繫銷售
實習生計劃
加入我們
open_in_new
下載Logo
open_in_new
條款及條件


登錄
login
與檢索無關的神經網路重排序
為什麼選擇 Jina Reranker?
將 Jina Reranker 加入您的現有工作流程:
實際應用:用 Jina Reranker 增強電子商務搜尋
Pipeline #1:僅使用 BM25
Pipeline #2:BM25 + Jina Reranker
整合 Jina Reranker 與 BM25 的影響
準備提升您的搜尋體驗?
技術文章
四月 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!

在本文中,我們將展示如何為電子商務平台實現推薦系統。首先,我們將分析單獨使用 BM25 檢索器的性能。然後,我們將 Jina Reranker 加入檢索管道,看看結果如何變得更相關和更有效。

💡
您可以在 Colab 上跟著做,或者下載 notebook。

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 增強電子商務搜尋

BM25+Rerank dark (1)
查詢通過 BM25,檢索的文檔由 Jina Reranker 進行優化。

讓我們通過一個實際的電子商務範例來展示 Jina Reranker 在實際應用中的影響。這裡的目標是根據用戶的查詢來搜尋產品列表。

為了說明這一點,我們將使用流行的 AI 搜尋和編排框架 Haystack by deepset 設置兩個搜尋管道。第一個管道單獨使用 BM25。第二個將 jina-reranker-v1-base-en 整合到 BM25 系統中。如果您有現有的 Elasticsearch 集群,可以輕鬆地將 Haystack 的 InMemoryDocumentStore 組件替換為 ElasticsearchDocumentStore 來進行相同的實驗。

我們將使用 Kaggle 上的範例數據集。您可以直接在這裡下載 CSV。這個並排比較展示了將 Jina Reranker 整合到搜尋工作流程中帶來的改進。

首先,安裝所有必要的組件:

pip install --q haystack-ai jina-haystack

將 Jina API Key 設置為環境變數。您可以在這裡生成一個。

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)

tagPipeline #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 意味著用戶會在頁面頂部主要收到不相關的結果。

tagPipeline #2:BM25 + Jina Reranker

以下腳本概述了如何逐步構建這個 pipeline:

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 返回了更相關的答案集合。在我們的電商環境中,這意味著更好的用戶體驗和更高的購買可能性。

tag整合 Jina Reranker 與 BM25 的影響

根據我們在電商領域的案例研究,很明顯 Jina Reranker 與 Elasticsearch 等傳統搜尋引擎的整合標誌著搜尋技術的重大躍進。以下是這種整合如何改善搜尋體驗的概述:

  • 提升命中率:Jina Reranker 和傳統搜尋的融合顯著提高了相關結果的出現頻率。這使搜尋過程更準確,更貼近用戶查詢。
  • 改善用戶體驗:搜尋結果的質量有明顯提升。這表明 Jina Reranker 和 BM25 的組合能力更能滿足用戶的特定需求,提升整體搜尋體驗。
  • 複雜查詢的高精度:在處理困難搜尋時,這種協同作用確保了對查詢和相關內容有更詳細的理解。這轉化為更精準、更準確的結果。

tag準備提升您的搜尋體驗?

Jina Reranker 是提高搜尋結果相關性的理想解決方案。它可以無縫整合到您現有的搜尋系統中,並且只需少量程式碼即可快速實現。

如果您對到目前為止閱讀的內容感興趣,並渴望看到 Jina Reranker 能帶來的改變,何不試一試呢?開始您的旅程,親身體驗 Jina AI's Search Foundation models 在您自己環境中的變革力量。

類別:
技術文章
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
中國深圳
中國深圳市賦安科技大廈4樓402
搜索底座
讀取器
向量模型
重排器
深度搜索
分類器
切分器
API 文檔
獲取 Jina API 密鑰
速率限制
API 狀態
公司
關於我們
聯繫銷售
新聞
實習生計劃
加入我們
open_in_new
下載Logo
open_in_new
條款
安全
條款及條件
隱私
管理 Cookie
email
Jina AI © 2020-2025.