Elastic
Jina AI
Modelli
API
keyboard_arrow_down
Lettore
Leggi gli URL e cerca sul web per ottenere LLM più approfonditi.
Incorporamenti
Incorporamenti multimodali multilingue.
Riclassificazione
Strumento di riordinamento per massimizzare la pertinenza dei risultati di ricerca.
MCP
terminal
CLI
article
llms.txt
smart_toy
Agenti
data_object
Schema
menu_book
Documenti
Login
login
Cos'è un reranker?
Perché usare jina-reranker-v1-base-en?
Prima di iniziare: Una Nota sui Node-Postprocessor di LlamaIndex
Segui su Google Colab
Conclusione
Blog tecnico
marzo 07, 2024

RAG di precisione con Jina Reranker e LlamaIndex

Semplicemente riordinalo! Jina Reranker e LlamaIndex portano il tuo RAG al livello successivo.
Collaborative graphic with "RERANKER" and "Llamalindex" logos over a purple background with crossed white abstract lines.
Francesco Kruk, Saahil Ognawala • 7 minuti letti

Mentre i modelli bi-encoder come Jina Embeddings possono recuperare rapidamente molti documenti corrispondenti da un database di embedding pre-calcolati, i modelli di reranking possono raffinare questo insieme utilizzando un approccio più lento ma più preciso di cross-encoding delle query degli utenti e dei documenti recuperati. Jina AI ha rilasciato il nostro primo modello di reranking, jina-reranker-v1-base-en, e in questo articolo presenteremo un ragionamento approfondito sul perché un reranker è essenziale per ottimizzare l'accuratezza RAG e come iniziare a costruire un sistema RAG all'avanguardia utilizzando Jina Embeddings/Reranker, LlamaIndex e il modello linguistico Mixtral-8x7B-Instruct-v0.1 (ospitato su HuggingFace).

Ti servirà:

  • Una chiave combinata per le API di Jina Embeddings e Reranker.
  • Un account HuggingFace e token.
Reranker API
Massimizza facilmente la rilevanza della ricerca e l'accuratezza RAG

Poiché i modelli Jina Embeddings e Reranker così come Mixtral vengono eseguiti in remoto e sono accessibili tramite API RESTful, non avrai bisogno di hardware speciale.

tagCos'è un reranker?

Prima di continuare con il tutorial, è importante evidenziare cosa sono i reranker. Per una comprensione completa di cosa sia un reranker e perché Jina Reranker V1 è la scelta migliore per te, ti invitiamo a leggere il nostro post sul rilascio di Jina Reranker V1 prima di continuare.

Massimizzare la Rilevanza della Ricerca e l'Accuratezza RAG con Jina Reranker
Migliora l'accuratezza della tua ricerca e RAG con Jina Reranker. Il nostro nuovo modello migliora l'accuratezza e la rilevanza del 20% rispetto alla semplice ricerca vettoriale. Provalo ora gratuitamente!

In sintesi, i reranker sono modelli cross-encoder che prendono come input una coppia documento-query ed emettono un punteggio di rilevanza combinato per quella coppia di input. Usando i reranker, gli utenti possono ordinare i documenti dal più al meno rilevante per una data query.

tagPerché usare jina-reranker-v1-base-en?

Il reranking fornisce informazioni molto più rilevanti rispetto all'utilizzo del solo modello di embedding. Nel nostro post di rilascio del modello, abbiamo dimostrato che Jina Reranker si distingue rispetto ai suoi concorrenti open e closed-source e può migliorare i sistemi di ricerca dell'8% nel tasso di successo e del 33% nel mean reciprocal rank.

Questo ha un impatto diretto sulla qualità delle risposte ottenute attraverso la soluzione RAG applicata. Con la teoria a sostegno di questa affermazione, ti mostreremo un esempio pratico così potrai vedere con i tuoi occhi che effetto ha Jina Reranker su una pipeline RAG costruita con LlamaIndex.

tagPrima di iniziare: Una Nota sui Node-Postprocessor di LlamaIndex

I node-postprocessor in LlamaIndex sono moduli che trasformano o filtrano i nodi dopo il recupero e prima della sintesi della risposta all'interno di un motore di query. Come parte di questo pacchetto, LlamaIndex offre sia opzioni integrate che un'API per aggiunte personalizzate.

Jina Reranker è stato ora integrato in LlamaIndex come node postprocessor. Per aumentare l'accuratezza della risposta, i nodi recuperati vengono riordinati in base alla rilevanza per la query, e vengono restituiti i primi N nodi.

tagSegui su Google Colab

Questo tutorial ha un notebook di accompagnamento che puoi eseguire su Google Colab o localmente.

llama_index/docs/docs/examples/node_postprocessor/JinaRerank.ipynb at main · run-llama/llama_index
LlamaIndex è un framework di dati per le tue applicazioni LLM - run-llama/llama_index
GitHubrun-llama

tagIl dataset: Catalogo Prodotti Nike Kids 2024

