Il grounding è assolutamente essenziale per le applicazioni GenAI.
Senza grounding, gli LLM sono più inclini ad allucinazioni e a generare informazioni inaccurate, specialmente quando i loro dati di training mancano di conoscenze aggiornate o specifiche. Non importa quanto forte sia la capacità di ragionamento di un LLM, semplicemente non può fornire una risposta corretta se l'informazione è stata introdotta dopo la data limite delle sue conoscenze.
Il grounding non è importante solo per gli LLM ma anche per i contenuti scritti dagli umani per prevenire la disinformazione. Un ottimo esempio è X's Community Notes, dove gli utenti aggiungono collaborativamente contesto ai post potenzialmente fuorvianti. Questo evidenzia il valore del grounding, che assicura l'accuratezza fattuale fornendo fonti e riferimenti chiari, proprio come Community Notes aiuta a mantenere l'integrità delle informazioni.

Con Jina Reader, abbiamo sviluppato attivamente una soluzione di grounding facile da usare. Per esempio, r.jina.ai converte le pagine web in markdown compatibile con LLM, e s.jina.ai aggrega i risultati di ricerca in un formato markdown unificato basato su una data query.

Oggi siamo entusiasti di presentare un nuovo endpoint a questa suite: g.jina.ai. La nuova API prende una determinata affermazione, la verifica utilizzando risultati di ricerca web in tempo reale e restituisce un punteggio di fattualità e i riferimenti esatti utilizzati. I nostri esperimenti mostrano che questa API raggiunge un punteggio F1 più alto per il fact-checking rispetto a modelli come GPT-4, o1-mini e Gemini 1.5 Flash & Pro con grounding basato sulla ricerca.
Ciò che distingue g.jina.ai dal Search Grounding di Gemini è che ogni risultato include fino a 30 URL (tipicamente fornendo almeno 10), ciascuno accompagnato da citazioni dirette che contribuiscono alla conclusione. Di seguito un esempio di grounding dell'affermazione, "The latest model released by Jina AI is jina-embeddings-v3," utilizzando g.jina.ai (al 14 ottobre 2024). Esplora il playground dell'API per scoprire tutte le funzionalità. Nota che si applicano delle limitazioni:
curl -X POST https://g.jina.ai \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $YOUR_JINA_TOKEN" \
-d '{
"statement":"the last model released by Jina AI is jina-embeddings-v3"
}'YOUR_JINA_TOKEN è la tua chiave API di Jina AI. Puoi ottenere 1M di token gratuiti dalla nostra homepage, che permettono circa tre o quattro prove gratuite. Con l'attuale prezzo dell'API di 0.02USD per 1M di token, ogni richiesta di grounding costa circa $0.006.
{
"code": 200,
"status": 20000,
"data": {
"factuality": 0.95,
"result": true,
"reason": "The majority of the references explicitly support the statement that the last model released by Jina AI is jina-embeddings-v3. Multiple sources, such as the arXiv paper, Jina AI's news, and various model documentation pages, confirm this assertion. Although there are a few references to the jina-embeddings-v2 model, they do not provide evidence contradicting the release of a subsequent version (jina-embeddings-v3). Therefore, the statement that 'the last model released by Jina AI is jina-embeddings-v3' is well-supported by the provided documentation.",
"references": [
{
"url": "https://arxiv.org/abs/2409.10173",
"keyQuote": "arXiv September 18, 2024 jina-embeddings-v3: Multilingual Embeddings With Task LoRA",
"isSupportive": true
},
{
"url": "https://arxiv.org/abs/2409.10173",
"keyQuote": "We introduce jina-embeddings-v3, a novel text embedding model with 570 million parameters, achieves state-of-the-art performance on multilingual data and long-context retrieval tasks, supporting context lengths of up to 8192 tokens.",
"isSupportive": true
},
{
"url": "https://azuremarketplace.microsoft.com/en-us/marketplace/apps/jinaai.jina-embeddings-v3?tab=Overview",
"keyQuote": "jina-embeddings-v3 is a multilingual multi-task text embedding model designed for a variety of NLP applications.",
"isSupportive": true
},
{
"url": "https://docs.pinecone.io/models/jina-embeddings-v3",
"keyQuote": "Jina Embeddings v3 is the latest iteration in the Jina AI's text embedding model series, building upon Jina Embedding v2.",
"isSupportive": true
},
{
"url": "https://haystack.deepset.ai/integrations/jina",
"keyQuote": "Recommended Model: jina-embeddings-v3 : We recommend jina-embeddings-v3 as the latest and most performant embedding model from Jina AI.",
"isSupportive": true
},
{
"url": "https://huggingface.co/jinaai/jina-embeddings-v2-base-en",
"keyQuote": "The embedding model was trained using 512 sequence length, but extrapolates to 8k sequence length (or even longer) thanks to ALiBi.",
"isSupportive": false
},
{
"url": "https://huggingface.co/jinaai/jina-embeddings-v2-base-en",
"keyQuote": "With a standard size of 137 million parameters, the model enables fast inference while delivering better performance than our small model.",
"isSupportive": false
},
{
"url": "https://huggingface.co/jinaai/jina-embeddings-v2-base-en",
"keyQuote": "We offer an `encode` function to deal with this.",
"isSupportive": false
},
{
"url": "https://huggingface.co/jinaai/jina-embeddings-v3",
"keyQuote": "jinaai/jina-embeddings-v3 Feature Extraction • Updated 3 days ago • 278k • 375",
"isSupportive": true
},
{
"url": "https://huggingface.co/jinaai/jina-embeddings-v3",
"keyQuote": "the latest version (3.1.0) of [SentenceTransformers] also supports jina-embeddings-v3",
"isSupportive": true
},
{
"url": "https://huggingface.co/jinaai/jina-embeddings-v3",
"keyQuote": "jina-embeddings-v3: Multilingual Embeddings With Task LoRA",
"isSupportive": true
},
{
"url": "https://jina.ai/embeddings/",
"keyQuote": "v3: Frontier Multilingual Embeddings is a frontier multilingual text embedding model with 570M parameters and 8192 token-length, outperforming the latest proprietary embeddings from OpenAI and Cohere on MTEB.",
"isSupportive": true
},
{
"url": "https://jina.ai/news/jina-embeddings-v3-a-frontier-multilingual-embedding-model",
"keyQuote": "Jina Embeddings v3: A Frontier Multilingual Embedding Model jina-embeddings-v3 is a frontier multilingual text embedding model with 570M parameters and 8192 token-length, outperforming the latest proprietary embeddings from OpenAI and Cohere on MTEB.",
"isSupportive": true
},
{
"url": "https://jina.ai/news/jina-embeddings-v3-a-frontier-multilingual-embedding-model/",
"keyQuote": "As of its release on September 18, 2024, jina-embeddings-v3 is the best multilingual model ...",
"isSupportive": true
}
],
"usage": {
"tokens": 112073
}
}
}La risposta del grounding dell'affermazione "The latest model released by Jina AI is jina-embeddings-v3" utilizzando g.jina.ai (al 14 ottobre 2024).
tagCome Funziona?
Nel suo nucleo, g.jina.ai racchiude s.jina.ai e r.jina.ai , aggiungendo il ragionamento multi-hop attraverso Chain of Thought (CoT). Questo approccio assicura che ogni affermazione verificata sia analizzata a fondo con l'aiuto di ricerche online e lettura di documenti.
s.jina.ai e r.jina.ai, che aggiunge CoT per la pianificazione e il ragionamento. tagSpiegazione Passo dopo Passo
Esaminiamo l'intero processo per comprendere meglio come g.jina.ai gestisce il grounding dall'input all'output finale:
- Dichiarazione di Input:
Il processo inizia quando un utente fornisce una dichiarazione da verificare, come "L'ultimo modello rilasciato da Jina AI è jina-embeddings-v3." Nota: non è necessario aggiungere alcuna istruzione di verifica dei fatti prima della dichiarazione. - Generazione delle Query di Ricerca:
Un LLM viene utilizzato per generare un elenco di query di ricerca uniche pertinenti alla dichiarazione. Queste query mirano a individuare diversi elementi fattuali, assicurando che la ricerca copra tutti gli aspetti chiave della dichiarazione in modo completo. - Chiamata a
s.jina.aiper Ogni Query:
Per ogni query generata,g.jina.aiesegue una ricerca web utilizzandos.jina.ai. I risultati della ricerca consistono in un insieme diversificato di siti web o documenti relativi alle query. Dietro le quinte,s.jina.aichiamar.jina.aiper recuperare il contenuto della pagina. - Estrazione dei Riferimenti dai Risultati di Ricerca:
Da ogni documento recuperato durante la ricerca, un LLM estrae i riferimenti chiave. Questi riferimenti includono:url: L'indirizzo web della fonte.keyQuote: Una citazione diretta o un estratto dal documento.isSupportive: Un valore booleano che indica se il riferimento supporta o contraddice la dichiarazione originale.
- Aggregazione e Selezione dei Riferimenti:
Tutti i riferimenti dai documenti recuperati vengono combinati in un'unica lista. Se il numero totale di riferimenti supera 30, il sistema seleziona 30 riferimenti casuali per mantenere un output gestibile. - Valutazione della Dichiarazione:
Il processo di valutazione implica l'utilizzo di un LLM per valutare la dichiarazione basandosi sui riferimenti raccolti (fino a 30). Oltre a questi riferimenti esterni, anche la conoscenza interna del modello gioca un ruolo nella valutazione. Il risultato finale include:factuality: Un punteggio tra 0 e 1 che stima l'accuratezza fattuale della dichiarazione.result: Un valore booleano che indica se la dichiarazione è vera o falsa.reason: Una spiegazione dettagliata del perché la dichiarazione è giudicata corretta o incorretta, citando le fonti di supporto o contraddittorie.
- Generazione dell'Output:
Una volta che la dichiarazione è stata completamente valutata, viene generato l'output. Questo include il punteggio di fattualità, l'asserzione della dichiarazione, un ragionamento dettagliato e un elenco di riferimenti con citazioni e URL. I riferimenti sono limitati alla citazione, URL e se supportano o meno la dichiarazione, mantenendo l'output chiaro e conciso.
tagBenchmark
Abbiamo raccolto manualmente 100 dichiarazioni con etichette di verità di tipo true (62 dichiarazioni) o false (38 dichiarazioni) e utilizzato diversi metodi per determinare se potessero essere verificate. Questo processo converte essenzialmente il compito in un problema di classificazione binaria, dove le prestazioni finali sono misurate dalla precisione, dal recall e dal punteggio F1—più alto è, meglio è.
L'elenco completo delle dichiarazioni è disponibile qui.
| Model | Precision | Recall | F1 Score |
|---|---|---|---|
| Jina AI Grounding API (g.jina.ai) | 0.96 | 0.88 | 0.92 |
| Gemini-flash-1.5-002 w/ grounding | 1.00 | 0.73 | 0.84 |
| Gemini-pro-1.5-002 w/ grounding | 0.98 | 0.71 | 0.82 |
| gpt-o1-mini | 0.87 | 0.66 | 0.75 |
| gpt-4o | 0.95 | 0.58 | 0.72 |
| Gemini-pro-1.5-001 w/ grounding | 0.97 | 0.52 | 0.67 |
| Gemini-pro-1.5-001 | 0.95 | 0.32 | 0.48 |
Nota: nella pratica, alcuni LLM restituiscono una terza classe, Non lo so, nelle loro previsioni. Per la valutazione, queste istanze sono escluse dal calcolo del punteggio. Questo approccio evita di penalizzare l'incertezza tanto quanto le risposte errate. Ammettere l'incertezza è preferibile al fare ipotesi, per scoraggiare i modelli dal fare previsioni incerte.
tagLimitazioni
Nonostante i risultati promettenti, vorremmo evidenziare alcune limitazioni dell'attuale versione della Grounding API:
- Alta Latenza e Consumo di Token: Una singola chiamata a
g.jina.aipuò richiedere circa 30 secondi e utilizzare fino a 300K token, a causa della ricerca web attiva, della lettura delle pagine e del ragionamento multi-hop dell'LLM. Con una chiave API gratuita da 1M di token, questo significa che puoi testarlo solo tre o quattro volte. Per mantenere la disponibilità del servizio per gli utenti a pagamento, abbiamo anche implementato un limite di velocità conservativo perg.jina.ai. Con il nostro attuale prezzo API di $0.02 per 1M di token, ogni richiesta di grounding costa circa 0.006 USD. - Vincoli di Applicabilità: Non ogni dichiarazione può o dovrebbe essere verificata. Opinioni personali o esperienze, come "Mi sento pigro", non sono adatte al grounding. Analogamente, eventi futuri o dichiarazioni ipotetiche non si applicano. Ci sono molti casi in cui il grounding sarebbe irrilevante o privo di senso. Per evitare chiamate API non necessarie, consigliamo agli utenti di inviare selettivamente solo frasi o sezioni che richiedono effettivamente una verifica dei fatti. Sul lato server, abbiamo implementato un set completo di codici di errore per spiegare perché una dichiarazione potrebbe essere rifiutata per il grounding.
- Dipendenza dalla Qualità dei Dati Web: L'accuratezza della Grounding API è buona solo quanto la qualità delle fonti che recupera. Se i risultati della ricerca contengono informazioni di bassa qualità o distorte, il processo di grounding potrebbe rifletterlo, portando potenzialmente a conclusioni inaccurate o fuorvianti. Per prevenire questo problema, permettiamo agli utenti di specificare manualmente il parametro
referencese limitare gli URL su cui il sistema effettua la ricerca. Questo dà agli utenti maggior controllo sulle fonti utilizzate per il grounding, garantendo un processo di verifica dei fatti più mirato e pertinente.
tagConclusione
La Grounding API offre un'esperienza di verifica dei fatti end-to-end quasi in tempo reale. I ricercatori possono utilizzarla per trovare riferimenti che supportino o sfidino le loro ipotesi, aggiungendo credibilità al loro lavoro. Nelle riunioni aziendali, garantisce che le strategie siano costruite su informazioni accurate e aggiornate verificando ipotesi e dati. Nelle discussioni politiche, verifica rapidamente le affermazioni, portando maggiore responsabilità nei dibattiti.
Guardando al futuro, prevediamo di migliorare l'API integrando fonti di dati private come report interni, database e PDF per una verifica dei fatti più personalizzata. Miriamo anche ad espandere il numero di fonti controllate per richiesta per valutazioni più approfondite. Migliorare il question-answering multi-hop aggiungerà profondità all'analisi, e aumentare la consistenza è una priorità per garantire che richieste ripetute producano risultati più affidabili e coerenti.






