Elastic
Jina AI
モデル
API
keyboard_arrow_down
Reader
任意の URL を Markdown に変換し、LLM のグラウンディングを向上させます。
Embeddings
マルチモーダルかつ多言語の埋め込み。
Reranker
検索エンジンのランキングを再調整して、検索関連性を最大化する。
MCP
terminal
コマンドライン
article
llms.txt
smart_toy
エージェント
data_object
スキーマ
menu_book
ドキュメント
ログイン
login
リランカーとは何か
jina-reranker-v1-base-en を使用する理由
始める前に:LlamaIndex のノード後処理について
Google Colab で一緒に進める
結論
技術ブログ
3月 07, 2024

Jina Reranker と LlamaIndex による高精度な RAG

まさにそう! Jina Reranker と LlamaIndex であなたの RAG を次のレベルに引き上げましょう。
Collaborative graphic with "RERANKER" and "Llamalindex" logos over a purple background with crossed white abstract lines.
Francesco Kruk, Saahil Ognawala • 7 読む時間

bi-encoder モデル(Jina Embeddingsなど)は事前に計算された埋め込みのデータベースから多くの一致ドキュメントを素早く取得できますが、リランカーモデルはユーザーのクエリと取得したドキュメントをクロスエンコーディングする、より遅いものの正確なアプローチを使用してこのセットを絞り込むことができます。Jina AI は最初のリランカーモデルであるjina-reranker-v1-base-enをリリースしました。この記事では、リランカーが RAG の精度を最適化するために不可欠である理由と、Jina Embeddings/Reranker、LlamaIndex、および Mixtral-8x7B-Instruct-v0.1 言語モデル(HuggingFace でホスト)を使用して最先端の RAG システムを構築する方法について詳しく説明します。

必要なもの:

  • Jina Embeddings と Reranker API の統合キー
  • HuggingFace アカウントとトークン
Reranker API
Maximize the search relevancy and RAG accuracy at ease

Jina Embeddings と Reranker モデル、および Mixtral はリモートで実行され、RESTful API を介してアクセスされるため、特別なハードウェアは必要ありません。

tagリランカーとは何か

チュートリアルを続ける前に、リランカーとは何かを理解することが重要です。リランカーとは何か、そしてなぜ Jina Reranker V1 があなたにとって最適な選択なのかを完全に理解するために、続行する前に Jina Reranker V1 のリリース記事をお読みください。

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!

要約すると、リランカーはクロスエンコーダーモデルで、ドキュメント-クエリのペアを入力として受け取り、その入力ペアに対する関連性スコアを出力します。リランカーを使用することで、ユーザーは特定のクエリに対してドキュメントを最も関連性の高いものから低いものまで並べ替えることができます。

tagjina-reranker-v1-base-en を使用する理由

リランキングは、埋め込みモデルのみを使用する場合よりもはるかに関連性の高い情報を提供します。私たちのモデルリリース記事では、Jina Reranker がオープンソースおよびクローズドソースの競合他社と比較して際立っており、ヒット率で 8%、平均逆順位で 33% の検索システムの改善を実現できることを実証しました。

これは、適用された RAG ソリューションを通じて得られる応答の品質に直接的な影響を与えます。この主張を裏付ける理論とともに、LlamaIndex で構築された RAG パイプラインに Jina Reranker がどのような効果をもたらすかを実例で示します。

tag始める前に:LlamaIndex のノード後処理について

LlamaIndex のノード後処理は、クエリエンジン内で検索後かつ応答生成前にノードを変換またはフィルタリングするモジュールです。このパッケージの一部として、LlamaIndex は組み込みオプションとカスタム追加のための API の両方を提供しています。

Jina Reranker は現在、LlamaIndex にノード後処理として統合されています。応答の精度を向上させるために、取得されたノードはクエリとの関連性に基づいて再順序付けされ、上位 N 個のノードが返されます。

tagGoogle Colab で一緒に進める

このチュートリアルには、Google Colab またはローカルで実行できる付属のノートブックがあります。

llama_index/docs/docs/examples/node_postprocessor/JinaRerank.ipynb at main · run-llama/llama_index
LlamaIndex is a data framework for your LLM applications - run-llama/llama_index
GitHubrun-llama

tagデータセット:2024 Nike Kids 製品カタログ