Per mostrare l'incremento delle prestazioni di Jina Reranker per le applicazioni RAG, abbiamo scelto il Catalogo Prodotti Nike Kids 2024 come nostro dataset. Il documento contiene un insieme strutturato di prodotti per bambini offerti da Nike nel 2024. Abbiamo selezionato questo dataset poiché mostra chiaramente l'effetto dell'utilizzo di un reranker ed è facilmente comprensibile per la maggior parte degli utenti.

tagInstalla i prerequisiti

Per installare i requisiti, esegui:

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]"

tagAccedi a Mixtral LLM

Per utilizzare il LLM Mixtral-8x7B-Instruct-v0.1, hai bisogno di un token HuggingFace.

from llama_index.llms.huggingface import HuggingFaceInferenceAPI

hf_inference_api_key = "<inserisci qui il tuo token di accesso HuggingFace>"

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

tagAccedi a Jina Embeddings e Jina Reranker

Per utilizzare i nostri Jina Embeddings e Jina Reranker, hai bisogno di una chiave API dedicata. Memorizzala in una variabile chiamata api_key e chiama il modello Jina Embeddings da LlamaIndex:

from llama_index.embeddings.jinaai import JinaEmbedding

api_key = "<inserisci qui la tua chiave Jina>"
jina_embeddings = JinaEmbedding(api_key=api_key)

Similmente, puoi chiamare il modello Jina Reranker. Impostando il parametro top_n, puoi decidere quanti dei documenti più rilevanti restituire nell'output finale. In questo caso, impostiamotop_n=2:

from llama_index.postprocessor.jinaai_rerank import JinaRerank

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

tagScarica il catalogo prodotti Nike Kids 2024

Per scaricare i dati, esegui il seguente codice:

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()

tagGenera e indicizza gli embedding con Jina Embeddings

Ora che la configurazione è completa, genereremo i vettori di embedding (nodi) e li indicizzeremo. I modelli Jina Embeddings v2 accettano input fino a 8192 token, abbastanza grandi da non richiedere ulteriore segmentazione del testo o controlli sulla lunghezza delle sezioni per un documento come questo. Per incorporare e indicizzare il documento, esegui il seguente codice:

from llama_index.core import VectorStoreIndex

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

tagQuery dei risultati senza Jina Reranker

Quando facciamo una query per informazioni specifiche da questo set di testi, il query_engine di LlamaIndex esegue le seguenti operazioni:

  1. Con Jina Embeddings V2, crea un embedding per la query.
  2. Usa l'indice per ottenere i top_k = 10 embedding memorizzati con il coseno più alto rispetto all'embedding della query e restituisce la sua posizione nell'indice.
  3. Cerca il testo corrispondente nell'array di dati vettoriali.

Chiediamo qual è la migliore maglia Nike in termini di tessuto:

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)

Risultato:

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)
...
Tre borse Nike Brasilia Small Duffel, $37 ciascuna, in nero, grigio, blu navy con caratteristiche elencate e date dell'offerta dal 07/01/22 al 0

tagQuery dei risultati con Reranker

Ora vogliamo applicare il reranker per vedere se l'applicazione RAG produce un risultato diverso e più rilevante. Per farlo, dobbiamo aggiungere i node_postprocessors al query_engine:

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)

Nota che rispetto al caso precedente senza il reranker, il query_engine ora contiene anche il parametro node_postprocessors impostato su [jina_rerank].

Risultato:

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)

Display del prodotto dei pantaloni Nike DF Stock Recruit da ragazzo con taglie, prezzi e varie opzioni di colore in evidenza.

tagConclusione

Come possiamo vedere, la query senza il reranker porta a un risultato principale che menziona "retro in rete per la traspirabilità" e "vestibilità slim con tessuto morbido al tatto". Al contrario, utilizzando un reranker, otteniamo un risultato principale che è "progettato per una traspirabilità ottimale", ha un "design che assorbe l'umidità" che "ti mantiene asciutto e fresco sotto la pressione della partita" e presenta "tessuto leggero con una vestibilità comoda e rilassata".

Il secondo risultato è molto più accurato e appropriato per la query che abbiamo fatto. Con i nostri ultimi due post, abbiamo dimostrato sia da una prospettiva teorica che pratica che aggiungere Jina Reranker alla tua pipeline RAG aumenta l'accuratezza del recupero e migliora la qualità delle risposte che ottieni da essa.

Categorie:
Blog tecnico
rss_feed

Per saperne di più
marzo 11, 2026 • 7 minuti letti
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.
marzo 06, 2026 • 6 minuti letti
Identifying Embedding Models from Raw Numerical Values
Han Xiao
Fingerprint illustration made from numbers, showcasing digital and high-tech design on a light background.
settembre 09, 2025 • 11 minuti letti
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
Lingua / tema attuale
Search Foundation
Lettore
Incorporamenti
Riclassificazione
Ottieni la chiave API Jina
Limite di velocità
Chi siamo
Notizia
Scarica il logo Jina
open_in_new
Scarica il logo Elastic
open_in_new
Stato dell'API
Elastic © 2026.SicurezzaTermini & CondizioniPrivacyGestisci i cookieNon vendere né condividere le mie informazioni personali
Questo sito web e tutti i contenuti, software, prodotti e servizi ad esso associati sono destinati esclusivamente all'uso professionale. Non è previsto né raccomandato alcun utilizzo da parte dei consumatori.