Gli embedding di testo, noti per le loro capacità di rappresentazione semantica, insieme al rapido recupero vettoriale, sono oggi la base della ricerca documentale all'interno di vasti dataset. Tuttavia, la sfida spesso risiede nel filtrare questi documenti recuperati per allinearli accuratamente con l'intento di ricerca dell'utente, un compito che va oltre le capacità delle semplici misure di similarità del coseno.
Oggi siamo entusiasti di annunciare Jina Reranker (jina-reranker-v1-base-en), un modello neurale di riordinamento all'avanguardia progettato per affrontare questo problema critico di rilevanza. Jina Reranker migliora il tuo sistema di ricerca e RAG (Retrieval-Augmented Generation) riordinando i documenti recuperati in modo da comprendere profondamente e contestualmente i termini della query di ricerca. Le nostre valutazioni hanno dimostrato notevoli miglioramenti per i sistemi di ricerca che utilizzano Jina Reranker con +8% nel tasso di successo e +33% nel mean reciprocal rank!

tagCos'è un Reranker?
Comprendere il concetto di reranker spesso ci porta a interrogarci sulla necessità di meccanismi di ri-ordinamento nei sistemi di ricerca (ranking). Le domande comuni sono: "Perché abbiamo bisogno di un reranker?" e "Non è già sufficiente ordinare i documenti tramite la similarità del coseno tra gli embedding della query e dei documenti?" Per rispondere a queste domande, rivediamo prima l'approccio basato sulla similarità del coseno con singolo embedding e i suoi limiti.
La similarità del coseno quantifica la somiglianza tra due documenti misurando il coseno dell'angolo tra i loro vettori di embedding. Questa metrica è apprezzata per la sua semplicità ed è stata utilizzata in molti database vettoriali come metodo predefinito di recupero. Tuttavia, questo approccio, comunemente definito come basato sulla rappresentazione, tende a semplificare eccessivamente l'interazione tra query e documenti. In particolare, fatica a catturare l'interazione sfumata a livello sub-documento e sub-query, spesso perdendo la profondità completa dell'intento dell'utente e i dettagli precisi della rilevanza del documento.
È qui che entrano in gioco i reranker. Utilizzando reti neurali profonde, i reranker approfondiscono le interazioni tra la query e i documenti preselezionati. Vanno oltre i semplici embedding a livello documento per abbracciare interazioni a livello token che avvengono all'interno della query, all'interno del documento e attraverso il confine query-documento. Sebbene questo metodo sia computazionalmente più intensivo rispetto alla semplice similarità del coseno, permette un confronto sfumato che incorpora il contesto, il significato semantico e l'intento dietro la query, migliorando sostanzialmente la rilevanza dei risultati di ricerca.
Vector Search via Cosine Similarity | Reranker | |
---|---|---|
Interaction Level | Document-level embeddings | Token-level interactions |
Computational Demand | Low | High |
Most computation happens at | Offline, i.e. indexing time | Online, i.e. query time |
Result | Broad but superficial matching | Highly relevant and precise matching |
Strengths | - Fast and efficient - Simple implementation |
- Deep contextual understanding - Advanced semantic analysis |
Limitations | - Limited by lack of depth and context - May miss nuances of user intent |
- Computationally intensive - Requires more sophisticated models |
Best For | Provides a quick, efficient first pass | Adds depth, enhancing accuracy and relevance of final search results |
In sintesi, il reranker è una componente critica nel pipeline di ricerca. Un sistema di ricerca di alta qualità tipicamente inizia con una fase di recupero vettoriale basato su embedding, che viene poi raffinata da un modello reranker. Questo approccio in due fasi sfrutta i punti di forza di entrambi i modelli, assicurando la consegna di informazioni precise e di alta qualità che si allineano perfettamente con le esigenze dell'utente.
tagIniziare con Jina Reranker
Per iniziare a utilizzare Jina Reranker, visita la nostra pagina Reranker per ottenere la tua YOUR_API_KEY
. Puoi adattare l'esempio di snippet cURL qui sotto modificando la query o aggiungendo più documenti:
curl -X 'POST' \
'https://api.jina.ai/v1/rerank' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "jina-reranker-v1-base-en",
"query": "Organic skincare products for sensitive skin",
"documents": [
"Eco-friendly kitchenware for modern homes",
"Biodegradable cleaning supplies for eco-conscious consumers",
"Organic cotton baby clothes for sensitive skin",
"Natural organic skincare range for sensitive skin",
"Tech gadgets for smart homes: 2024 edition",
"Sustainable gardening tools and compost solutions",
"Sensitive skin-friendly facial cleansers and toners",
"Organic food wraps and storage solutions",
"All-natural pet food for dogs with allergies",
"Yoga mats made from recycled materials"
],
"top_n": 3
}'
In questo esempio, i documenti spaziano dagli articoli per la casa ai gadget tecnologici, dall'abbigliamento fino al cibo per animali, mostrando un'ampia gamma di prodotti che si potrebbero trovare su un sito di e-commerce. Questa diversità richiede che il reranker identifichi e prioritizzi efficacemente gli elementi più rilevanti per la query su "prodotti per la cura della pelle biologici per pelle sensibile", nonostante la presenza di altri prodotti biologici, ecologici o per pelle sensibile in diverse categorie. La risposta è un oggetto JSON come segue:
{
"model": "jina-reranker-v1-base-en",
"usage": {
"total_tokens": 38,
"prompt_tokens": 38
},
"results": [
{
"index": 3,
"document": {
"text": "Natural organic skincare range for sensitive skin"
},
"relevance_score": 0.8292155861854553
},
{
"index": 2,
"document": {
"text": "Organic cotton baby clothes for sensitive skin"
},
"relevance_score": 0.14426936209201813
},
{
"index": 6,
"document": {
"text": "Sensitive skin-friendly facial cleansers and toners"
},
"relevance_score": 0.13857832551002502
}
]
}
tagPrestazioni di Punta di Jina Reranker
Abbiamo valutato Jina Reranker su quattro benchmark chiave per garantire prestazioni di alto livello e rilevanza nella ricerca. Prestazioni migliori in questi benchmark si traducono direttamente in una maggiore precisione, rilevanza e comprensione contestuale nelle applicazioni di ricerca e recupero.
Per confronto, abbiamo incluso altri tre reranker leader di BGE (BAAI), BCE (Netease Youdao), e Cohere nel benchmark. Come mostrano i risultati qui sotto, Jina Reranker detiene il punteggio medio più alto in tutte le categorie rilevanti per il riordinamento, rendendolo un chiaro leader tra i suoi pari.
tagBenchmark 1: LlamaIndex RAG
Uno studio comparativo condotto da LlamaIndex (che abbiamo riprodotto) ha valutato una combinazione di diversi modelli di embedding e riordinamento in compiti RAG. Questo combina due punteggi - Hit-rate (quanto è probabile che un documento rilevante venga recuperato da un modello di embedding) e Mean Reciprocal Rank (MRR - quanto in alto viene classificato il documento più rilevante dal modello di riordinamento).
No Reranker | jina-reranker | bge-reranker-base | bce-reranker-base_v1 | cohere-reranker | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Embedding model | Hit Rate | MRR | Hit Rate | MRR | Hit Rate | MRR | Hit Rate | MRR | Hit Rate | MRR |
jina-embeddings-v2-base-en | 0.8053 | 0.5156 | 0.8737 | 0.7229 | 0.8368 | 0.6568 | 0.8737 | 0.7007 | 0.8842 | 0.7008 |
bge-base-en-v1.5 | 0.7842 | 0.5183 | 0.8368 | 0.6895 | 0.8158 | 0.6586 | 0.8316 | 0.6843 | 0.8368 | 0.6739 |
bce-embedding-base_v1 | 0.8526 | 0.5988 | 0.8895 | 0.7346 | 0.8684 | 0.6927 | 0.9157 | 0.7379 | 0.9158 | 0.7296 |
CohereV3-en | 0.7211 | 0.4900 | 0.8211 | 0.6894 | 0.8000 | 0.6285 | 0.8263 | 0.6855 | 0.8316 | 0.6710 |
Average | 0.7908 | 0.5307 | 0.8553 | 0.7091 | 0.8303 | 0.6592 | 0.8618 | 0.7021 | 0.8671 | 0.6938 |
Miglioramento Sostanziale Rispetto alla Semplice Similarità del Coseno
Il miglioramento che Jina Reranker apporta sia all'Hit Rate che al Mean Reciprocal Rank (MRR) è significativo. In media, l'introduzione di Jina Reranker eleva l'Hit Rate da 0.7908 a 0.8553 (+7.9%), e l'MRR da 0.5307 a 0.7091 (+33.7%). Questo dimostra la capacità del reranker di migliorare drasticamente la precisione e la rilevanza dei risultati di ricerca, garantendo che gli utenti abbiano maggiori probabilità di trovare ciò che stanno cercando con maggiore accuratezza.
Agnosticismo degli Embedding
Le prestazioni di Jina Reranker con diversi modelli di embedding illustrano ulteriormente la sua natura model-agnostic. Che sia abbinato a jina-embeddings-v2-base-en, bge-base-en-v1.5
, bce-embedding-base_v1
, o CohereV3-en
, Jina Reranker migliora costantemente l'Hit Rate e l'MRR. Questa versatilità lo rende uno strumento prezioso per un'ampia gamma di applicazioni, confermando la sua adattabilità a diverse tecnologie sottostanti e casi d'uso.
tagBenchmark 2: BEIR
BIER (Benchmarking IR) valuta l'efficacia del recupero di un modello, inclusi la rilevanza e il NDCG. Un punteggio BIER più alto corrisponde a corrispondenze più accurate e classifiche dei risultati di ricerca migliori.
Dataset | jina-reranker | bge-reranker-base | bce-reranker-base-v1 | cohere-rerank-english-v2.0 |
---|---|---|---|---|
NQ | 0.5951 | 0.5457 | 0.5186 | 0.6004 |
HotpotQA | 0.7447 | 0.7766 | 0.7392 | 0.7202 |
FiQA-2018 | 0.3981 | 0.3228 | 0.3262 | 0.4387 |
CQADupstack | 0.4077 | 0.3516 | 0.3594 | 0.3829 |
Quora | 0.8792 | 0.7001 | 0.8390 | 0.6433 |
FEVER | 0.8707 | 0.8961 | 0.7203 | 0.8265 |
Climate-FEVER | 0.2570 | 0.3399 | 0.2171 | 0.2038 |
TREC-COVID | 0.8523 | 0.7121 | 0.7364 | 0.8419 |
NFCorpus | 0.3809 | 0.3308 | 0.3534 | 0.3673 |
ArguAna | 0.5938 | 0.2620 | 0.3856 | 0.3040 |
Touche-2020 | 0.3065 | 0.2965 | 0.2533 | 0.3052 |
DBPedia | 0.4387 | 0.4196 | 0.4069 | 0.4236 |
SciFact | 0.7549 | 0.7104 | 0.7021 | 0.7379 |
SCIDOCS | 0.1983 | 0.1540 | 0.1802 | 0.1813 |
MSMarco | 0.7042 | 0.7303 | 0.7155 | 0.7350 |
Average | 0.5588 | 0.5032 | 0.4969 | 0.5141 |
tagBenchmark 3: MTEB
Il MTEB (Multilingual Text Embedding Benchmark) esamina complessivamente le capacità di un modello negli embedding di testo, tra cui clustering, classificazione, recupero e altre metriche. Tuttavia, per il nostro confronto, abbiamo utilizzato solo i task di Reranking del MTEB.
Dataset | jina-reranker | bge-reranker-base | bce-reranker-base-v1 | cohere-rerank-english-v2.0 |
---|---|---|---|---|
AskUbuntuDupQuestions | 0.5793 | 0.5471 | 0.5654 | 0.5536 |
SciDocsRR | 0.8056 | 0.6741 | 0.7578 | 0.6728 |
StackOverflowDupQuestions | 0.4850 | 0.3764 | 0.4287 | 0.4414 |
Media | 0.6233 | 0.5325 | 0.5840 | 0.5559 |
tagBenchmark 4: LoCo
Attraverso il benchmark LoCo, abbiamo misurato la comprensione del modello della coerenza locale e del contesto, insieme al ranking specifico per query. Un punteggio LoCo più alto riflette una migliore capacità di identificare e dare priorità alle informazioni rilevanti.
Dataset | jina-reranker | bge-reranker-base | bce-reranker-base-v1 | cohere-rerank-english-v2.0 |
---|---|---|---|---|
qasper_None_abstract | 0.996 | 0.774 | 0.989 | 0.919 |
qasper_None_title | 0.980 | 0.883 | 0.971 | 0.983 |
scrolls_gov_report_output | 0.962 | 0.574 | 0.922 | 0.659 |
scrolls_qmsum_output | 0.466 | 0.549 | 0.449 | 0.444 |
scrolls_summ_screen_fd_output | 0.962 | 0.629 | 0.920 | 0.905 |
Media | 0.873 | 0.682 | 0.850 | 0.782 |
tagPunti di Forza del Modello Jina Reranker
Il Jina Reranker si distingue come leader nel dominio del reranking, superando i principali concorrenti come Cohere, BGE e BCE, come illustrato nell'analisi precedente. La sua natura agnostica rispetto agli embedding e la sua efficacia impareggiabile sottolineano il suo status di primo piano nel settore. Inoltre, Jina Reranker vanta caratteristiche notevoli che lo distinguono:
tagLunghezza del Contesto Estesa
Jina Reranker si distingue dalle altre soluzioni di reranking per la capacità di gestire contesti lunghi. È in grado di gestire query fino a 512 token e documenti fino a 8192 token. Inoltre, il modello è progettato per elaborare fino a 2048 documenti candidati per ogni query.
Tempo di rerank (query=1, docs=100) in ms | #TokensPerDocument | ||||
---|---|---|---|---|---|
#QueryTokens | 256 | 512 | 1024 | 2048 | 4096 |
64 | 156 | 323 | 1366 | 2107 | 3571 |
128 | 194 | 369 | 1377 | 2123 | 3598 |
256 | 273 | 475 | 1397 | 2155 | 4299 |
512 | 468 | 1385 | 2114 | 3536 | 7068 |
tagMiglioramento dell'Accuratezza con l'Integrazione RAG
La Retrieval Augmented Generation (RAG) migliora significativamente la precisione delle risposte dai modelli linguistici di grandi dimensioni (LLM) incorporando informazioni aggiuntive e specifiche del contesto - come il database interno di un'azienda - nel processo di query. Questo metodo assicura che le risposte dell'LLM siano solidamente basate sui dati contestuali forniti. L'integrazione dei reranker con RAG all'interno di una pipeline di recupero delle informazioni apre la strada allo sviluppo di applicazioni ad alte prestazioni in grado di fornire un recupero preciso delle informazioni in una vasta gamma di domini.
Considera, ad esempio, lo scenario in cui stai pianificando di cucinare un pasto speciale utilizzando ingredienti specifici preferiti dai tuoi ospiti. Per semplificare questo compito, decidi di utilizzare un chatbot che suggerisce ricette basate su libri di cucina rinomati. Inizialmente, senza un reranker, il tuo input potrebbe apparire così:
Context information is below.
---------------------
{Madhur_Jaffrey_An_Invitation_To_Indian_Cooking}
{Julia_Child_Mastering_The_Art_Of_French_Cooking}
{Jiro_Ono_Sushi_Estetica_E_Tecnica}
---------------------
Given the context information and no prior knowledge, answer the query.
Query: Create a recipe using the ingredients below.
---------------------
Salmon
Asparagus
Potatoes
---------------------
L'incorporazione di un modello di riordinamento, tuttavia, consente una comprensione sfumata della rilevanza dei documenti, migliorando il contesto del LLM con informazioni sull'importanza relativa di ogni libro di cucina. L'input raffinato, che evidenzia la rilevanza classificata del contesto rispetto alla query, potrebbe quindi apparire come segue:
Context information is below.
Note that the context is ranked from most to least relevant to the query.
---------------------
{Julia_Child_Mastering_The_Art_Of_French_Cooking}
{Jiro_Ono_Sushi_Estetica_E_Tecnica}
{Madhur_Jaffrey_An_Invitation_To_Indian_Cooking}
---------------------
Given the context information and no prior knowledge, answer the query.
Query: Create a recipe using the ingredients below.
---------------------
Salmon
Asparagus
Potatoes
---------------------
Questo ulteriore livello di comprensione della rilevanza dei libri di cucina rispetto agli ingredienti dati rende evidente che la ricetta ottimale rientra probabilmente nella cucina francese, guidando il suggerimento del chatbot in una direzione che meglio si adatta al contesto culinario degli ingredienti. Senza riordinamento, un suggerimento basato sul sushi avrebbe potuto essere ugualmente plausibile data la prominenza del salmone, ma avrebbe portato a un'esperienza culinaria notevolmente diversa.
Inoltre, determinando il numero di documenti da considerare nel processo di classificazione, gli utenti possono ottimizzare la precisione dell'operazione e le esigenze computazionali per adattarle alle loro specifiche necessità, dimostrando ulteriormente la versatilità e l'efficacia del riordinatore.
tagPrezzi API accessibili
L'API Jina Reranker ha prezzi identici alla nostra API di embedding (inclusa una prova gratuita di 1 milione), come jina-embeddings-v2-base-en, basati sul numero totale di token nelle query e nei documenti. Le quote token possono essere acquistate sulla nostra pagina Embeddings/Reranker API. Il segreto API e le quote token possono essere utilizzati sia per le API di reranker che di embedding.
tagProssimamente su AWS Marketplace
Espandendo la nostra portata, Jina Reranker non sarà accessibile solo tramite la nostra API ma debutterà anche su AWS SageMaker Marketplace per un'implementazione cloud privata senza problemi. Questa prossima disponibilità mira a offrire una protezione dei dati e una sicurezza delle applicazioni migliorate all'interno dei confini familiari del tuo abbonamento AWS cloud.
Apprezziamo molto i tuoi insight e le tue esperienze con Jina Reranker. Parla con noi sul nostro canale Discord per condividere il tuo feedback e rimanere aggiornato sui nostri ultimi modelli. Il tuo contributo è cruciale mentre continuiamo a perfezionare le nostre tecnologie e a contribuire a un ecosistema di ricerca AI più dinamico e inclusivo.