RAG アプリケーションにおける Jina Reranker のパフォーマンス向上を示すために、2024 Nike Kids 製品カタログをデータセットとして選択しました。このドキュメントには、2024 年に Nike が提供する子供向け製品の構造化されたセットが含まれています。このデータセットを選んだのは、リランカーの効果が明確に示され、多くのユーザーに分かりやすいためです。

tag前提条件のインストール

必要な要件をインストールするには、以下を実行します:

pip install llama-index-postprocessor-jinaai-rerank
pip install llama-index-embeddings-jinaai
pip install llama-index
pip install llama-index-llms-huggingface
pip install "huggingface_hub[inference]"

tagMixtral LLM へのアクセス

Mixtral-8x7B-Instruct-v0.1 LLM を使用するには、HuggingFace トークンが必要です。

from llama_index.llms.huggingface import HuggingFaceInferenceAPI

hf_inference_api_key = "<your HuggingFace access token here>"

mixtral_llm = HuggingFaceInferenceAPI(
    model_name="mistralai/Mixtral-8x7B-Instruct-v0.1",
    token=hf_inference_api_key,
)

tagJina Embeddings と Jina Reranker へのアクセス

Jina Embeddings と Jina Reranker を使用するには、専用のAPI キーが必要です。これを api_key という変数に保存し、LlamaIndex から Jina Embeddings モデルを呼び出します:

from llama_index.embeddings.jinaai import JinaEmbedding

api_key = "<your Jina key here>"
jina_embeddings = JinaEmbedding(api_key=api_key)

同様に、Jina Reranker モデルを呼び出すことができます。top_n パラメータを設定することで、最終出力で返される最も関連性の高いドキュメントの数を決定できます。この場合、top_n=2:

from llama_index.postprocessor.jinaai_rerank import JinaRerank

jina_rerank = JinaRerank(api_key=api_key, top_n=2)

tag2024年 Nike キッズ製品カタログのダウンロード

データをダウンロードするには、以下のコードを実行します:

from llama_index.core import SimpleDirectoryReader
import requests

url = '<https://niketeam-asset-download.nike.net/catalogs/2024/2024_Nike%20Kids_02_09_24.pdf?cb=09302022>'
response = requests.get(url)

with open('Nike_Catalog.pdf', 'wb') as f:
    f.write(response.content)

reader = SimpleDirectoryReader(
    input_files=["Nike_Catalog.pdf"]
)

documents = reader.load_data()

tagJina Embeddings によるエンベディングの生成とインデックス作成

セットアップが完了したので、エンベディングベクトル(ノード)を生成してインデックスを作成します。Jina Embeddings v2 モデルは最大 8192 トークンの入力を受け付けるため、このような文書の場合、さらなるテキストの分割やセクションのトークン数のチェックは必要ありません。文書のエンベッドとインデックス作成を行うには、以下のコードを実行します:

from llama_index.core import VectorStoreIndex

index = VectorStoreIndex.from_documents(
    documents=documents, embed_model=jina_embeddings
)

tagJina Reranker を使用しないクエリ結果の取得

このテキストセットから特定の情報を検索する際、LlamaIndex の query_engine は以下の処理を行います:

  1. Jina Embeddings V2 を使用してクエリのエンベディングを作成します。
  2. インデックスを使用して、クエリエンベディングとのコサイン類似度が最も高い top_k = 10 の保存されたエンベディングを取得し、そのインデックス内の位置を返します。
  3. ベクトルデータ配列内の対応するテキストを検索します。

最高の Nike ジャージの生地について質問してみましょう:

query_engine = index.as_query_engine(
    similarity_top_k=10, llm=mixtral_llm
)
response = query_engine.query(
    "What are the best padded pants that Nike sells?",
)

print(response.source_nodes[0].text)

結果:

NIKE KIDS  EQUIPMENT87NIKE BRASILIA SMALL DUFFEL 9.5 
DM3976 $37.00
SIZES: Misc  OFFER DATE: 07/01/22  END DATE: 07/01/25
Tough 600D polyester • Durable 300D polyester • Detachable shoulder
strap • Ventilated shoe or wet/dry storage • Secure zip pocket • 
Limited lifetime guarantee • Screened Swoosh design trademark
DIMENSIONS:  20" L x 10" W x 11" H 
010 Black/Black/(White) 068 Iron Grey/Black/(White)
...
Three Nike Brasilia Small Duffel Bags, $37 each, in black, grey, navy with features listed and offer dates from 07/01/22 to 0

