Важно идти в ногу с новыми технологиями информационного поиска, но не менее важно не нарушать работу компонентов, которые уже проверены временем и доказали свою бизнес-ценность.
Несмотря на рост векторного поиска на основе ИИ, в реальности большинство компаний все еще полагаются на традиционные технологии поиска, часто используя варианты алгоритма BM25. Это надежная и проверенная временем технология. Переход на совершенно новую систему — это не только серьезный шаг, он часто оказывается непрактичным, требуя существенных ресурсов и полной перестройки операций. Кроме того, BM25 является краеугольным камнем лексических поисковых систем, широко используемых в таких популярных поисковых платформах, как Elasticsearch и Solr. Он уже обеспечивает хорошие результаты для многих случаев использования.
Поэтому многие компании не решаются полностью перейти на нейронный поиск, несмотря на убедительные доказательства того, что поиск на основе ИИ значительно повышает удовлетворенность пользователей и качество результатов.
tagНейронное переранжирование, независимое от способа поиска
Reranker — это революционное дополнение к ландшафту поисковых систем. Разработанный для улучшения существующих поисковых систем, таких как Elasticsearch, он служит дополнительным слоем, работающим как надстройка для повышения качества поиска. Ему не нужно знать, с какой поисковой технологией он связан, он просто берет список совпадений и переупорядочивает их для улучшения результатов.
Jina Reranker добавляет более глубокий уровень понимания к традиционным технологиям поиска. Алгоритмы вроде BM25 хорошо справляются с поиском документов на основе частоты терминов, но им сложно оценивать смысл извлекаемых текстов в свете намерений пользователя. Именно здесь преуспевает ИИ: Reranker помогает получать результаты, которые лучше соответствуют тому, что ищут пользователи.
Поэтому для бизнеса, который хочет привнести мощные преимущества ИИ-моделей в свои поисковые системы, добавление Jina Reranker может быть мудрым решением, не требующим замены существующей поисковой инфраструктуры. Речь идет об улучшении результатов поиска, чтобы сделать их не просто приемлемыми, а исключительными: более релевантными и точными.
tagПочему Jina Reranker?
Среди моделей переранжирования модели Jina Reranker выделяются как лидеры с передовыми показателями в тестах производительности.

В этой статье мы покажем, как реализовать систему рекомендаций для платформ электронной коммерции. Сначала мы проанализируем работу поиска на основе BM25 отдельно. Затем мы добавим Jina Reranker в конвейер поиска и посмотрим, как результаты станут более релевантными и эффективными.
tagДобавьте Jina Reranker в свой существующий рабочий процесс:

Вот разбор обновленного рабочего процесса с интеграцией Jina Reranker:
- Начальный поиск: Когда вводится запрос, поисковая система BM25 извлекает релевантные документы, в основном сопоставляя термины запроса с документами.
- Переранжирование: jina-reranker-v1-base-en берет эти начальные результаты и использует современный ИИ для оценки релевантности каждого найденного документа с учетом запроса пользователя.
- Возврат результатов: Затем Jina Reranker переупорядочивает результаты поиска, обеспечивая отображение наиболее релевантных документов в начале списка.
Наш простой в использовании API и подробная документация проведут вас через весь процесс, требуя минимальных изменений в вашей системе.

tagПосмотрите в действии: улучшение поиска в e-commerce с помощью Jina Reranker

Давайте рассмотрим практический пример электронной коммерции, чтобы продемонстрировать влияние Jina Reranker в реальных приложениях. Цель здесь — поиск товаров на основе запроса пользователя.
Для иллюстрации мы настроим два конвейера поиска, используя популярный фреймворк поиска и оркестрации ИИ Haystack от deepset. Первый конвейер использует только BM25. Второй интегрирует jina-reranker-v1-base-en в систему BM25. Вы можете легко заменить компонент InMemoryDocumentStore
от Haystack на ElasticsearchDocumentStore
, чтобы провести такой же эксперимент, если у вас есть существующий кластер Elasticsearch.
Мы будем использовать набор данных с Kaggle. Вы можете напрямую скачать CSV-файл здесь. Это сравнение наглядно демонстрирует улучшения, достигаемые при включении Jina Reranker в процесс поиска.
Для начала установите все необходимые компоненты:
pip install --q haystack-ai jina-haystack
Установите ключ API Jina как переменную окружения. Вы можете сгенерировать его здесь.
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)
Вот миниатюры 50 результатов, возвращенных BM25:

Мы видим, что результаты связаны с ночной одеждой, частично соответствуя запросу, но наиболее релевантные совпадения (выделенные жирным изображения в сетке выше) теряются среди множества товаров, найденных 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)
Вот топ-10 результатов, возвращенных Jina Reranker:

По сравнению с BM25, Jina Reranker возвращает гораздо более релевантную подборку ответов. В нашем случае с электронной коммерцией это приводит к улучшению пользовательского опыта и повышению вероятности покупок.
tagВлияние интеграции Jina Reranker с BM25
После нашего анализа в сфере электронной коммерции очевидно, что интеграция Jina Reranker с традиционными поисковыми системами, такими как Elasticsearch, знаменует значительный прорыв в технологии поиска. Вот обзор того, как эта интеграция улучшает поисковый опыт:
- Повышенные показатели попаданий: Объединение Jina Reranker и традиционного поиска заметно увеличило частоту релевантных результатов. Это делает процесс поиска более точным, лучше соответствующим запросам пользователей.
- Улучшенный пользовательский опыт: Наблюдается ощутимое улучшение качества результатов поиска. Это показывает, что совместные возможности Jina Reranker и BM25 лучше соответствуют конкретным потребностям пользователей, улучшая их общий поисковый опыт.
- Высокая точность для сложных запросов: Когда дело доходит до сложных поисков, это взаимодействие обеспечивает более глубокое понимание как запроса, так и связанного контента. Это приводит к более четким и точным результатам.
tagГотовы улучшить ваш поисковый опыт?
Jina Reranker — это идеальное решение для повышения релевантности ваших результатов поиска. Он легко интегрируется с вашей существующей поисковой системой и может быть внедрен быстро с минимальным кодированием.
Если вас заинтересовало прочитанное и вы хотите увидеть, какую разницу может внести Jina Reranker, почему бы не попробовать? Начните свой путь и убедитесь в преобразующей силе базовых поисковых моделей Jina AI в вашей собственной среде.