tagReranker を使用したクエリ結果の取得

次に、RAG アプリケーションが異なる、より関連性の高い結果を生成するかどうかを確認するために、reranker を適用します。そのためには、query_engine に node_postprocessors を追加する必要があります:

query_engine = index.as_query_engine(
    similarity_top_k=10, llm=mixtral_llm, node_postprocessors=[jina_rerank]
)
response = query_engine.query(
    "What are the best padded pants that Nike sells?",
)

print(response.source_nodes[0].text)

reranker を使用しない前のケースと比較して、query_engine には [jina_rerank] に設定された node_postprocessors パラメータが含まれるようになったことに注意してください。

結果:

NIKE KIDS  FOOTBALL – STOCK10
DJ5731 $47.00
SIZES:  XS, S, M, L, XL, 2XL, 3XL
FABRIC:  Body/panels lining: 100% polyester. Pad: 100%
ethylene vinyl acetate.
OFFER DATE:  04/01/23
END DATE:  04/01/27
Take the field ready to give it your all in the Nike Recruit
Pants. They're made from lightweight, stretchy fabric with
sweat-wicking power to help keep you dry and moving freely
when the game heats up. With integrated pads shaped for a
comfortable fit, you'll be prepared for a performance you can
be proud of. Choose from 6 different colors to outfit your
team. Nike Dri-FIT technology moves sweat away from your skin
for quicker evaporation, helping you stay dry and comfortable.
Lightweight knit fabric stretches with you to let you move
naturally. Thigh, knee, hip and tailbone pads are shaped for
an optimal fit, without compromising on coverage. A
body-hugging fit is designed to help keep the padding in place
and close to the body. Belt at the waist lets you dial in your
perfect fit to maximize comfort. Elastic at hems.
Hip width: 15", Inseam length: 11.75" (size medium).
010 Black/(White) 060 Team Anthracite/(White) 100 White/(Black)
419 Team Navy/(White) 493 Team Royal/(White) 657 Team Scarlet/(White)

Product display of boys' Nike DF Stock Recruit Pants with sizes, pricing, and various color options highlighted.

tag結論

見ての通り、reranker を使用しないクエリでは、「通気性のためのメッシュバック」と「ソフトな肌触りのスリムフィット」に言及したトップ結果が得られました。対照的に、reranker を使用することで、「最適な通気性のために設計」され、「試合当日のプレッシャーの下でも乾燥した状態を保つ水分吸収デザイン」を備え、「リラックスした、着やすいフィットの軽量生地」を特徴とするトップ結果が得られました。

2 番目の結果は、私たちが投げかけたクエリに対してはるかに正確で適切なものでした。最後の 2 つの投稿で、私たちは理論的および実践的な観点から、RAG パイプラインに Jina Reranker を追加することで検索精度が向上し、それから得られる応答の質が改善されることを示しました。

カテゴリー:
技術ブログ
rss_feed

続きを読む
3月 11, 2026 • 7 読む時間
Bootstrapping Audio Embeddings from Multimodal LLMs
Han Xiao
Abstract illustration of a sound wave or heartbeat, formed by blue, orange, and gray dots on a white background.
3月 06, 2026 • 6 読む時間
Identifying Embedding Models from Raw Numerical Values
Han Xiao
Fingerprint illustration made from numbers, showcasing digital and high-tech design on a light background.
9月 09, 2025 • 11 読む時間
Multimodal Embeddings in Llama.cpp and GGUF
Andrei Ungureanu
Alex C-G
Cartoon llama in the center of a white background, emitting laser-like beams from its eyes. The illustration creates a playfu
現在の言語 / テーマ
Search Foundation
Reader
Embeddings
Reranker
Jina APIキーを取得する
レート制限
私たちについて
ニュース
Jinaロゴをダウンロード
open_in_new
Elasticロゴをダウンロード
open_in_new
APIステータス
Elastic © 2026.セキュリティ利用規約プライバシーCookieを管理する私の個人情報を販売したり、共有したりしないでください。
このウェブサイトおよび関連するすべてのコンテンツ、ソフトウェア、製品、サービスは、専門家による利用のみを目的としています。一般消費者向けのものではなく、一般消費者による利用も推奨されていません。